Управление новыми сеансами производится путем установки с командной строки параметров базы данных, представленных в консоли управления кластером.
Существующие сеансы могут быть просто перечислены в логах, а могут быть частично или полностью завершены.
Скрипт общается по сети с серверными процессами 1С посредством объекта Vxx.COMConnector, запускать сервер администрирования не требуется.
Если для кластера не определены администраторы, следует явно указать параметры "/CU: /CP:" для "пустой" аутентикации, в противном случае аутентикация не будет производиться вообще, что допустимо только для пользователей, связанных с текущим пользователем операционной системы (это не работает для локальных пользователей ОС, если кластер размещен не на локальной машине).
Аналочично производится аутентикация пользователей агента и информационных баз. Для последних, кроме общего имени и пароля, вводимых до имени первой базы, можно указать после имени базы личные (аутентификация в API странная, такое ощущение, что можно свалить все именпа пользователей в кучу, а сервер разберет; у кого будут накладки или соображения по этому вопросу, прошу постить сюды).
Под 64-битной системой скрипт будет работать только в 32-битном интерпретаторе. Интерактивно открывается 32-битный CMD.EXE, а вот в назначенном задани нужно явно указать C:\Windows\SysWOW64\cmd.exe или C:\Windows\SysWOW64\cscript.exe, чтобы избежать ошибок при создании COM-объектов.
Если указать пользователя ИБ, не зарегистрированного в самой ИБ, скрипт завершится (вернее, умрет) без сообщений и кодов возврата.
Перенаправление стандартных потоков родительского процесса нужно делать конструкцией '1>FileName 2>&1' а не '2>&1 1>FileName', иначе STDErr перенаправляться не будет.
Также при перенаправлении в файл с кодировкой CP866 следует указать параметр /OutputCodepage:866, иначе весь вывод скрипта получится кракозябрами (в кодировке Win1251). При выводе на консоль этот параметр нужно убирать, так как CScript в этом случае перекодирует сам, а двойное преобразование приведет понятно к чему.
Пример использования скрипта с сервером 8.3.5 (вывод cmd-скрипта перенаправлен в файл, поэтому используется ключ /OC):
set RunShortcut=/RunShortcut ...\ibases.v8i
set IBUser=...
set IBPassword=...
set AgentID=localhost:1541
set ClusterID=Локальный кластер
set DatabaseID=Development-Temp-Trade
set BackupID=Development.Temp.Trade
set Backup=X:\Backup
set ParamsFor1C=/IBName "Development - Temp - Trade"
set Starter1C=C:\Program Files (x86)\1cv8\common\1cestart.exe
set CheckAndRepairParameters=-ReIndex -LogAndRefsIntegrity -RecalcTotals -IBCompression -BadRefCreate -BadDataCreate -UseStartPoint -TimeLimit:005:00
echo.
echo __________ %Date% %Time%: Обработка базы данных "%DatabaseID%" __________
for /F "tokens=1-3 delims=. " %%i in ("%Date%") do set Suffix=%%~k%%~j%%~i
set T=%Time::=%
if "%T:~0,1%"==" " (
set Suffix=%Suffix%^0%T:~1,-3%
) else (
set Suffix=%Suffix%%T:~0,-3%
)
set ArcName=%Backup%\%BackupID%@%Suffix%
set LogParameters=/Out "%ArcName%.log" -NoTruncate
set CommonParameters=/N "%IBUser%" /P "%IBPassword%" /UC КодРазрешения /AllowExecuteScheduledJobs -Off /AppAutoInstallLastVersion- /DisableStartupMessages /DisableStartupDialogs
cscript //NoLogo as1cLockIBs.vbs /cv:V83 /ai:"%AgentID%" /ci:"%ClusterID%" /cu: /cp: /ibu:"%IBUser%" /ibp:"%IBPassword%" "%DatabaseID%" /ol:4 /ocp:866 /sp /as:n /aj:n /sc /ks /pc:КодРазрешения /dm:"Выполняется тестирование и архивация базы, сохраните данные закройте программу в течение 1 мин.!"
echo %Date% %Time%: "%DatabaseID%": Запуск архивации ИБ...
rem Параметр /ocp:866 лучше ставить первым, поскольку сообщения об ошибках командной строки предшествующих параметров перекодированы не будут
cscript //NoLogo WaitForProcessTree.vbs /ocp:866 /ol:4 "%Starter1C%" DESIGNER %RunShortcut% %ParamsFor1C% %CommonParameters% /DumpIB "%ArcName%.dt" %LogParameters%
echo %Date% %Time%: "%DatabaseID%": Код возврата: %ErrorLevel%
echo %Date% %Time%: "%DatabaseID%": Запуск тестирования ИБ...
cscript //NoLogo WaitForProcessTree.vbs /ocp:866 /ol:4 "%Starter1C%" DESIGNER %RunShortcut% %ParamsFor1C% %CommonParameters% /IBCheckAndRepair %CheckAndRepairParameters% %LogParameters%
echo %Date% %Time%: "%DatabaseID%": Код возврата: %ErrorLevel%
echo %Date% %Time%: "%DatabaseID%": Разрешение подключений к ИБ...
cscript //NoLogo as1cLockIBs.vbs /cv:V83 /ai:"%AgentID%" /ci:"%ClusterID%" /cu: /cp: /ibu:"%IBUser%" /ibp:"%IBPassword%" "%DatabaseID%" /ol:4 /ocp:866 /sp /as /aj
Это кусок процуедуры, вырванный из контекста рабочего скрипта. Естественно, придется допиливать, но в качестве пример имхо сойдет - прошу сильно не пинать.