Дано: есть кластер серверов 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