|
0
dark_avenger
29.09.12
✎
10:01
|
Здравствуйте,
Второй день шуршу по интернету, но никак не могу найти точку входа в терминальные сессии. Мне необходимо в 1С 8.2 УФ увидеть активные пользовательские сессии терминала и выборочную убить.
Что нашел:
query user/session - варварский вариант, выгружать весь список в файл и парсить, потом с помощью logoff убивать.
WMI - знаю что можно, но не нашел информации как подключится и получить список активных пользователей
ActiveXRDP, не стал глубоко изучать, т.к. мое приложение на УФ
Может кто заморачивался подобным, или знает о решении данной задачи другими способами?
|
|
|
1
sttt
29.09.12
✎
10:45
|
On Error Resume Next
Dim strComputer
Dim objWMIService
Dim propValue
Dim objItem
Dim SWBemlocator
Dim UserName
Dim Password
Dim colItems
Dim strUserName
Dim strUserDomain
strComputer = "."
UserName = ""
Password = ""
Set SWBemlocator = CreateObject("WbemScripting.SWbemLocator")
Set objWMIService = SWBemlocator.ConnectServer(strComputer,"root\CIMV2",UserName,Password)
Set colItems = objWMIService.ExecQuery("Select * from Win32_Process",,48)
For Each objItem In colItems
objItem.GetOwner strUserName, strUserDomain
Wscript.Echo "Process " & objItem.Name & " is owned by " _
& strUserDomain & "\" & strUserName & "."
Next
|
|
|
4
dark_avenger
29.09.12
✎
14:57
|
Попутно встал еще один вопрос, вот так взлетает(но пришлось запустить под админом):
Перем strComputer,objWMIService,propValue,objItem,SWBemlocator,
UserName,Password,colItems,strUserName,strUserDomain;
strComputer = ".";
UserName = "";//"SuperAdmin";
Password = "";//"SuperPass";
SWBemlocator = Новый COMОбъект("WbemScripting.SWbemLocator");
objWMIService = SWBemlocator.ConnectServer(strComputer,"root\CIMV2",UserName,Password);
colItems = objWMIService.ExecQuery("Select * from Win32_Process WHERE Name = 'rdpclip.exe'",,48);
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Пар1");
ТЗ.Колонки.Добавить("Пар2");
Для каждого objItem из colItems Цикл
objItem.GetOwner(strUserName, strUserDomain);
нов = ТЗ.Добавить();
нов.Пар1 = strUserName;
нов.Пар2 = objItem.SessionID;
КонецЦикла;
возврат 1;
а вот если логин и пароль указать (пробовал запустить от юзера) то пишет:
(SWbemLocator): User credentials cannot be used for local connections
Не в курсе что оно хочет?
|
|