Почему задача так сформулирована, потому как доводилось мне администрировать одну организацию (kari), но вот только чтобы подключиться к серверам, нужно было зайти сперва на одну станцию выделенную для прямого доступа, а уже потом с нее на контролируемые сервера. Но как всегда не всё так красиво и удобно, на контролируемых серверах (к примеру dc,ts и так далее) уже был залогинен сотрудник из отдела имеющий привычку не завершать корректно свою сессию. Попытки объяснить или как то донести до человека, что он не один, результатов не приносило. Поэтому родилась данная заметка.
Для справки: любое совпадение с реальными данными чистое совпадение все данные включая сервера, логины, аутентификационные сведения лишь плод моего воображения.
И так при попытке подключения через rdp к серверу я получал на экране сообщение следующего вида:
Please wait for KARI\d.shatilov to respond
Вообщем я разобрал как выкидывать залогининных пользователей через консоль:
Дожидаться когда же по таймауту меня пропустит не было никакого желания, да порой и срочность обязывающих действий привыше прихоти. В мыслях рождалась цель, а как проверять, кто подключен к серверу и через командную строку выбивать. Ниже решение…
Подключаемся на сервер с которого уже производиться дальнейшее управление серверами клиента «Кари».
Win + R → mstsc /v:<ip_выделенная_станция> /admin /w:1024 /h:768
Далее открываю консоль командной строки на выделенной станции с правами Администратора и делаю так:
Нижеследующий пример взят для примера, потому как в конечно итоге действия аналогичны, это просто для наглядности.
На заметку: нужно обладать правами Администратора на удаленном сервере прежде чем исполнять ниже следующий запрос.
C:\Users\aollo>qwinsta /server:ts03f.kari.local
Этим мы получаем информация по активным rdp сессиям на удаленном терминальном сервере (ts03f), то т.к. для администрирования нужно подключаться с ключом /admin , то нужно одну из двух сессий выбить, предварительно проверить каков период неактивности у нее.
Вывести все терминальные подключения которые находятся в статусе Disconnect:
C:\Users\aollo>qwinsta /server:ts03f.kari.local | find “Disc”
services 0 Disc
e.lysenko 28 Disc
n.tashtenov 39 Disc
10020 59 Disc
y.fomenko 62 Disc
R.Shishkin 66 Disc
s.likova 91 Disc
a.lukashenko 109 Disc
Чтобы кикнуть кого-либо (в данном случае пользователя a.lukashenko) нужно, указать идентификатор сессии полученной из предыдущего исполнения команды:
C:\Users\aollo>logoff /server:ts07f.kari.local 109 /v
Logging off session ID 109
Проверяем:
C:\Users\aollo>qwinsta /server:ts07f.kari.local | find “Disc”
services 0 Disc
10455 53 Disc
Не правильно отсоединенной сессии нет, я ее логофнул.
И уже после этих действий подключиться к удаленному серверу находящемуся на обслуживании не представляет ни каких трудностей. Хоть и неправильно это делать, но другого выхода порой не было. На этом заметка завершена, цель поставленной задачи расписана с показом примера, как и что делать. Вот собственно и все, с уважением ekzorchik.