|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] скрипт с завершением сеанса определенного пользователя |
|
||||
|
|
VBS/WSH/JS - [решено] скрипт с завершением сеанса определенного пользователя
|
|
Новый участник Сообщения: 16 |
не поможете скрипт подправить на завершение сессии пользователя на терминальном сервере. в скриптах я не оченть силен, смог собрать скрипт на завершение сеанса текущего пользователя
Option Explicit
Dim strComputer
Dim strNamespace
Dim strClass
Dim objClass
Dim colInstances
Dim objInstance
strComputer = "."
strNamespace = "Root\CIMV2"
strClass = "Win32_OperatingSystem"
Set objClass = GetObject("WinMgmts:\\" & strComputer & _
"\" & strNamespace & ":" & strClass)
Set colInstances = objClass.Instances_
For Each objInstance In colInstances
objInstance.Win32Shutdown (4)
Next
Выглядит так, а хочется скрипт с завершением сеанса определенного пользователя. |
|
|
Отправлено: 12:38, 27-02-2009 |
|
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать убить заданную сессию можно через штатную утилиту rwinsta, пример:
здесь "5" - номер сессии, список сессий можно получить аналогично:
понятно, что "убить" сессию и осуществить "выход из системы" с закрытием всех программ - вещи разные, но мне неизвестны способы удаленного завершения чужих сессий... по идее, подключаться к терминальной сессии и запускать в ней любую программу должна уметь PsExec (ключ "-i"), но мне не удалось этого добиться, и судя по форуму поддержки я такой не один Как вариант: вставить при логоне запуск скрипта, который будет крутиться в фоне каждой сессии и делать "выход" по заданному условию (файл, ключ реестра, etc.) |
|
Последний раз редактировалось amel27, 04-03-2009 в 12:41. Причина: qwinsta --> rwinsta Отправлено: 12:30, 02-03-2009 | #2 |
|
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать Тогда назревает вопрос, а можно ли пользователю приклеить статичный sessionid или sessionname?
|
|
Отправлено: 17:35, 02-03-2009 | #3 |
|
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 12:39, 04-03-2009 | #4 |
|
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать вообщем вот что получается, если батник выглядит так
Set SERVER=2003test
Set KILLME=test1
For /F "Tokens=1,2 Skip=3 Delims= " %%i In ('qwinsta /Server:%SERVER%') Do If "%%i"=="%KILLME%" rwinsta %%j /Server:%SERVER%
test1 - имя юзера то имеем C:\Documents and Settings\Administrator>Set SERVER=2003test
C:\Documents and Settings\Administrator>Set KILLME=test1
C:\Documents and Settings\Administrator>For /F "Tokens=1,2 Skip=3 Delims= " %i I
n ('qwinsta /Server:2003test') Do If "%i" == "test1" rwinsta %j /Server:2003test
C:\Documents and Settings\Administrator>If "rdp-tcp#8" == "test1" rwinsta test1
/Server:2003test
C:\Documents and Settings\Administrator>
Если меняем %j на %i, то получается все правильно C:\Documents and Settings\Administrator>C:\test\3.bat
C:\Documents and Settings\Administrator>Set SERVER=2003test
C:\Documents and Settings\Administrator>Set KILLME=test1
C:\Documents and Settings\Administrator>For /F "Tokens=1,2 Skip=3 Delims= " %i I
n ('qwinsta /Server:2003test') Do If "%i" == "test1" rwinsta %i /Server:2003test
C:\Documents and Settings\Administrator>If "rdp-tcp#8" == "test1" rwinsta rdp-tc
p#8 /Server:2003test
|
|
|
Последний раз редактировалось hse2000, 07-03-2009 в 12:35. Отправлено: 18:01, 06-03-2009 | #5 |
|
(*.*) Сообщения: 36572
|
Профиль | Сайт | Отправить PM | Цитировать hse2000, используйте тег [code][/code], плиз.
|
|
------- Отправлено: 00:02, 07-03-2009 | #6 |
|
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата hse2000:
|
|
|
Отправлено: 13:29, 09-03-2009 | #7 |
|
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать спасибо, все работает. Можно скриптик добавлять в коллекцию =
![]() |
|
Отправлено: 14:58, 10-03-2009 | #8 |
|
Новый участник Сообщения: 14
|
Профиль | Сайт | Отправить PM | Цитировать Подскажите, как доработать скрипт если нужно отключить несколько пользователей?
|
|
------- Отправлено: 21:21, 22-05-2010 | #9 |
|
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата bazik83:
|
|
|
Отправлено: 06:09, 23-05-2010 | #10 |
|
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| [решено] Вирус для определенного доменного пользователя. | rivera | Лечение систем от вредоносных программ | 10 | 01-10-2009 13:01 | |
| CMD/BAT - [решено] Зпуск программы с правами определенного пользователя | Bint | Скриптовые языки администрирования Windows | 2 | 23-09-2009 22:53 | |
| Загрузка - [решено] Принудительная загрузка определенного пользователя. | Nird | Microsoft Windows 2000/XP | 1 | 21-04-2009 17:26 | |
| [решено] Скрипт для корректировки данных пользователя в AD | HLT | Microsoft Windows NT/2000/2003 | 2 | 04-07-2008 10:32 | |
| Доступ - Выполнить Скрипт от пользователя | yastreb_oren | Microsoft Windows 2000/XP | 6 | 19-04-2008 11:14 | |
|