Завис терминальный сервер RDS: вход сисадмина через mstsc /admin и сброс сессий
Сценарий блокировки терминального сервера (RDS)
Администратор пытается подключиться к удаленному рабочему столу сервера и получает ошибку:
Превышено число допустимых подключений к этому терминальному серверу. или RDP-клиент бесконечно висит на этапе «Оценка качества соединения...» из-за того, что один из пользователей запустил тяжелый отчет в 1С и заблокировал графическую подсистему.
Инструменты администратора для аварийного подключения:
| Команда | Назначение | Особенность |
|---|---|---|
mstsc /admin | Вход в выделенную нулевую консольную сессию | Работает в обход пользовательских клиентских лицензий RDS CAL |
qwinsta (query session) | Просмотр списка всех активных и зависших сеансов | Показывает точный ID каждой сессии |
rwinsta (reset session) | Немедленное завершение (убийство) зависшей сессии | Мгновенно освобождает память и ресурсы CPU |
Аварийный вход и сброс зависших сессий
Шаг 1. Подключение к серверу в режиме администраторской консоли
На своем рабочем компьютере нажмите сочетание клавиш Win + R и выполните команду:
mstsc /v:IP_ИЛИ_ИМЯ_СЕРВЕРА /admin(Режим /admin подключает вас к выделенной консоли управления сеансом 0, даже если все лицензии RDS заняты обычными сотрудниками).
Шаг 2. Просмотр и сброс сессий через удаленную командную строку
Если сервер не пускает даже в графический режим, откройте PowerShell/CMD на своем компьютере и управляйте сеансами удаленно:
# 1. Получаем список всех пользователей на зависшем сервере:
qwinsta /server:RDS01.company.local
# Пример вывода:
# ИМЯ СЕАНСА ПОЛЬЗОВАТЕЛЬ ID РАЗДЕЛ ТИП УСТРОЙСТВО
# rdp-tcp#12 petrov.p 4 Active rdpwd
# rdp-tcp#15 sidorov.s 7 Disc rdpwd
# 2. Принудительно сбрасываем сессию зависшего пользователя по ее ID:
rwinsta 4 /server:RDS01.company.local
rwinsta 7 /server:RDS01.company.localШаг 3. Удаленное убийство зависшего процесса 1С (1cv8.exe)
Если сброс сессии не помог, завершите зависший процесс удаленно через taskkill:
# Поиск процессов на удаленном сервере:
tasklist /s RDS01.company.local /fi "IMAGENAME eq 1cv8.exe"
# Принудительное завершение зависшего 1cv8 по PID:
taskkill /s RDS01.company.local /pid 14520 /fНастройка на будущее: Настройте через GPO автоматическое завершение отключенных сеансов: Конфигурация компьютера → Административные шаблоны → Компоненты Windows → Службы удаленных рабочих столов → Узел сеансов → Ограничения по времени → Завершать отключенный сеанс через 1 час.
Частые вопросы (FAQ)
В чем разница между 'Отключенным сеансом' (Disconnected) и 'Активным' (Active)?
Активный сеанс — пользователь работает прямо сейчас. Отключенный (Disconnected) — пользователь закрыл окно RDP крестиком, но все его программы (1С, Excel) продолжают работать в памяти сервера и занимать ресурсы.
Что делать, если команда rwinsta выдает 'Отказано в доступе'?
Запустите командную строку обязательно от имени учетной записи, входящей в группу 'Администраторы домена' или 'Локальные администраторы' целевого терминального сервера.
Чем устаревший ключ mstsc /console отличается от mstsc /admin?
Ключ /console использовался в Windows Server 2003. Начиная с Windows Server 2008 и во всех современных версиях используется только ключ /admin.
Как отправить текстовое сообщение пользователю перед сбросом его сессии?
Используйте команду msg: msg petrov.p /server:RDS01 'Ваш сеанс будет перезапущен через 2 минуты в связи с техническими работами'.