Не так давно мне пришлось решать следующую задачу: необходимо по расписанию в час N рубить все RDP сессии на терминальном сервере, для того чтобы, запускаемая чуть позже, обработка в 1С не вылетела с ошибкой из-за какого-нибудь нерадивого юзера, забывшего выйти из 1С в терминальной сессии.
Немного погуглив, нарыл следующую последовательность действий:
1) Запрашиваем все доступные на терминальном сервере сессии следующей командой
Query Sessions /server:Server_Name
2) Записывем ID сессии нужного вам пользователя
3) Запускаем следующую команду для отключения выбранного пользователя
Logoff ID_Number /Server:Server_Name
Проверил этот способ - работает. Но, это все таки надо делать вручную.
Еще немного погуглив, нашел более подходящий вариант:
Проверенно - РАБОТАЕТ
1) Создаем примитивный bat-файл user_logoff.bat со следующим содержимым
logoff rdp-tcp < yes.txt
2) В этой же папке создаем текстовый файл yes.txt с единственным содержимым - символ Y
3) Создаем новое расписание в Scheduled Tasks или nnCron для запуска файла user_logoff.bat в нужное нам время.
P.S. Маленький нюанс - рубятся все RDP сессии кроме нулевой.
Этот приём сбрасывает только активные сессии. А ведь пользователи ещё умеют отключать сеансы. Как автоматизировать сброс отключенных сеансов?
ВідповістиВидалити"Query Session" у меня работает, без S на конце
ВідповістиВидалити