|
|
|
Как получить ID пользователя. | ☑ | ||
|---|---|---|---|---|
|
0
sysadminlk
14.12.10
✎
19:06
|
1c работает на сервере терминалов.
при запуске открывается только шел 1с стоит задача выполнить logoff конкретного пользователя Для logoff необходим id сеанса пользователя id сеанса пользователя можно получить через quser пример objShell = СоздатьОбъект("WScript.Shell"); objScriptExec = objShell.Exec("quser root"); strPingResults = НРег(objScriptExec.StdOut.ReadAll()); Сообщить(strPingResults); вываливает Ÿž‹œ‡ž‚’…‹œ ‘…‘ id ‘’’“‘ ƒ…‡„…‰‘’‚. ‚…œŸ ‚•ž„ >root console 1 ºâ¸¢® ®âáãâáâ¢ã´â 14.12.2010 7:37 если по русски то C:\Users\root>quser root ПОЛЬЗОВАТЕЛЬ СЕАНС ID СТАТУС БЕЗДЕЙСТВ. ВРЕМЯ ВХОДА >root console 1 Активно отсутствует 14.12.2010 7 :37 зная ID пользователя можно сделать logoff любого терминального пользователя. ---------------------------------- Вопрос как из все этой каши получить id пользователя? |
|||
|
1
sysadminlk
14.12.10
✎
19:08
|
короче нужно чтоб пользователь 1с мог сделать logoff любого RDP пользователя средствами 1с
к примеру через обработку |
|||
|
2
poligraf
14.12.10
✎
19:12
|
(1) забавно:)
не совсем понял, тебе строчку надо распарсить или как? щас найду какой-нибудь терминал с админскими правами, попробую:) |
|||
|
3
sysadminlk
14.12.10
✎
19:15
|
нужно из строки выловить id пользователя
|
|||
|
4
poligraf
14.12.10
✎
19:20
|
табуляциями разделено?
|
|||
|
5
sysadminlk
14.12.10
✎
19:30
|
посмотрел разделение через пробелы
|
|||
|
6
poligraf
14.12.10
✎
19:35
|
так ты же знаешь, что ID в третьей позиции
т.е. после второго пробела где проблемы?:) |
|||
|
7
sysadminlk
14.12.10
✎
19:43
|
хм.... даа наверно можно и так
|
|||
|
8
sysadminlk
14.12.10
✎
19:43
|
щас попробую ))
|
|||
|
9
poligraf
14.12.10
✎
19:52
|
обработку дашь, да?:)
|
|||
|
10
sysadminlk
14.12.10
✎
20:35
|
Вот, у себя проверил все работает!
Спасибо за идею с (6) )))) Процедура LogoffUser() Если ПустоеЗначение(UserTRM)=1 Тогда Предупреждение("Не указан пользователь терминала!"); СтатусВозврата(0); Возврат; КонецЕсли; objShell = СоздатьОбъект("WScript.Shell"); objScriptExec = objShell.Exec("quser "+СокрЛП(UserTRM)+""); strPingResults = НРег(objScriptExec.StdOut.ReadAll()); //разделение предложения по словам Разложить = СоздатьОбъект("ТаблицаЗначений"); Разложить.НоваяКолонка("Слово"); Стр = СокрЛП(strPingResults); Пока 1=1 Цикл Поз = Найти(Стр," "); Если Поз=0 Тогда Разложить.НоваяСтрока(); Разложить.Слово = Стр; Прервать; КонецЕсли; Разложить.НоваяСтрока(); Разложить.Слово = Лев(Стр,Поз-1); Стр = СокрЛ(Сред(Стр,Поз)); КонецЦикла; Попытка ID = Разложить.ПолучитьЗначение(9,1); КомандаСистемы("logoff "+ID+""); Предупреждение("Пользователю "+СокрЛП(UserTRM)+" послана команда завершения работы."); Исключение Предупреждение("Пользователь "+СокрЛП(UserTRM)+" не найден в списке."); КонецПопытки КонецПроцедуры ------------------- UserTRM - у меня это строка длинной в 50 символов. Кому интересно можете в список значений добавить всех пользователей терминала и одним нажатием выкидывать любого из системы. )))) |
|||
|
11
big
14.12.10
✎
20:38
|
^
|
|||
|
12
smaharbA
14.12.10
✎
20:42
|
cmd /v:on /c "echo off && for /f "skip=1 tokens=1,2,3" %a in ('quser') do (set user=%a & set /a id=%b > nul & set /a id=!id!+%c > nul & echo !user:^>=!:!id!)"
|
|||
|
13
poligraf
14.12.10
✎
20:44
|
(12) сильно. старая школа:)
|
|||
|
14
mad hatter
14.12.10
✎
20:49
|
интересно
|
|||
|
15
sysadminlk
14.12.10
✎
20:56
|
(12) аа я пробовал так... походу у меня где-то ошибка была )))
эта команда только текущего юзера выдаст. |
|||
|
16
sysadminlk
14.12.10
✎
21:02
|
А не я пошутил))
C:\Documents and Settings\Администратор>cmd /v:on /c "echo off && for /f "skip=1 tokens=1,2,3" %a in ('quser') do (set user=%a & set /a id=%b > nul & set /a id=!id!+%c > nul & echo !user:^>=!:!id!)" root :0 root :3 ------------------------------- А как получить id определенного юзера? Все равно придется строку разбирать по словам и смотреть его id |
|||
|
17
smaharbA
14.12.10
✎
22:41
|
В целом идея бредовая, а так -
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |