Дано: есть кластер серверов 1С, на кластере 1С имеется некая база
Надо: выгнать пользователей из базы 1С, например, для того, чтобы сделать выгрузку базы в DT-файл
Решение: Запускаем скрипт следующего содержания
Option Explicit
Dim ServerName ' имя кластера 1С:Предприятия
ServerName = "server1c"
Dim TargetBaseName ' Имя базы от которой отключаем сессии
TargetBaseName = "base01"
Dim ClusterAdmin ' Имя админа кластера, если есть
ClusterAdmin = ""
Dim ClusterAdminPassword ' Пароль админа кластера, если есть.
ClusterAdminPassword = ""
Dim Connector
Dim AgentConnection
Dim Cluster
Dim Clusters
Dim WorkingProcesses
Dim IBB
Dim IBBl
Dim Sessions
Dim SessionsActiv
Dim MyBaseName
Set Connector = CreateObject("V83.COMConnector")
Set AgentConnection = Connector.ConnectAgent(ServerName)
Clusters = AgentConnection.GetClusters()
For Each Cluster In Clusters
AgentConnection.Authenticate Cluster, ClusterAdmin,ClusterAdminPassword
WorkingProcesses = AgentConnection.GetWorkingProcesses(Cluster)
IBB = AgentConnection.GetInfoBases(Cluster)
For Each IBBl In IBB
Sessions = AgentConnection.GetInfoBaseSessions (Cluster,IBBl)
For Each SessionsActiv In Sessions
If (SessionsActiv.AppID <> "COMConsole") Then
MyBaseName = IBBl.Name
if TargetBaseName = MyBaseName Then
wscript.Echo "Отключаем: " & SessionsActiv.userName & " от " & MyBaseName
AgentConnection.TerminateSession Cluster,SessionsActiv
End If
End if
Next
Next
Next
Set AgentConnection = nothing
Set Connector = nothing
