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

20.04.12

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

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

Скачать исходный код

Наименование Файл Версия Размер
inst_1c.vbs
.vbs 6,29Kb
65
.vbs 6,29Kb 65 Скачать

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

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

У меня все работает, а на поддержке 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 и тд

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

См. также

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

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

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    124638    681    389    

732

Infostart PrintWizard

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

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

18000 руб.

06.10.2023    7723    24    6    

42

Infostart УДиФ: Управление данными и формами

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

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

10000 руб.

10.11.2023    4241    12    2    

36

SALE! %

PowerTools

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

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

3600 2280 руб.

14.01.2013    178579    1083    0    

861

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99585    239    97    

298

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18358    6    8    

40

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23845    16    15    

33

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28301    3    10    

15
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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 146 06.06.12 10:39 Сейчас в теме
Ставится, что то не так настраиваешь в политиках, скрипт должен стартовать от имени системы, пользователь установки вообще не видит, просто после перезагрузки компа, когда политика отработает, появляется новая платформа, а это занимает ну где то минут 5. Пользователи даже начинают звонить, спрашивать: "И где обещанная платформа?".
Я программист, не сисадмин, работаю в команде, обратись к грамотному админу и тебе все расскажут, ну или я попрошу своего сделать описание всех настроек, как поймаю его.
+
5. damontut 8 08.06.12 03:55 Сейчас в теме
(4)
да, ставится через Конфигурация Windows/Сценарии/Автозагрузка
+
6. Famza 84 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 146 26.07.12 15:05 Сейчас в теме
Привет.
Попробуй этот код <--
net use s: \\Сервер_2\1CEDistr
call "s:\inst_1c.vbs"
net use s: /delete -->

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

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

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

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

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

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

У меня либо в молчаливовм режиме всё ставится и не видно вообще ничего, либо висит эта гребаная кнопка "отмена". Можно чтобы был индикатор но не было кнопки?
+
10. lm-alex 146 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 24 29.07.13 16:27 Сейчас в теме
то, о чем писали в умной книжке
+
12. dyak84 15.08.13 17:54 Сейчас в теме
Идея хороша он грамотно реализовать ее ни так то просто есть куча моментов которые автор упустил. Что делать если вындовсы разные 32-64. Но спасибо за труд в любом случае. Так держать бы лаб идея а остальное обкатается!
+
13. lm-alex 146 15.08.13 20:42 Сейчас в теме
Согласен, не просто, я тупой программер, без хорошего системника сложно такие вещи делать.) всем удачи.
+
14. Cartman 15.11.13 14:28 Сейчас в теме
Возник вопрос. Как обновлять 2 версии? Т.е. нужно 8.2 и 8.3.
+
15. lm-alex 146 18.11.13 09:52 Сейчас в теме
Двумя заданиями, то есть один скрипт обновление 8.2, другой 8.3
+
16. EugeneBespalov 22.10.14 09:17 Сейчас в теме
Текст в начале и текст выделенный жирным более похоже написан разными людьми. Почему? В первом тексте только несколько запятых да пара дефисов опущено, а вот выделенное жирным просто жуть:
Примичание
молчиливая
не видет
программа ставиться
после пару минут
+
Внимание! Тема сдана в архив