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