Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] проверка состояния учетной записи

Ответить
Настройки темы
VBS/WSH/JS - [решено] проверка состояния учетной записи

Новый участник


Сообщения: 16
Благодарности: 0

Профиль | Отправить PM | Цитировать


Не подскажите как бы сворганить скриптик который будет запускаться и следить включена учетная запись пользователя или отключена и есть ли активная сессия данного пользователя на терминальном сервере?

Отправлено: 17:34, 16-03-2009

 


Moderator


Сообщения: 53441
Благодарности: 15497

Профиль | Отправить PM | Цитировать


hse2000, что должен делать этот скрипт помимо слежения?

Отправлено: 18:27, 16-03-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 16
Благодарности: 0

Профиль | Отправить PM | Цитировать


если все условия выполнены (т.е. учетка заблокирована и сеанс пользователя не активен), то запускается один батник который отправляет почту, что все ОК, если хотя бы одно условие не выполнено, то запускается другой батник, который отправляет сообщение, что false

Отправлено: 22:41, 16-03-2009 | #3


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить 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
Благодарности: 0

Профиль | Отправить 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
Благодарности: 1563

Профиль | Отправить PM | Цитировать


hse2000, извиняюсь, после очередной редакции хвосты не подправил

Отправлено: 15:10, 18-03-2009 | #6


Новый участник


Сообщения: 16
Благодарности: 0

Профиль | Отправить 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
Благодарности: 0

Профиль | Отправить 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
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата hse2000:
может я ошибаюсь, но мне кажется что скрипт не подставляет тут значение в кавычки
»
именно так, проверьте работу команды:
Код: Выделить весь код
WMIC /NODE:"SRV" UserAccount Where 'Name Like "User1"' Get Disabled
З.Ы. Надеюсь, "SRV" и "User1" реальные имена сервера и его локального пользователя?

Отправлено: 17:09, 18-03-2009 | #9


Новый участник


Сообщения: 16
Благодарности: 0

Профиль | Отправить PM | Цитировать


Да, имена реальные. Вот обработка команды (1-й случай - включена, 2-й случай - отключена):

Код: Выделить весь код
E:\Documents and Settings\Administrator>WMIC /NODE:"SRV" UserAccount Where 'Name
 Like "User1"' Get Disabled
Disabled
FALSE

E:\Documents and Settings\Administrator>WMIC /NODE:"SRV" UserAccount Where 'Name
 Like "User1"' Get Disabled
Disabled
TRUE
Видно, что так эта команда отрабатывает.

Отправлено: 17:23, 18-03-2009 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » VBS/WSH/JS - [решено] проверка состояния учетной записи

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Доступ - [решено] Логин и переименование учетной записи. 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




 
Переход