- LOGOFF – завершение сеанса пользователя Windows .
- How to track users logon/logoff
- Summary
- Option 1
- Option 2
- logoff logoff
- Синтаксис Syntax
- Параметры Parameters
- Комментарии Remarks
- Примеры Examples
- Windows : logoff from command line
- Страна Админа
- Популярно об информационных системах и технологиях
- admin@adminland.ru
- Вы здесь
- Поддержите adminland
- Завершение работы всех пользователей (logoff all users)
- Форумы:
- Есть статья 259436 от
- отключение отключенных 🙂
- Использовать имя пользователя
- ну у меня получилось, вот
- В ковычки имена зикинь и
- Powershell
- Анализ процессов
- небольшая доработка
- Побочный эффект
LOGOFF – завершение сеанса пользователя Windows .
Команда MODE используется для завершения сеанса пользователя (выхода из Windows). Формат командной строки:
LOGOFF [имя сеанса | ИД сеанса] [/SERVER:сервер] [/V] [/VM]
Параметры командной строки:
имя сеанса — Имя сеанса.
ID сеанса — Идентификатор сеанса.
/SERVER:сервер — Сервер удаленных рабочих столов, содержащий пользователя пользователя (по умолчанию — текущий).
/V — Отображение информации о выполненных действиях.
/VM — Завершение сеанса на сервере или в виртуальной машине. Необходимо указать уникальный идентификатор сеанса.
LOGOFF /? — отобразить справку по использованию.
logoff — завершить текущий сеанс пользователя (выйти из системы).
logoff rdp-tcp#3 /server:COMP10 — завершить сеанс с именем rdp-tcp#3 на сервере COMP10 . Имя сеанса можно определить командой QUSER /server:COMP10 .
logoff 2 /server:COMP10 — завершить сеанс с идентификатором 2 на сервере COMP10
logoff 2 /server:192.168.1.110 — то же, что и в предыдущем примере, но вместо имени сервера используется его IP-адрес.
logoff 2 /server:192.168.1.110 /V — использовать подробный режим отображения сведений о выполняемых действиях. В этом случае на экран выводится сообщение:
Будет выполнен выход user (сеанс 2) из системы ,
продолжить (n=нет)?n
Отображается не только идентификатор сеанса, но и имя пользователя. В этом режиме, завершение сеанса можно отменить, ответив n на запрос продолжить (n=нет)?n . По умолчанию, отмена завершения сеанса не выполняется.
В качестве альтернативы команде logoff можно использовать команду SHUTDOWN с параметром -l
How to track users logon/logoff
This article describes how to track users logon/logoff.
Original product version: В Windows Server 2003
Original KB number: В 556015
This article was written by Yuval Sinay, Microsoft MVP.
Summary
The following article will help you to track users logon/logoff.
Option 1
Enable Auditing on the domain level by using Group Policy:
Computer Configuration/Windows Settings/Security Settings/Local Policies/Audit Policy
There are two types of auditing that address logging on, they are Audit Logon Events and Audit Account Logon Events.
Audit «logon events» records logons on the PC(s) targeted by the policy and the results appear in the Security Log on that PC(s).
Audit «Account Logon» Events tracks logons to the domain, and the results appear in the Security Log on domain controllers only.
Create a logon script on the required domain/OU/user account with the following content:
Create a logoff script on the required domain/OU/user account with the following content:
Please be aware that unauthorized users can change this scripts, due the requirement that the SHARENAME$ will be writeable by users.
Option 2
Use WMI/ADSI to query each domain controller for logon/logoff events.
Community Solutions Content Disclaimer
MICROSOFT CORPORATION AND/OR ITS RESPECTIVE SUPPLIERS MAKE NO REPRESENTATIONS ABOUT THE SUITABILITY, RELIABILITY, OR ACCURACY OF THE INFORMATION AND RELATED GRAPHICS CONTAINED HEREIN. ALL SUCH INFORMATION AND RELATED GRAPHICS ARE PROVIDED «AS IS» WITHOUT WARRANTY OF ANY KIND. MICROSOFT AND/OR ITS RESPECTIVE SUPPLIERS HEREBY DISCLAIM ALL WARRANTIES AND CONDITIONS WITH REGARD TO THIS INFORMATION AND RELATED GRAPHICS, INCLUDING ALL IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, WORKMANLIKE EFFORT, TITLE AND NON-INFRINGEMENT. YOU SPECIFICALLY AGREE THAT IN NO EVENT SHALL MICROSOFT AND/OR ITS SUPPLIERS BE LIABLE FOR ANY DIRECT, INDIRECT, PUNITIVE, INCIDENTAL, SPECIAL, CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF USE, DATA OR PROFITS, ARISING OUT OF OR IN ANY WAY CONNECTED WITH THE USE OF OR INABILITY TO USE THE INFORMATION AND RELATED GRAPHICS CONTAINED HEREIN, WHETHER BASED ON CONTRACT, TORT, NEGLIGENCE, STRICT LIABILITY OR OTHERWISE, EVEN IF MICROSOFT OR ANY OF ITS SUPPLIERS HAS BEEN ADVISED OF THE POSSIBILITY OF DAMAGES.
logoff logoff
Область применения: Windows Server (половина ежегодного канала), Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012 Applies to: Windows Server (Semi-Annual Channel), Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012
Выполнит выход пользователя из сеанса на удаленный рабочий стол сервере узла сеансов и удалит сеанс. Logs off a user from a session on a Remote Desktop Session Host server and deletes the session.
Синтаксис Syntax
Параметры Parameters
Параметр Parameter | Описание Description |
---|---|
Указывает имя сеанса. Specifies the name of the session. Это должен быть активный сеанс. This must be an active session. | |
Указывает числовой идентификатор, определяющий сеанс на сервере. Specifies the numeric ID which identifies the session to the server. | |
/server: /server: | Указывает сервер узла сеансов удаленный рабочий стол, содержащий сеанс, для которого пользователь должен выйти из системы. Specifies the Remote Desktop Session Host server that contains the session whose user you want to log off. Если не указано, используется сервер, на котором активна в данный момент. If unspecified, the server on which you are currently active is used. |
/v /v | Отображает сведения о выполняемых действиях. Displays information about the actions being performed. |
/? /? | Отображение справки в командной строке. Displays help at the command prompt. |
Комментарии Remarks
Вы всегда можете выйти из сеанса, к которому в данный момент выполнен вход. You can always log off yourself from the session to which you are currently logged on. Однако необходимо иметь разрешение « полный доступ» для выхода пользователей из других сеансов. You must, however, have Full Control permission to log off users from other sessions.
Выход пользователя из сеанса без предупреждения может привести к утрате данных в сеансе пользователя. Logging off a user from a session without warning can result in loss of data at the user’s session. Необходимо отправить пользователю сообщение с помощью команды MSG , чтобы предупредить пользователя перед выполнением этого действия. You should send a message to the user by using the msg command to warn the user before taking this action.
Если параметр или не указан, функция выхода из системы выполняет выход пользователя из текущего сеанса. If or isn’t specified, logoff logs the user off from the current session.
После выхода пользователя из системы все процессы завершаются, а сеанс удаляется с сервера. After you log off a user, all processes end and the session is deleted from the server.
Пользователь не может выйти из сеанса консоли. You can’t log off a user from the console session.
Примеры Examples
Для выхода пользователя из текущего сеанса введите: To log off a user from the current session, type:
Для выхода пользователя из сеанса с помощью идентификатора сеанса, например сеанса 12, введите: To log off a user from a session by using the session’s ID, for example session 12, type:
Для выхода пользователя из сеанса с использованием имени сеанса и сервера, например Session TERM04 на сервере Server1, введите: To log off a user from a session by using the name of the session and server, for example session TERM04 on Server1, type:
Windows : logoff from command line
We can logoff a user session by clicking on the Logoff button in the start menu. We can logoff from command prompt(CMD) too using shutdown command. You need to run the below command.
Shutdown is a Windows in-built command. We don’t have to install it separately. Note that we can run this command from windows Run window also. This command works on all windows editions. (XP, Vista, Server 2k3/2k8, Windows 7)
There’s another command Logoff which also serves the same purpose. This command can be used to logoff sessions on the remote computers also. Find syntax below for this.
To logoff on the current system
This does not accept user name and passwords so it uses the credentials of the current logged in user on the host system.
How to force logoff without waiting for user confirmation to terminate the running applications?
The above commands do forced logoffs.В They kill all the applications one by one and at the end logs off the user.
If I want to login from command line, how do I set it up?
Open Task manager, click on Users, Right Click, manage user account, it will open control panel. It the path above, open cmd from here. shutdown -l to log out.
Login again. It works.
need to logoff but cannot
i need to log out from anther user with the user name
sameing like that…
logoff username:moss /server:172.19.19.50
Страна Админа
Популярно об информационных системах и технологиях
admin@adminland.ru
Вы здесь
Поддержите adminland
За 2020 год из пары десятков тысяч посетителей, набралось всего пару десятков перечислений от 50 до 300 рублей.
Пустяк в денежном выражении, но большая ценность для автора. Посмотрим что год грядущий нам готовит ))
Сумма абсолютно не важна — главное участие.
Завершение работы всех пользователей (logoff all users)
Требуется завершить работу всех пользователей на терминальном сервере в автоматическом режиме для проведения архивации. При решении простой на первый взгляд задачи проявилось столько нюансов, что решил оформить ее в виде форума.
Форумы:
Есть статья 259436 от
Опубликовано 5 апреля, 2012 — 16:04 пользователем manager
Есть статья 259436 от Микрософта. Вкратце советуют так:
query session >session.txt
for /f «skip=1 tokens=3,» %%i in (session.txt) DO logoff %%i
На самом деле надо делать query user, так как session вернет лишние строки для services, console и rdp-tcp.
query user >session.txt
for /f «skip=1 tokens=3,» %%i in (session.txt) DO logoff %%i
Исправленный вариант отработает для всех активных пользователей, но не сделает logoff для отключенных (disconnect).
отключение отключенных 🙂
Опубликовано 5 апреля, 2012 — 16:14 пользователем manager
Анализируя в цикле файл session.txt мы используем ключ /f с параметрами skip=1 и tokens=3. Первый параметр указывает, что надо пропустить первую (заголовочную) строку, второй — указывает на выделение 3-ей подстроки в каждой последующей строке файла.
Строка активного пользователя имеет такой вид:
имя_пользователя имя_сессии идентификатор_сессии статус .
Третьей подстрокой будет идентификатор сессии и все у нас правильно.
Но для отключенного пользователя ситуация другая:
имя_пользователя идентификатор_сессии статус .
Третьей подстрокой в данном случае будет статус и команда logoff отработает с ошибкой.
Использовать имя пользователя
Опубликовано 5 апреля, 2012 — 16:22 пользователем manager
Напрашивается решение использовать имя пользователя — первую подстроку. Но и тут не все благополучно, к имени пользователя под которым запущена команда Windows добавляет значок >
Стандартные способы обработки строк, например, %%i:
2% в цикле не работают. У меня точно не заработало, хотя потратил часа 2.
ну у меня получилось, вот
Опубликовано 3 марта, 2015 — 21:48 пользователем kenny_rim (не проверено)
ну у меня получилось, вот содержимое моего bat-файла:
query user >user.txt
for /f «skip=1 tokens=2,» %%i in (user.txt) DO logoff %%i
т.е. он завершает или RDP-TCP# или код ID(там где пользователь отключен (disconnect))
единственный момент, в именах пользователей не должно быть пробелов(я их заменил на _) иначе неотработает.
В ковычки имена зикинь и
Опубликовано 17 марта, 2016 — 11:38 пользователем Асден (не проверено)
В ковычки имена зикинь и будет ок
Powershell
Опубликовано 5 апреля, 2012 — 16:27 пользователем manager
Не получается в BAT попробуем в powershell. Почитав что уже есть наработанного удивленно увидел, что большинство скриптов базируется на той же самой quser (query user) Вывод команды сохраняется в строковый массив $users=quser и далее из строк извлекаются имена пользователей.
Все скрипты либо маленькие, но не учитывающие изменение строки для отключенного пользователя, либо далеки от прозрачности. В общем некрасивый, но выход.
Анализ процессов
Опубликовано 5 апреля, 2012 — 16:37 пользователем manager
Вернемся к постановке задачи. Проводится архивация, ей могут помешать определенные приложения. То есть мы можем получить список процессов по условию, посмотреть под кем они запущены и завершить сеансы соответствующих пользователей.
Конкретный пример, завершение работы всех пользователей, от имени которых запущен «толстый клиент» 1с 8.2 (1cv8.exe)
$1cv8 = Get-WMIObject win32_process | where <$_.ProcessName -eq "1cv8.exe">
foreach ($proc in $1cv8)
<
logoff $proc.SessionID
>
небольшая доработка
Опубликовано 5 июня, 2019 — 22:42 пользователем Антон (не проверено)
$nameproc = «1cv8s.exe»,»1cv8c.exe»,»1cv8.exe»
foreach ($name in $nameproc)
<
$1cv8 = Get-WMIObject win32_process | where <$_.ProcessName -eq $name>
if ($1cv8)
<
foreach ($proc in $1cv8)
<
logoff $proc.SessionID
>
>
>
Побочный эффект
Опубликовано 5 апреля, 2012 — 16:45 пользователем manager
Экспериментируя с query session нашел интересный способ как одной командой отключить (не завершить работу) всех RDP пользователей от сервера.
Последняя строка отображает сессию rdp-tcp с идентификатором 65536. Эта сессия называется Listener она по умолчанию привязана к протоколу RDP и служит для создания пользовательских сессий RDP.
Если мы завершим ее, то произойдет отключение всех RDP сессий.