Довідковий матеріал

adminstall.cfg

Описано призначення та формат файла adminstall.cfg у BAS для ОС Windows, а також режими встановлення через logon-скрипт і групові політики. Наведено приклад скрипту адміністративного встановлення програми.

Файл конфігурації в центрі спрямовує кероване встановлення програми на робочі комп’ютери через вхід до домену та групові політики.

Примітка

Застосовується лише в разі роботи програми під керуванням ОС Windows.

Файл adminstall.cfg вказує, що встановлення програми виконувалося із застосуванням засобів адміністрування ОС Windows. Файл розміщується в каталозі файлів конфігурації програми та є текстовим документом у кодуванні UTF-8.

Файл може містити лише один рядок, який визначає варіант встановлення:

AdmInstall=<Mode>

<Mode>

Описує режим встановлення:

  • Logon – встановлення виконано за допомогою logon-скрипту під час входу користувача до домену;
  • Restart – встановлення виконано за допомогою групових політик.

Нижче наведено приклад скрипту встановлення, який можна використовувати для встановлення програми за допомогою адміністративних засобів ОС Windows.

Option Explicit
'Змінювати інтерфейс користувача
Const msiUILevelNoChange = 0
'Використовувати заданий по умовчанню інтерфейс користувача 
Const msiUILevelDefault = 1
'Не відображати інтерфейс користувача (фонова установка)
Const msiUILevelNone = 2
'Тільки індикатор прогресу і відображення помилок 
Const msiUILevelBasic = 3
'Інтерфейс користувача без попередніх повідомлень 
Const msiUILevelReduced = 4
'Повний інтерфейс користувача 
Const msiUILevelFull = 5
'Якщо використовується з msiUILevelBasic, то відображається індикатор
'прогресу без кнопки Cancel
Const msiUILevelHideCancel = 32
'Якщо використовується з msiUILevelBasic, то відображається індикатор
'прогресу без відображення будь-яких діалогів, зокрема й помилок.
Const msiUILevelProgressOnly = 64
'Якщо використовується з будь-яким із перелічених значень, інсталятор
'виводить повідомлення у кінці установки про кінцевий результат.
Const msiUILevelEndDialog = 128
'***** Необхідно змінити на реальний каталог установки
Const DistrFolder="\\Server\BASDistr\"
Const shortcutName = "Запуск BAF"
Dim shortcutTarget : shortcutTarget = DistrFolder & "1cestart.exe"
'Константи для визначення дії
' потрібна установка 
Const requiredInstall = 1
' потрібне вилучення
Const requiredUninstall = 0
'Значення параметра ProductCode з файлу setup.ini ...
'... для версії, що вилучається
Const unInstallUID="{9173B91C-FF56-4F25-82D1-7F68244044CD}"
'... для версії, що встановлюється
Const InstallUID="{0BC98727-04AD-470F-9EEE-0162C543833F}"
'процедура установки або вилучення зазначеної версії продукту
Sub installOrUninstall (ByVal productCode, ByVal msiPackage, ByVal mstTransform, ByVal requiredAction)
'productCode – Інформація про код продукту. Знаходиться у файлі
'                            setup.ini, ключ ProductCode
'msiPackage – Інсталяційний пакет BAF 
'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 = msiUILevelBasic 'msiUILevelNone 'або вказати інший варіант інтерфейсу користувача
    'перевірка установки продукту
    Set session = installer.OpenProduct(productCode) 
    If session Is Nothing AND requiredAction = requiredInstall Then
        'продукт не встановлено, і потрібна його установка
        cmdLine = "TRANSFORMS=adminstallrelogon.mst;" 
        If Not mstTransform Is Empty Then
'додамо зазначення інсталятору розмовляти зазначеною мовою
            cmdLine = cmdLine & mstTransform
'можна додатково вказати, які компоненти потрібно встановити
            'cmdLine = cmdLine & " DESIGNERALLCLIENTS=1 THINCLIENT=1 WEBSERVEREXT=0 SERVER=0 CONFREPOSSERVER=0 SERVERCLIENT=1 LANGUAGES=UK"
        End If
'встановимо Framework
        Set session = installer.InstallProduct(msiPackage, cmdLine) : processError
'створимо ярлик на робочому столі
        createShurtcut() 
    ElseIf Not session Is Nothing AND requiredAction = requiredUninstall Then
'платформу вже встановлено, і потрібно її вилучення
'об'єкт session може бути тільки один! 
        Set session = Nothing
'зазначимо, що потрібно вилучити з комп'ютера користувача цю версію
        cmdLine = "REMOVE=ALL"
        'вилучимо
        Set session = installer.InstallProduct(msiPackage, cmdLine) : processError
    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 createShurtcut
    Dim WshShell, oShellLink 
    Set WshShell = WScript.CreateObject("WScript.Shell")
    Dim strDesktop : strDesktop = WshShell.SpecialFolders("Desktop")
    Set oShellLink = WshShell.CreateShortcut(strDesktop & "\" & shortcutName & ".lnk")
    oShellLink.TargetPath = shortcutTarget
    oShellLink.WindowStyle = 1
    oShellLink.Description = shortcutName
    oShellLink.Save 
    Set oShellLink = Nothing
    Set WshShell = Nothing
End Sub
'вилучимо версію 260
installOrUninstall unInstallUID, DistrFolder + "8.3.13.260\setup\BAF.msi", "1058.mst", requiredUninstall
'встановимо версію 356
installOrUninstall InstallUID, DistrFolder + "8.3.13.356\setup\BAF.msi", "1058.mst", requiredInstall
Записатися телефоном