zhuk09
14-11-2017, 19:41
Добрый вечер!
Много времени потратил на поиск решения logoff для disconnected users с помощь скрипта.
Посредством групповой политики отрабатывает, но не 100%. У 2-3 пользователей сессии не закрываются (((
В итоге все что нашел и что испытал
1. Log Off all Terminal Server Session Users https://support.microsoft.com/en-us/help/259436/how-to-log-off-all-terminal-server-session-users-from-a-command-prompt
query session >session.txt
for /f "skip=1 tokens=3," %%i in (session.txt) DO logoff %%i
del session.txt
Для ОС Win2k8 и выше, необходимо пропускать 2-е подстроки в строке (skip=2) что бы не обрабатывать учетные записи служб. Например «services».
query session >session.txt
for /f "skip=2 tokens=3," %%i in (session.txt) DO logoff %%i
del session.txt
Но это все справедливо для пользователей, которые на данный момент активны в терминальной сессии, т.е есть параметры - Имя сеанса, - Пользователь, -ID сеанса.
Когда пользователь disconnected
http://s011.radikal.ru/i317/1711/fa/6fccb01e6e06.jpg (http://radikal.ru)
эти скрипты не отрабатывают.
2. Нашел logoff скрипт, который применим для disconnected users https://stackoverflow.com/questions/36715033/how-to-logoff-all-users-on-windows-from-command-line-as-a-domain-administrator
@echo off
for /f "skip=2 tokens=2,3 delims= " %%a in ('query session') DO (
echo %%a|findstr /xr "[1-9][0-9]* 0" >nul && (
logoff %%a
)
echo %%b|findstr /xr "[1-9][0-9]* 0" >nul && (
logoff %%b
)
)
Как я понял, данный скрипт производит сброс протоколов rdp-tcp и ica-tcp.
Но обязательно данные действия надо подтверждать.
http://s016.radikal.ru/i336/1711/32/3444386f1e03.jpg (http://radikal.ru)
Это не возможно, если автоматизировать данный скрипт через планировщик задач.
Модифицировать данный скрипт без подтверждения действий у меня не получилось. Жду советов и помощи в модификации скрипта.
Много времени потратил на поиск решения logoff для disconnected users с помощь скрипта.
Посредством групповой политики отрабатывает, но не 100%. У 2-3 пользователей сессии не закрываются (((
В итоге все что нашел и что испытал
1. Log Off all Terminal Server Session Users https://support.microsoft.com/en-us/help/259436/how-to-log-off-all-terminal-server-session-users-from-a-command-prompt
query session >session.txt
for /f "skip=1 tokens=3," %%i in (session.txt) DO logoff %%i
del session.txt
Для ОС Win2k8 и выше, необходимо пропускать 2-е подстроки в строке (skip=2) что бы не обрабатывать учетные записи служб. Например «services».
query session >session.txt
for /f "skip=2 tokens=3," %%i in (session.txt) DO logoff %%i
del session.txt
Но это все справедливо для пользователей, которые на данный момент активны в терминальной сессии, т.е есть параметры - Имя сеанса, - Пользователь, -ID сеанса.
Когда пользователь disconnected
http://s011.radikal.ru/i317/1711/fa/6fccb01e6e06.jpg (http://radikal.ru)
эти скрипты не отрабатывают.
2. Нашел logoff скрипт, который применим для disconnected users https://stackoverflow.com/questions/36715033/how-to-logoff-all-users-on-windows-from-command-line-as-a-domain-administrator
@echo off
for /f "skip=2 tokens=2,3 delims= " %%a in ('query session') DO (
echo %%a|findstr /xr "[1-9][0-9]* 0" >nul && (
logoff %%a
)
echo %%b|findstr /xr "[1-9][0-9]* 0" >nul && (
logoff %%b
)
)
Как я понял, данный скрипт производит сброс протоколов rdp-tcp и ica-tcp.
Но обязательно данные действия надо подтверждать.
http://s016.radikal.ru/i336/1711/32/3444386f1e03.jpg (http://radikal.ru)
Это не возможно, если автоматизировать данный скрипт через планировщик задач.
Модифицировать данный скрипт без подтверждения действий у меня не получилось. Жду советов и помощи в модификации скрипта.