|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] проверка состояния учетной записи |
|
|
VBS/WSH/JS - [решено] проверка состояния учетной записи
|
Новый участник Сообщения: 16 |
Профиль | Отправить PM | Цитировать Не подскажите как бы сворганить скриптик который будет запускаться и следить включена учетная запись пользователя или отключена и есть ли активная сессия данного пользователя на терминальном сервере?
|
|
Отправлено: 17:34, 16-03-2009 |
Сообщения: 53441
|
Профиль | Отправить PM | Цитировать hse2000, что должен делать этот скрипт помимо слежения?
|
Отправлено: 18:27, 16-03-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать если все условия выполнены (т.е. учетка заблокирована и сеанс пользователя не активен), то запускается один батник который отправляет почту, что все ОК, если хотя бы одно условие не выполнено, то запускается другой батник, который отправляет сообщение, что false
|
Отправлено: 22:41, 16-03-2009 | #3 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать примерно так:
@Echo Off Set TUser=User1 Set TServer=%ComputerName% For /F "Skip=1 UseBackQ" %%i In (`WMIC /NODE:"%TServer%" UserAccount Where 'Name Like "%TUser%"' Get Disabled^|Find /I "E"`) Do Set UserDisabled=%%i Call :GetUserSession "%TUser%" "%TServer%" If %UserSession% EQU 0 If /I "%UserDisabled%"=="TRUE" Call Batnik1.CMD&GoTo CONT Call Batnik2.CMD :CONT EXIT :GetUserSession :: ------------ :: IN : %1 - User Name :: %2 - Server Name :: OUT: %UserSession% For /F "Tokens=1-4 Skip=3 Delims=# " %%i In ('qwinsta /Server:"%~2"') Do ( If /I "%%i"=="rdp-tcp" If /I "%%k"=="%~1" Set UserSession=%%l&GoTo :EOF If /I "%%i"=="%~1" Set UserSession=%%j&GoTo :EOF ) Set UserSession=0&GoTo :EOF |
Последний раз редактировалось amel27, 19-03-2009 в 06:13. Отправлено: 05:01, 18-03-2009 | #4 |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать по сессии все работает, а с блоком пользователя косяк
пробовал убирать из кода If /I "%UserDisabled%"=="TRUE" по сессии батник отрабатыет, в случае с пользователем: E:\Documents and Settings\Administrator\Desktop>For /F "Skip=1 UseBackQ" %i In ( `WMIC /NODE:"" UserAccount Where 'Name Like ""' Get Disabled`) Do Set UserDisabl ed=%i No Instance(s) Available. :\Documents and Settings\Administrator\Desktop>Set UserDisabled= в чем может быть проблема? |
|
Последний раз редактировалось hse2000, 18-03-2009 в 13:19. Причина: косяг в тегах Отправлено: 13:18, 18-03-2009 | #5 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать hse2000, извиняюсь, после очередной редакции хвосты не подправил
|
Отправлено: 15:10, 18-03-2009 | #6 |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать сейчас ошибки нет. НО!!! в обоих случаях запускается второй батник
@Echo Off Set TUser=User1 Set TServer=%ComputerName% For /F "Skip=1 UseBackQ" %%i In (`WMIC /NODE:"%TServer%" UserAccount Where 'Name Like "%TUser%"' Get Disabled`) Do Set UserDisabled=%%i Call :GetUserSession "%TUser%" "%TServer%" If %UserSession% EQU 0 If /I "%UserDisabled%"=="TRUE" Call e:\1.bat&GoTo CONT Call e:\2.bat :CONT EXIT :GetUserSession :: ------------ :: IN : %1 - User Name :: %2 - Server Name :: OUT: %UserSession% For /F "Tokens=1-4 Skip=3 Delims=# " %%i In ('qwinsta /Server:"%~2"') Do ( If /I "%%i"=="rdp-tcp" If /I "%%k"=="%~1" Set UserSession=%%l&GoTo :EOF If /I "%%i"=="%~1" Set UserSession=%%j&GoTo :EOF ) Set UserSession=0&GoTo :EOF |
Отправлено: 16:02, 18-03-2009 | #7 |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать Вот сама отработка
E:\>Set TUser=User1 E:\>Set TServer=SRV E:\>For /F "Skip=1 UseBackQ" %i In (`WMIC /NODE:"SRV" UserAccount Where 'Name Li ke "User1"' Get Disabled`) Do Set UserDisabled=%i E:\>Set UserDisabled=FALSE :\>Set UserDisabled= E:\>Call :GetUserSession "User1" "SRV" E:\>For /F "Tokens=1-4 Skip=3 Delims=# " %i In ('qwinsta /Server:"SRV"') Do ( If /I "%i" == "rdp-tcp" If /I "%k" == "User1" Set UserSession=%l & GoTo :EOF If /I "%i" == "User1" Set UserSession=%j & GoTo :EOF ) E:\>Set UserSession=0 & GoTo :EOF E:\>If 0 EQU 0 If /I "" == "TRUE" Call e:\1.bat & GoTo CONT -может я ошибаюсь, но мне кажется что скрипт не подставляет тут значение в кавычки E:\>Call e:\2.bat . |
Отправлено: 16:23, 18-03-2009 | #8 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата hse2000:
З.Ы. Надеюсь, "SRV" и "User1" реальные имена сервера и его локального пользователя? |
|
Отправлено: 17:09, 18-03-2009 | #9 |
Новый участник Сообщения: 16
|
Профиль | Отправить PM | Цитировать Да, имена реальные. Вот обработка команды (1-й случай - включена, 2-й случай - отключена):
Видно, что так эта команда отрабатывает. |
Отправлено: 17:23, 18-03-2009 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Доступ - [решено] Логин и переименование учетной записи. | 9073 | Microsoft Windows 2000/XP | 1 | 17-09-2009 11:16 | |
Разное - [решено] Создается папка учетной записи после ее переименованияУчётные записи | stan7307 | Microsoft Windows 2000/XP | 28 | 14-09-2008 18:49 | |
Разное - [решено] Настройка учетной записи пользователя | fergard | Microsoft Windows Vista | 21 | 06-07-2008 15:13 | |
Доступ - [решено] Тип учетной записи | skif_anapster | Microsoft Windows 2000/XP | 4 | 14-05-2008 09:51 | |
[решено] В чем отличия учетной записи Пользователь от учетной записи Опытный Пользователь??? | Ivan_PIV | Microsoft Windows 2000/XP | 3 | 22-03-2007 06:23 |
|