![]() |
![]() |
|
VBS. Разгон всех пользователей 1С со всех рабочих процессов и всех кластеров | ☑ | ||
---|---|---|---|---|
0
uinx
25.04.13
✎
05:52
|
Наткнулся на VBS-скрипт который выгоняет всех пользователей с одного рабочего процесса 1С, думаю, ну ведь это уже не актуально в ввиду того что уже многие используют кластеризацию и имеют в кластерах не один рабочий процесс.
На итого решил дописать VBS-ник, выкладываю на обозрение, может кому сгодиться: |
|||
1
uinx
25.04.13
✎
05:52
|
'Cкрипт (только SQL) отключает всех пользователей от ИБ 1С:Предприятия ver >= v8
'На сервере подразумевается наличие только одного кластера и только одного рабочего процесса Option Explicit ' 25.04.2013 - Дописал разгон всех пользователей со всех рабочих процессов Dim UserName Dim UserPass Dim ServerName Dim BaseName 'имя пользователя базы 1С:Предприятия UserName = "" 'пароль пользователя базы 1С:Предприятия UserPass = "" 'имя сервера 1С:Предприятия ServerName = "" 'имя базы 1С:Предприятия к которой подключаемся BaseName = "" 'Удаление всех соединений заданной ИБ сервера 1С Dim Connector Dim AgentConnection Dim Cluster Dim Clusters Dim WorkingProcess Dim WorkingProcesses Dim WorkingProcessConnection Dim ibDesc Dim Connections Dim Connection Dim ConnectString Set Connector = CreateObject("V82.COMConnector") ' указать в зависимости от вашей версии платформы V8, V81, V82, V83 Set AgentConnection = Connector.ConnectAgent(ServerName) Clusters = AgentConnection.GetClusters() Dim Q,W,I For Q = LBound(Clusters) to UBound(Clusters) 'Указываем доступ к консоли 1С:Предприятия (только в том случае если определён администратор кластера, иначе прописать просто " " (пробелЫ)) Set Cluster = Clusters(Q) AgentConnection.Authenticate Cluster, " ", " " WorkingProcesses = AgentConnection.GetWorkingProcesses(Cluster) For W = LBound(WorkingProcesses) to UBound(WorkingProcesses) Set WorkingProcess = WorkingProcesses(W) ConnectString = WorkingProcess.HostName & ":" & WorkingProcess.MainPort Set WorkingProcessConnection = Connector.ConnectWorkingProcess(ConnectString) WorkingProcessConnection.AddAuthentication UserName, UserPass Set ibDesc = WorkingProcessConnection.CreateInfoBaseInfo() ibDesc.Name = BaseName Connections = WorkingProcessConnection.GetInfoBaseConnections(ibDesc) For I = LBound(Connections) To UBound(Connections) Set Connection = Connections(I) If (Connection.AppID <> "COMConsole") then WorkingProcessConnection.Disconnect Connection End if Next Next Next |
|||
2
ildary
25.04.13
✎
08:14
|
За скрипт спасибо, рекомендую комментировать вот так:
вместо 'пароль пользователя базы 1С:Предприятия UserPass = "" 'имя сервера 1С:Предприятия ServerName = "" писать UserPass = "" 'пароль пользователя базы 1С:Предприятия ServerName = "" 'имя сервера 1С:Предприятия немножко удобнее читать камменты - они идут сплошным потоком, один под другим |
|||
3
ildary
25.04.13
✎
08:15
|
+(2) форматирование слетело, для наглядности лучше смотреть текст в редакторе с моноширным шрифтом.
|
|||
4
olegves
25.04.13
✎
08:59
|
(0) а на скуле это делается одной инструкцией - перевод базы в однопользовательский режим. Вопрос: зачем такой огород?
|
|||
5
Infsams654
25.04.13
✎
09:21
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |