Дано: есть кластер серверов 1С, на кластере много баз
Надо: получить список всех активных сессий пользователей
Решение: Запускаем скрипт следующего содержания
Option Explicit
Dim ServerName ' имя кластера 1С:Предприятия
ServerName = "server1c"
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
Dim MyBaseDescr
Dim MyBaseConnectionHost
Dim SessionsActivConnection
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
MyBaseDescr = IBBl.Descr
MyBaseConnectionHost = SessionsActiv.Host
wscript.Echo "База: " & MyBaseName & " ; Описание:" & MyBaseDescr & " ; Пользователь: " & _
SessionsActiv.userName & " ; Подключение: " & SessionsActiv.AppID & " ; Компьютер: " & _
MyBaseConnectionHost
End if
Next
Next
Next
Set AgentConnection = nothing
Set Connector = nothing
