Найти в Дзене
Сисадмин

Как удаленно разлогинить зависшую сессию пользователя в Windows Server

Оглавление
Как удаленно разлогинить сессию пользователя
Как удаленно разлогинить сессию пользователя

Классика жанра! Пользователь пошёл пить чай, а сессия залипла в глубокой коме 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

  1. Подключаешься через RDP с правами админа (да, если совсем все плохо то через mstsc /admin, чтобы не съесть последнюю лицензию RDS).
  2. Открываешь Task Manager → вкладка Users
  3. Там видишь всех подключённых (и отошедших в мир иной) пользователей.
  4. Правый клик по зависшему → Log off

⚠️ Тут можно случайно себя выгнать. Не повторяй ошибки стажёра 2011 года.

Вариант 3: Через Server Manager

Если у тебя Windows Server GUI (а не из тех, кто всё на Core):

  1. Открой Server Manager
  2. Перейди в раздел Remote Desktop Services (если установлен)
  3. Там будет список всех пользователей → правая кнопка по нужному → 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), он как диспетчер сессий, но ретро-олдскул с благородным лоском.