Удаленное отключение терминальных сессий (RDP) из командной строки

Многим знакома ситуация когда при подключения к удаленному рабочему столу мы получаем ошибку -

The terminal server has exceeded the maximum number of allowed connections
 
То бишь подключится мы не можем. Не будем говорить о нехватке лицензий на терминальный сервер, а также о том, что не выставлены периоды сброса отключенных или неактивных сеансов.
 
Обычно в таком случае идут в оснастку диспетчера служб терминалов и сбрасывают ненужные сессии. Я думаю такая картинка знакома всем -
 
 
Но для этого надо подключится к какому-либо серверу или  иметь установленный Administration Tools Pack. На мой взгляд это долго и много лишних телодвижений.
 
Для меня намного проще отключить сессии используя командную строку.
 
Для просмотра терминальных сессии используют команду -
 
Command Prompt> qwinsta /server:terminal.example.com
где terminal.example.com - это имя нашего сервера
 
Если у пользователя под которым вы работаете не хватает прав для администрирования служб терминалов, то вы получите ошибку -
Command Prompt> qwinsta /server:terminal.example.com
Error opening Terminal server terminal.example.com
 Error [5]:Access is denied. 
 
Тогда необходимо подключить ресурс IPC от имя пользователя у которого есть права на работу с сессиями.
Command Prompt> net use \\terminal.example.com\IPC$ /u:username
 
Теперь можно просмотреть кто у нас подключен -
Command Prompt> qwinsta /server:terminal.example.com
 SESSIONNAME       USERNAME                 ID  STATE   TYPE        DEVICE
 console                                                0  Conn    wdcon
 rdp-tcp                                          65536  Listen  rdpwd
 rdp-tcp#25           vasya                        3  Active  rdpwd
 
Для отключения сессии пользователя используем команду
Command Prompt> rwinsta /server:terminal.example.com <session-id> 
 
То бишь в нашем примере для отключения пользователя vasya, смотрим id его сессии, из примера - 3 и даем команду на отключение
Command Prompt> rwinsta /server:terminal.example.com 3
 
Все пользоатель  Vasya отключен от терминальной сессии, если он в этот момент работал с ней, то получит предупреждение, о том что он отключен администратором.
Интересное на сайте: 
0
Голосов пока нет

Комментарии

Ну всё... теперь в серверную вообще ходить не надо =)

Спасибо, помогло, очень доходчиво объяснил :)

Можете воспользоваться моей программой, которая находит открытые терминальные сессии на сервере из списка и, кроме того, позволяет их принудительно закрыть. http://kovanev.net/downloads/my-soft/218-find-rdp-sessions

команда Command Prompt> rwinsta /server:terminal.example.com 3 выдала лишь строку с этим ID.
помогла команда
Command Prompt> query session 3 /server:terminal.example.com
win7_64 если что.