Версия AutoIt: 3.х
Описание: Всем привет. Хочется уменьшить человеческий фактор при запуске 1с (когда люди ищут базу 8.х в лаунчере 7-ки и наоборот). В домене базы раздаются скриптом:
Пути к базам нужно дергать из групп AD. Также хочется прикрутить заодно автостарт пользователя для 1с 7.7 (тоесть в каком то файлике будет храниться логин пароль пользователя).
Строка старта 7-ки C:\BIN\1cv7s.exe" ENTERPRISE /D\\путь\до\базы\ /Nusername /P*****
Строка старта 8.1 "C:\Program Files\1cv81\bin\1cv8.exe" Enterprise /S srvsql:1542\название базы /DisableStartupMessages
Строка старта 8.2 "C:\Program Files\1cv82\bin\1cv8.exe" Enterprise /S srvsql:1542\название базы /DisableStartupMessages
Строка старта 8.3 "C:\Program Files\1cv83\bin\1cv8.exe" Enterprise /S srvsql:1542\название базы /DisableStartupMessages
Синим цветом то, что дергается из групп AD, в которой состоит пользователь. Красным цветом то что должно дергаться из файлика (либо если возможно - лаунчер должен спросить пользователя 1 раз логин, пароль и сохранить его - пароль один на все базы)
Название базы дергать из 1-й строчки ЗАМЕТОК группы AD
Примечания: Считаю это будет весьма интересно всем Админам и программерам 1с.
Во вложении скрины групп AD
Описание: Всем привет. Хочется уменьшить человеческий фактор при запуске 1с (когда люди ищут базу 8.х в лаунчере 7-ки и наоборот). В домене базы раздаются скриптом:
Код:
#include <AD.au3> ; библиотека для работы с АД
#include <Array.au3> ; библиотека для работы с массивами
#include <File.au3>
$pathDB = @AppDataDir & '\1C\1CEStart\' ;путь куда должен записаться файл ibases.v8i
FileOpen($pathDB & '\ibases.v8i', 138)
; делаем бэкап файла. В дальнейшем рекомендуется отключить или периодически чистить старые бекапы во избания переполнения дискового пространства
If FileExists($pathDB & '\ibases.v8i') Then FileCopy($pathDB & '\ibases.v8i', $pathDB & "\backup\" & @YEAR & @MON & @MDAY & @HOUR & @MIN & @SEC & '\', 8)
; Открываем соединение к Active Directory
_AD_Open()
If @error Then Exit MsgBox(16, "Active Directory Example Skript", "Function _AD_Open encountered a problem. @error = " & @error & ", @extended = " & @extended)
Global $aProperties[1][2]
Global $aUser
$aUser = _AD_GetUserGroups(@UserName) ; парсим в каких группах находится пользователь
If $aUser[0] = 0 Then
ConsoleWrite(@UserName & " group not found" & @CRLF)
Else
$file = FileOpen($pathDB & '\ibases.v8i', 138) ; открываем файл для записи в кодировке UTF-8 удалив содержимое текущего файла
; На всякий случай проверяем права на запись файла
If $file = -1 Then
ConsoleWrite("Error!!! Unable to open file." & @CRLF)
Exit
EndIf
For $i = 1 to (UBound($aUser, 1) -1) Step 1 ; в цикле проверяем записи в всех группах пользователя
Global $sGroup = _AD_FQDNToSamAccountName($aUser[$i])
$aProperties = _AD_GetObjectProperties($sGroup)
;_ArrayDisplay($aProperties, "Свойства группы '" & $sGroup & "'") ; !!! информация для дебага
$iIndex = _ArraySearch($aProperties, "info", 0, 0, 0, 1, 1, 0) ; ищем заметки в настройках группы
If @error Then
ConsoleWrite("Error!!! Note INFO not found." & @CRLF)
Else
ConsoleWrite($pathDB & "Найден в массиве в позиции "& $iIndex & ' Записано: ' & $aProperties[$iIndex][1] & @CRLF)
if StringRegExp($aProperties[$iIndex][1], '\\') = 1 Then
$mass = StringSplit($aProperties[$iIndex][1], "#")
if $mass[0] = 2 then
RegWrite("HKEY_CURRENT_USER\Software\1C\1Cv7\7.7\Titles", $mass[1], "REG_SZ", $mass[2])
EndIf
Else
FileWrite($file, $aProperties[$iIndex][1])
EndIf
EndIf
Next ; конец цикла
FileClose($file) ; закрываем ранее открытый файл
EndIf
; Закрываем соединение к Active Directory
_AD_Close()
Пути к базам нужно дергать из групп AD. Также хочется прикрутить заодно автостарт пользователя для 1с 7.7 (тоесть в каком то файлике будет храниться логин пароль пользователя).
Строка старта 7-ки C:\BIN\1cv7s.exe" ENTERPRISE /D\\путь\до\базы\ /Nusername /P*****
Строка старта 8.1 "C:\Program Files\1cv81\bin\1cv8.exe" Enterprise /S srvsql:1542\название базы /DisableStartupMessages
Строка старта 8.2 "C:\Program Files\1cv82\bin\1cv8.exe" Enterprise /S srvsql:1542\название базы /DisableStartupMessages
Строка старта 8.3 "C:\Program Files\1cv83\bin\1cv8.exe" Enterprise /S srvsql:1542\название базы /DisableStartupMessages
Синим цветом то, что дергается из групп AD, в которой состоит пользователь. Красным цветом то что должно дергаться из файлика (либо если возможно - лаунчер должен спросить пользователя 1 раз логин, пароль и сохранить его - пароль один на все базы)
Название базы дергать из 1-й строчки ЗАМЕТОК группы AD
Примечания: Считаю это будет весьма интересно всем Админам и программерам 1с.
Во вложении скрины групп AD