Удаленное обновление платформы у пользователей через групповые политики.

20.04.12

Разработка - Инструментарий разработчика

Автоматическое обновление платформы на клиентах. Групповые политики.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
inst_1c.vbs
.vbs 6,29Kb
65
65 Скачать (1 SM) Купить за 1 850 руб.

Выкладываю скрипт.. может кому понадобится.

Описывать не буду, все походу текста закомментировано.. если что задавайте вопросы. обязательно отвечу.

У меня все работает, а на поддержке 8 регионов + Столичный, а это сотни рабочих мест... руками сами понимаете, платформу обновить нереально, у пользователей нет прав на установку ПО, поэтому административная установка не катит, пришлось мудрить через политики.

Примичание:

Главные 3-5 констант, 3 если не требуется удаление старой платформы, 5 если требуется.

SrvName - Имя сервера, от куда ставим.

OldVer, unInstallUID - это данные по версии платформы которую надо удалить, если оно вам надо.

NewVer, InstallUID - это данные по версии которую устанавливаем.

Далее:

THICKCLIENT=1 THINCLIENT=1 WEBSERVEREXT=0 SERVER=0 CONFREPOSSERVER=0 CONVERTER77=0 SERVERCLIENT=0 LANGUAGES=RU" - в коде можно поменять, что ставим на клиента, думаю все понятно.

После старта ситемы просиходит молчиливая установка, тоесть пользователь ничего не видет, программа ставиться в фоне, и уже после пару минут в меню появится новая платформа.

Скрипт:

< --------------------------------------

Option Explicit
Const SrvName = "ServerDistribs"              'Имя сервера

'Значение параметра ProductCode из файла setup.ini ...
'... для удаляемой версии
Const OldVer = "8.2.13.219"             'Текущая версия
Const unInstallUID = "{3A8D1763-00C8-48E1-B8EF-B66B8A908E32}"
'... для устанавливаемой версии
Const NewVer = "8.2.15.301"             'Новая версия
Const InstallUID = "{BC89E40C-CCE7-4B86-9586-8338F5B48EC1}"

Const msiUILevelNoChange = 0        'Не изменять интерфейс пользователя
Const msiUILevelDefault = 1         'Использовать интерфейс пользователя, заданный по умолчанию
Const msiUILevelNone = 2            'Не отображать интерфейс пользователя (молчаливая установка)
Const msiUILevelBasic = 3           'Только индикатор прогресса и отображение ошибок
Const msiUILevelReduced = 4         'Интерфейс пользователя без диалоговых сообщений
Const msiUILevelFull = 5            'Полный интерфейс пользователя
Const msiUILevelHideCancel = 32     'Если используется с msiUILevelBasic, то отображается индикатор прогресса без кнопки Cancel
Const msiUILevelProgressOnly = 64   'Если используется с msiUILevelBasic, то отображается индикатор прогресса без тображения любых диалогов, в т.ч. и ошибок.
Const msiUILevelEndDialog = 128     'Если используется с любым из перечисленных значений, интсталятор выводит сообщение в конце установки о конечном результате.

'Константы для определения действия
Const requiredInstall = 1   ' требуется установка
Const requiredUninstall = 0 ' требуется удаление

'***** Необходимо изменить на реальный каталог установки
Dim DistrFolder
DistrFolder = "\\" & SrvName & "\Distrib\8.2\"

Dim WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
Dim shortcutTarget: shortcutTarget = WshShell.ExpandEnvironmentStrings("%ProgramFiles%") & "\1cv82\Common\1cestart.exe"

'Режим установки – logon-скрипт
Dim logonInstall, restartInstall, mstTransfomU, mstTransfomI
'Режим установки – групповая политика

'Режим установки – logon-скрипт
logonInstall = DistrFolder & NewVer & "\adminstallrelogon.mst"
'Режим установки – групповая политика
restartInstall = DistrFolder & NewVer & "\adminstallrestart.mst"

mstTransfomU = DistrFolder & OldVer & "\1049.mst"
mstTransfomI = DistrFolder & NewVer & "\1049.mst"
'Значение параметра ProductCode из файла setup.ini ...

'удалим предыдущую версию
Uninstall unInstallUID, DistrFolder & OldVer & "\1CEnterprise 8.2.msi", mstTransfomU, ""
'установим новую версию
Install InstallUID, DistrFolder & NewVer & "\1CEnterprise 8.2.msi", mstTransfomI, logonInstall

'процедура установки указанной версии продукта
Sub Install(ByVal productCode, ByVal msiPackage, ByVal mstTransform, ByVal mstInstall)
    'productCode - Информация о коде продукта. Находится в файле setup.ini, ключ ProductCode
    'msiPackage - Установочный пакет 1CEnterprise
    'mstTransform - файл языкового преобразования для инсталлятора
    'requiredAction - требуемое действте requiredInstall или requiredUninstall

    'Переменная, для формирования дополнительных параметров инсталлятору
    Dim cmdLine

    On Error Resume Next

    Dim installer, session

    Set installer = Nothing
    Set session = Nothing
    Set installer = WScript.CreateObject("WindowsInstaller.Installer"): processError
    installer.UILevel = msiUILevelHideCancel ' msiUILevelNone 'или укажите другой вариант интерфейса пользователя
    'проверка установки продукта
    Set session = installer.OpenProduct(productCode)

    If session Is Nothing And requiredInstall = 1 Then
        'продукт не установлен и требуется его установка
        cmdLine = "TRANSFORMS=" & mstInstall & ";"
        If Not mstTransform Is Empty Then
            'добавим указание инсталлятору разговаривать на указанном языке
            cmdLine = cmdLine & mstTransform
            'Дополнительно указать, какие компоненты нужно установить
            cmdLine = cmdLine & " THICKCLIENT=1 THINCLIENT=1 WEBSERVEREXT=0 SERVER=0 CONFREPOSSERVER=0 CONVERTER77=0 SERVERCLIENT=0 LANGUAGES=RU"
        End If
        
        'установим платформу
        Set session = installer.InstallProduct(msiPackage, cmdLine)
        
        'создадим ярлык на рабочем столе
        'createShortcut
    End If

    Set session = Nothing
    Set installer = Nothing

End Sub

'процедура удаления указанной версии продукта
Sub Uninstall(ByVal productCode, ByVal msiPackage, ByVal mstTransform, ByVal mstInstall)
    'productCode - Информация о коде продукта. Находится в файле setup.ini, ключ ProductCode
    'msiPackage - Установочный пакет 1CEnterprise
    'mstTransform - файл языкового преобразования для инсталлятора
    'requiredAction - требуемое действте requiredInstall или requiredUninstall

    'Переменная, для формирования дополнительных параметров инсталлятору
    Dim cmdLine

    On Error Resume Next

    Dim installer, session

    Set installer = Nothing
    Set session = Nothing
    Set installer = WScript.CreateObject("WindowsInstaller.Installer"): processError
    installer.UILevel = msiUILevelHideCancel ' msiUILevelNone 'или укажите другой вариант интерфейса пользователя
    'проверка установки продукта
    Set session = installer.OpenProduct(productCode)

    If Not session Is Nothing And requiredUninstall = 1 Then
        'платформа уже установлена и требуется ее удаление
        'обьект session может быть только один!
        Set session = Nothing
        'укажем, что нужно удалить с компьютера пользователя эту версию
        cmdLine = "REMOVE=ALL"
        'удалим
        Set session = installer.InstallProduct(msiPackage, cmdLine)
    End If

    Set session = Nothing
    Set installer = Nothing

End Sub

'обработка ошибок
Sub processError()
    Dim msg
    If Err = 0 Then Exit Sub
    msg = Err.Source & " " & Hex(Err) & ": " & Err.Description
    WScript.Echo msg
    WScript.Quit 2
End Sub

'создание ярлыка
Sub createShortcut()
    Dim WshShell, oShellLink
    Set WshShell = WScript.CreateObject("WScript.Shell")
    Dim strDesktop: strDesktop = WshShell.SpecialFolders("Desktop")
    Set oShellLink = WshShell.createShortcut(strDesktop & "\" & "1CПредприятие.lnk")
    oShellLink.TargetPath = shortcutTarget
    oShellLink.WindowStyle = 1
    oShellLink.Description = shortcutName
    oShellLink.Save
    Set oShellLink = Nothing
    Set WshShell = Nothing
End Sub

------------->

Структуре папок на сервере сами думайте, у меня сделано так..

Шара: \Distrib\8.2\ а уже внутри папки с именами версии платформы 8.2.13.205 8.2.13.219 .... 8.2.15.301 и тд

Советую делать так же, чтоб не переписывать скрипт.. а просто менять пару параметров при следующем обновление, закидывать в политику и вперед.

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

12000 руб.

02.09.2020    172094    964    403    

924

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    14671    108    46    

108

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    17347    43    15    

75

Инструментарий разработчика Программист Платформа 1С v8.3 1C:Бухгалтерия Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    27371    96    48    

138

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

15000 руб.

10.11.2023    11960    45    33    

67

SALE! %

Инструментарий разработчика Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

4800 3840 руб.

14.01.2013    191349    1153    0    

920

Инструментарий разработчика Программист 8.3.14 Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

20000 руб.

07.10.2021    18117    7    32    

42

Инструментарий разработчика Платформа 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    1154    2    0    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. SuhoffGV 25.04.12 14:40 Сейчас в теме
Поясните, откуда запускается скрипт или куда прописать его запуск?

ActiveDirectory нет, пользователи с правами пользователей (без прав на установку ПО)
3. damontut 8 06.06.12 02:38 Сейчас в теме
без админских прав не ставиться ...
17. EugeneBespalov 22.10.14 09:20 Сейчас в теме
4. lm-alex 149 06.06.12 10:39 Сейчас в теме
Ставится, что то не так настраиваешь в политиках, скрипт должен стартовать от имени системы, пользователь установки вообще не видит, просто после перезагрузки компа, когда политика отработает, появляется новая платформа, а это занимает ну где то минут 5. Пользователи даже начинают звонить, спрашивать: "И где обещанная платформа?".
Я программист, не сисадмин, работаю в команде, обратись к грамотному админу и тебе все расскажут, ну или я попрошу своего сделать описание всех настроек, как поймаю его.
5. damontut 8 08.06.12 03:55 Сейчас в теме
(4)
да, ставится через Конфигурация Windows/Сценарии/Автозагрузка
6. Famza 85 25.07.12 14:57 Сейчас в теме
(Всем) Я не сисадмин, я только учусь.
У меня не получается запустить через групповые политики, может где напутал.
Расклад такой - сам скрипт "inst_1c.vbs" отработан: все удаляет, все устанавливает (аналогичен авторскому).
Есть сервер_1 - на нем домен поднят на Вин2000; в сети и ХР, и Вин7 - расфасованы по подразделениям.
Есть сервер_2 - на нем все что нужно для 1С - в расшаренной папке "1CDistr".
На сервер_1: создаю подразделение "Enterprise" в структуре предприятия - в нем создаю глобальную группу безопасности "Группа_1С"- добавляю комп из домена в участников группы.
Создаю ГП у "Enterprise" - Конфигурация компьютера/Windows/Сценарии/Автозагрузка - батник:
net use s: \\Сервер_2\1CEDistr
call "s:\inst_1c.vbs"
net use s:  /delete

согласно постам 13, 28 из http://diprime.wordpress.com/2010/10/18/%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1­%82%D1%80%D0%B0%D1%82%D0%B8%D0%B2%D0%BD%D0%B0%D1%8F-%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-1%D1%81%D0%BF%D1%80%D0%B5%D0%B4%D0%BF%D1%80-3/
На сервер_2: расшаренной папке даю полные права для "Группа_1С". И не работает (((.
7. lm-alex 149 26.07.12 15:05 Сейчас в теме
Привет.
Попробуй этот код <--
net use s: \\Сервер_2\1CEDistr
call "s:\inst_1c.vbs"
net use s: /delete -->

полностью заменить на код из файлика inst_1c.vbs, не вызывай его как внешний скрипт, пускай политика его выпоняет.
8. Famza 85 26.07.12 20:42 Сейчас в теме
9. AzzZ 21.01.13 16:07 Сейчас в теме
Вопрос такой, как сделать чтобы пользователь видел индикатор загрузок, но не видел кнопку отмена:

Что вот здесь нужно написать для этого?

installer.UILevel = msiUILevelHideCancel ' msiUILevelNone 'или укажите другой вариант интерфейса пользователя

я не догоняю фразу:

Const msiUILevelHideCancel = 32 'Если используется с msiUILevelBasic, то отображается индикатор прогресса без кнопки Cancel

как их вместе юзать то?

У меня либо в молчаливовм режиме всё ставится и не видно вообще ничего, либо висит эта гребаная кнопка "отмена". Можно чтобы был индикатор но не было кнопки?
10. lm-alex 149 21.01.13 16:18 Сейчас в теме
Приветствую.

Const msiUILevelProgressOnly = 64

installer.UILevel = msiUILevelProgressOnly.

Почему такое название константы? - читаемый код получается. Передавать в UILevel надо значение 0,1,2,3,4,5,32,64,128...
PS:
msiUILevelProgressOnly = 64 (If combined with the msiUILevelBasic value, the installer displays progress dialog boxes but does not display any modal dialog boxes or error dialog boxes.)
Прикрепленные файлы:
11. It-developer 26 29.07.13 16:27 Сейчас в теме
то, о чем писали в умной книжке
12. dyak84 15.08.13 17:54 Сейчас в теме
Идея хороша он грамотно реализовать ее ни так то просто есть куча моментов которые автор упустил. Что делать если вындовсы разные 32-64. Но спасибо за труд в любом случае. Так держать бы лаб идея а остальное обкатается!
13. lm-alex 149 15.08.13 20:42 Сейчас в теме
Согласен, не просто, я тупой программер, без хорошего системника сложно такие вещи делать.) всем удачи.
14. Cartman 15.11.13 14:28 Сейчас в теме
Возник вопрос. Как обновлять 2 версии? Т.е. нужно 8.2 и 8.3.
15. lm-alex 149 18.11.13 09:52 Сейчас в теме
Двумя заданиями, то есть один скрипт обновление 8.2, другой 8.3
16. EugeneBespalov 22.10.14 09:17 Сейчас в теме
Текст в начале и текст выделенный жирным более похоже написан разными людьми. Почему? В первом тексте только несколько запятых да пара дефисов опущено, а вот выделенное жирным просто жуть:
Примичание
молчиливая
не видет
программа ставиться
после пару минут
Оставьте свое сообщение