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