LOGOFF — завершение сеанса пользователя из командной строки

LOGOFF завершает текущий сеанс Windows и возвращает экран входа. Полезна для скриптов автоматического выхода и управления сеансами RDP.

LOGOFF — завершение сеанса пользователя из командной строки

Команда LOGOFF завершает текущий или указанный сеанс пользователя Windows. В отличие от выключения или перезагрузки, она только закрывает пользовательский сеанс и возвращает систему на экран входа — все остальные сеансы продолжают работу. Особенно востребована в скриптах автоматизации и при управлении удалёнными сеансами RDP.

Синтаксис команды LOGOFF

LOGOFF [sessionname | sessionid] [/SERVER:servername] [/V] [/VM]

Если вызвать LOGOFF без параметров — завершается текущий сеанс. Остальные плейсхолдеры:

  • sessionname — имя сеанса (например, console, rdp-tcp#2).
  • sessionid — числовой идентификатор сеанса.
  • servername — имя или IP удалённого сервера терминалов.

Ключи и параметры

Ключ Описание Пример
/SERVER:servername Удалённый сервер терминалов, на котором завершается сеанс LOGOFF 3 /SERVER:ts01
/V Подробный вывод: показывает выполняемые действия LOGOFF /V
/VM Завершить сеанс на виртуальной машине (RemoteFX) LOGOFF 2 /VM
sessionname Имя сеанса для завершения (узнать через QUERY SESSION) LOGOFF rdp-tcp#1
sessionid Числовой ID сеанса LOGOFF 4

Примеры использования

Завершить текущий сеанс

Самый частый случай — выйти из системы из скрипта или командной строки, не трогая мышь.

LOGOFF

Сеанс немедленно закрывается, все незащищённые данные в открытых приложениях будут потеряны. Убедитесь, что всё сохранено.

Завершить сеанс по имени

Полезно, когда нужно закрыть конкретный сеанс на терминальном сервере, не разрывая свой.

LOGOFF rdp-tcp#3

Система закроет сеанс с именем rdp-tcp#3. Имя сеанса предварительно получают командой QUERY SESSION.

Завершить сеанс по числовому ID

Числовой ID удобен в автоматизированных скриптах, когда имя сеанса неизвестно заранее.

QUERY SESSION
LOGOFF 2

Первая команда выводит список активных сеансов и их ID, вторая завершает сеанс с ID 2.

Завершить сеанс на удалённом сервере

Администратор может закрыть зависший сеанс пользователя на сервере терминалов удалённо.

LOGOFF 5 /SERVER:ts-prod01

Сеанс с ID 5 на сервере ts-prod01 будет закрыт. Требуются права администратора на удалённом сервере.

Завершить сеанс с подробным выводом

Флаг /V позволяет убедиться, что команда выполнена успешно — полезно при отладке скриптов.

LOGOFF 3 /V

В консоль выводится подтверждение: какой сеанс был завершён и на каком сервере.

Выход через планировщик задач

Можно настроить автоматический выход пользователя после рабочего времени.

schtasks /create /tn "AutoLogoff" /tr "LOGOFF" /sc daily /st 19:00 /ru SYSTEM

Задание будет ежедневно в 19:00 завершать текущий сеанс. Полезно в учебных классах и киосках.

Частые ошибки и решения

Ошибка Причина Решение
«Отказано в доступе» Попытка завершить чужой сеанс без прав администратора Запустить CMD от имени администратора (runas /user:Administrator cmd)
«Неверное имя сеанса» Имя сеанса указано с опечаткой или сеанс уже завершён Проверить актуальный список через QUERY SESSION
«Сервер недоступен» Неверное имя сервера или проблема с сетью при использовании /SERVER Проверить имя сервера командой ping и права доступа к нему
Данные не сохранены после LOGOFF Приложения не успели сохранить файлы до завершения сеанса Перед вызовом LOGOFF закрыть приложения или добавить паузу в скрипт
LOGOFF не работает на локальной консоли без сети Некоторые версии Windows не выполняют LOGOFF в режиме единственного сеанса корректно Использовать shutdown /l как альтернативу для выхода из системы

Когда применять, а когда нет

LOGOFF подходит для завершения сеансов на терминальных серверах, автоматического выхода по расписанию и скриптов сопровождения рабочих мест. Команду нельзя использовать для завершения сеанса SYSTEM — это заблокировано системой. Для простого выхода из Windows с GUI быстрее нажать Win+L для блокировки или Alt+F4 на рабочем столе для диалога выхода. PowerShell-аналог: (Get-WmiObject -Class Win32_OperatingSystem).Win32Shutdown(0) или модуль PSTerminalServices для управления RDP-сеансами.

FAQ

Чем LOGOFF отличается от shutdown /l?

По результату они идентичны — оба завершают сеанс пользователя. Разница: shutdown /l не принимает параметры сеанса и всегда действует на текущего пользователя, тогда как LOGOFF позволяет указать конкретный сеанс или удалённый сервер.

Можно ли завершить сеанс другого пользователя без его ведома?

Да, если у вас есть права администратора. Используйте QUERY SESSION для получения ID сеанса, затем LOGOFF <sessionid>. Пользователь получит уведомление о завершении сеанса без возможности отменить действие.

Сохраняются ли данные при выполнении LOGOFF?

Только то, что уже записано на диск. Если приложение держит несохранённые данные в памяти — они будут потеряны. Часть приложений (Word, Excel) успевает создать автосохранение, но это не гарантировано.

Почему LOGOFF не работает в планировщике задач?

Задание должно запускаться в контексте нужного пользователя, а не SYSTEM. Либо добавить в задание команду LOGOFF /SERVER:localhost с явным именем сеанса. Проверьте флаг «Выполнять только для вошедших пользователей».

Как узнать ID сеанса перед вызовом LOGOFF?

Команда QUERY SESSION или её синоним QWINSTA выводит список активных сеансов с именами, ID и состоянием. Скопируйте нужный ID и передайте в LOGOFF.

Оцените статью
( Пока оценок нет )
MW10
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.