Классика жанра! Пользователь пошёл пить чай, а сессия залипла в глубокой коме RDP-шного небытия, жрёт ресурсы, и ты смотришь на это через диспетчер задач с такой же болью, как на забытую TeamViewer-сессию в 2017. Пора разлогинить беднягу. Удалённо. По-взрослому. Или ты не ленивый админ?
Вариант 1: PowerShell на дистанции, как джедай-админ
query session /server:Имя_или_IP_сервера
Ты увидишь список вроде:
SESSIONNAME USERNAME ID STATE TYPE DEVICE
>rdp-tcp#5 user1 2 Active rdpwd
user2 3 Disc
Тебе не нравится юзер2 и теперь ты готов удалённо прибить его сессию:
logoff 3 /server:Имя_или_IP_сервера
✅ Это корректно завершит сеанс под ID 3.
И не выключает комп, не убивает процессы в стиле голливудского хакера! Просто культурно — "выход через кассу".
Вариант 2: Через RDP и Task Manager
- Подключаешься через RDP с правами админа (да, если совсем все плохо то через mstsc /admin, чтобы не съесть последнюю лицензию RDS).
- Открываешь Task Manager → вкладка Users
- Там видишь всех подключённых (и отошедших в мир иной) пользователей.
- Правый клик по зависшему → Log off
⚠️ Тут можно случайно себя выгнать. Не повторяй ошибки стажёра 2011 года.
Вариант 3: Через Server Manager
Если у тебя Windows Server GUI (а не из тех, кто всё на Core):
- Открой Server Manager
- Перейди в раздел Remote Desktop Services (если установлен)
- Там будет список всех пользователей → правая кнопка по нужному → Log off
Красиво, с графиками и чувством власти. Почти как в Citrix!
Вариант 4: Сильно лютый — через taskkill
Если знаешь имя процесса или юзера через телекинез и хочешь жахнуть процессы, то можно так:
tasklist /s ИмяСервера /v | findstr user2
Нашёл PID → добиваешь:
taskkill /s ИмяСервера /PID 1234 /F
Но помни: это уже тёмные искусства. Можно убить что-то важное и потом придется делать лицо невинной овечки "а чё это у вас принтер в бухгалтерии умер?".
А если сессия не умирает, как нежить?
Если логoff не работает, и сессия зависла в состоянии "Зомби" (на вид Disconnected, но занята):
- Попробуй Reset Session ID /server:имя_сервера
- Или выруби пользователя из tsadmin.msc (старый добрый терминальный админ)
- Или перезапусти TermService через services.msc (осторожно — всех выкинет!)
Лайфхаки мастеров
- Добавь себе утилиту PsExec — можно прям в консоли запускать cmd на удалённой машине и колдовать как хочешь.
- Или Remote Desktop Services Manager (в составе старых RSAT), он как диспетчер сессий, но ретро-олдскул с благородным лоском.