- LOGOFF – завершение сеанса пользователя Windows .
- Как удаленно разлогинить пользователя windows
- Описание проблемы
- Методы завершения сессии пользователя не терминале
- Как выкинуть пользователя из оснастки управления RDS
- Второй метод разлогинить пользователя на терминальном сервере
- Использование утилиты RWINSTA
- Как отключить пользователя через reset session
- Как отключить пользователя через logoff
- Выход пользователя через командлет Stop-TSSession
- Выход пользователя через командлет Stop-TerminalSession
- Удаленное управление сеансом пользователя windows стандартными средствами
- Выйти из отключенного пользователя удаленно
- 6 ответов
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
Как удаленно разлогинить пользователя windows
Добрый день! Уважаемые читатели и гости IT портала Pyatilistnik.org. Вчера я вас научил определять номер и ID сеанса пользователя на RDS ферме или терминальном сервере. Там я вам рассказывал, что это нужно в случаях, когда вам необходимо завершить сессию пользователя, по ряду причин, одна из таких, это просто ее зависание. После чего человек и подключиться не может заново и не может выйти из своего сеанса. Вы как администратор, должны уметь решать проблему с зависшими RDP сессиями, ниже я покажу свои методы и алгоритмы.
Описание проблемы
Есть RDS ферма из 15 хостов подключений на Windows Server 2012 R2. Сервера на то они и сервера, что работают постоянно. Если у вас на ферме не настроены тайм ауты времени беспрерывной работы, то пользователи могут неделями или месяцами висеть в авторизованных подключениях. Логично предположить, что это не очень хорошо и ведет к различным последствиям, одно из которых, это полное зависание сеанса, при котором человек не может подключиться к терминальному серверу и видит сообщение «Работает служба профилей пользователей» или еще вариант «Не удается завершить требуемую операцию», я уже не говорю про повреждение пользовательского профиля. В результате того, что RDS брокеры видят. что пользователь уже залогинен, они не дают ему переподключиться к другому Session Host серверу, даже если вы закроете на текущем новые подключения. Пока вы не сделаете выход пользователя из системы для этой сессии, она так и будет мешать. Давайте разбираться, как это делать.
Методы завершения сессии пользователя не терминале
Существует несколько методов позволяющие выкинуть пользователя с сервера.
- Завершить сессию пользователя (Сделать log off) вы можете из оснастки управления RDS фермой
- Разлогинить пользователя можно и на самом терминальном сервере из диспетчера задач
- Выход пользователя можно выполнить из утилиты командной строки rwinsta
- Утилита командной строки log off
- Утилита reset session
- * Командлет Stop-TSSession
Как выкинуть пользователя из оснастки управления RDS
И так, у меня есть мой любимый, тестовый пользователь в Active Directory, по имени Барбоскин Геннадий Викторович. Предположим, что он зашел на терминальный стол и нам по причине зависания его сессии, нужно сделать ему выход. Первый метод, это использование оснастки по управлению RDS фермой, я вам рассказывал, как ее собирать. Открываем раздел с вашей коллекцией RDS фермы. В поисковом фильтре указываем логин или фамилию нужного сотрудника. В результате получаем хост, где он работает.
Щелкаем по нему правым кликом. В контекстном меню будет пункт «Выйти», это и соответствует завершению сессии (Log off). Так же есть пункт «Отключиться», если выберите его, то пользователь будет выброшен с терминального сервера, но его сессия останется на нем, данная операция равносильна тому, если пользователь просто нажал в окне с названием терминального сервера крестик.
После того, как вы выбрали пункт «Выйти», начнется корректное завершение сессии пользователя на RDS ферме. Сам пользователь увидит сообщение «Работает служба профилей пользователей» и у него закроется окно без ошибки.
Второй метод разлогинить пользователя на терминальном сервере
Второй метод, похож на первый, за исключением того, что нам необходимо залогиниться на нужный сервер, открыть оснастку «Диспетчер задач» и уже из него произвести выход пользователя. Сказано сделано, о том, как вам попадать на нужного участника RDS фермы я рассказывал. Далее щелкаем правым кликом по области пуска и из контекстного меню выбираем пункт «Диспетчер задач». Кстати, вызвать «Диспетчер задач» можно и через сочетание клавиш CTRL+SHIFT+ESC.
Находим нужного нам пользователя и щелкаем по нему правым кликом, в контекстном меню. нас будет интересовать пункт «Выйти». Выбираем его и завершаем сессию пользователя.
Использование утилиты RWINSTA
Если вы попали в ситуацию, когда графические методы не позволяют вам произвести выход пользователя из системы, а это необходимо, то вам на помощь придут утилиты из командной строки. RWINSTA — это встроенная в Windows утилита, которая позволяет сбрасывать сессии, по ID и имени сеанса. Первым делом вам нужно вычислить или ID сессии или ее имя, я вам рассказывал, о всех известных мне методах. можете ознакомиться. Я выберу утилиту qwinsta. Пишем команду:
или удаленно qwinsta /server:имя сервера | findstr barboskin.g
В моем примере имя сеанса rdp-tcp#172 и ее ID 515. Пишем команду:
И в первом и во втором случае, пользователь будет разлогинен с данного сервера. Данную команду можно запускать удаленно, со своего рабочего места, главное, чтобы были права на log off. Данный метод меня ни раз выручал в моей практике, например случай с зависшей сессией на Windows Server 2016, где вместо логина пользователя было имя (4).
Как отключить пользователя через reset session
Завершить сессию пользователя можно и с помощью утилиты командной строки Reset Session. В текущем примере у моего Барбоскина Геннадия Викторовича имя сеанса rdp-tcp#16 с его ID 11. Данную утилиту можно применять как локально на самом терминальном сервере, так и на своей рабочей станции, тут так же есть ключ /server.
Подробнее про утилиту reset session вы можете почитать на сайте Microsoft — https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/reset-session
Как отключить пользователя через logoff
Разлогинить пользовательскую учетную запись и даже зависшую, можно и через утилиту командной строки «LogOff». В данном примере у Геннадия Барбоскина имя сессии rdp-tcp#43. В командной строке от имени администратора введите:
Выход пользователя через командлет Stop-TSSession
Есть такой замечательный командлет Stop-TSSession. Посмотрим на сервере ID и имя сеанса, для этого в открытой оболочке PowerShell введите:
В итоге я вижу, что у пользователя barboskin.g SessionID 3. Далее пишем
Соглашаемся с тем, что будет производиться log off для данного пользователя. Проверяем, что сессия завершена. Можно вот таким простеньким скриптом из планировщика задач, разлогинивать сессии:
Выход пользователя через командлет Stop-TerminalSession
Данный командлет устанавливается отдельно, совместно с пакетом Pscx. Первым делом посмотрим локально или удаленно идентификаторы сессии пользователя, для которого мы хотим сделать log off. Выполняем команду:
Нужный мне ID сеанса 427. Далее воспользуемся командлетом Stop-TerminalSession, чтобы выкинуть пользователя и завершить его сессию.
Удаленное управление сеансом пользователя windows стандартными средствами
Если Вам необходимо управлять одним из компьютеров удаленно, и при этом взаимодействовать с текущим пользователем, но при запуске например TeamViewer’а нагрузка процессора поднимается до 98% и компьютер начинает заметно тормозить, то Вы можете попробовал стандартный RDP. При его использовании произойдет «выход из системы» текущего пользователя и для последующего входа локально придется вводить пароль. Выход из сложившейся ситуации нам поможет найти стандартная команда shadow.
Наблюдать за другим сеансом служб удаленных рабочих столов.
/SERVER: Сервер терминалов (по умолчанию текущий).
/V Отображение информации о выполненных действиях.
Например для управления консольным сеансом(пользователем, который непосредственно сидит перед компьютером) текущего терминального сервера достаточно ввести команду выполнить — shadow 0. Выход осуществляется через alt * на обычном компьютере и через ctrl * на терминальном сервере.
Но есть неприятная особенность: эта команда работает только из под rdp сессии. Но мой управляемый компьютер был под управлением windows xp поэтому пришлось расширить его возможности сделав из него терминальный сервер (в интернете полно статей как это можно делать путем замены dll). Тогда все стало довольно просто, подключаемся любым пользователем с правами администратора по rdp и запускаем команду выполнить — shadow 0 попадаем в консольный сеанс, собственно что мне и нужно было. Для уменьшения аппаратных затрат можно при создании rdp подключения выбрать функцию «При подключении запускать следующую программу» и там набрать shadow 0 как на рисунке.
Тогда получается что запускается всего 2 процесса.
Для того что бы все это работало нам необходимо сначала включить RemoteRPC, например через реестр:
После этого можно будет через Диспетчер служб удаленных рабочих столов посмотреть какие пользователи залогинены на компьютере, какие у них id и какие процессы запущены (жаль только названия, нет информации о нагрузке).
По умолчанию пользователю будет задаваться вопрос с разрешением управления, можно отключить вопрос или сделать только удаленное наблюдение, меняется через реестр:
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services]
«Shadow»=dword:0000000x
Где x может иметь значения:
0 — удаленное управление не разрешено 1 -полный контроль с разрешения клиента 2 -полный контроль без разрешения клиента 3 -наблюдение за сеансом с разрешением клиента 4 -наблюдение за сеансом без разрешения клиента
По умолчания этой строчки вообще нет и её нужно будет создавать.
Так же можно включить через групповые политики локальные или доменные. Для включения локально запускаем gpedit.msc — выбираем административные шаблоны — добавление и удаление шаблонов, добавляем System.adm из папки WINDOWS\inf
Теперь настраиваем: конфигурация компьютера — административные шаблоны — компоненты windows — службы терминалов — устанавливает правила для удаленного управления. Для windows xp.
И конфигурация компьютера — административные шаблоны — компоненты windows- службы удаленных рабочих столов – узел сеансов удаленных рабочих столов – подключения – устанавливает правила удаленного управления для пользовательских сеансов служб удаленных рабочих столов. Для windows 7.
Все это работает и в домене, если у пользователя есть соответствующие права.
Если рассматривать терминальный сервер, то там через свойства RDP(через конфигурация узла сеансов удаленных рабочих столов) можно выставить любому пользователю права на удаленное управление,
и отдельно настроить взаимодействие или управление удаленным сеансом.
Выйти из отключенного пользователя удаленно
Как я могу отключить удаленно отключенный пользователь?
Например, я дистанционно подключаюсь к компьютеру (с Dameware, если это имеет значение) и запускает команду, для выполнения которой требуется значительное количество времени. В то время я перехожу к другим вещам. Когда я вернусь (команда предположительно завершилась успешно), другой пользователь переключился на свою учетную запись, оставив статус моей учетной записи «Отключен». Как я могу удаленно покинуть свою учетную запись без необходимости управлять компьютером, переключиться на мою учетную запись, выйти из системы и снова войти в систему?
6 ответов
Сначала проверьте номер сеанса с помощью qwinsta :
Запишите идентификатор сеанса.
Затем используйте команду logoff :
Посмотрите, работает ли это.
Удаленное выключение пользователя по имени пользователя в одной команде:
Я считаю, что вы можете сделать это с помощью logoff из командной строки (при условии, что машина, в которую вы удаляетесь, — это Windows). Если я правильно понимаю ваш вопрос, пользователь входит в систему, когда вы находитесь далеко от удаленного сеанса и регистрируется в другой учетной записи. Вы сможете выйти из своего аккаунта через cmd.
Для большинства версий Windows: Войдите в систему, используя учетную запись с поддержкой администратора. Поднимите диспетчер задач («Безопасность Windows» под кнопкой «Пуск», если вы используете RDP, «taskmgr.exe» из командной строки или любым другим способом, который вы предпочитаете.) Вернитесь на вкладку «Пользователи». Вы увидите свой собственный сеанс & любые другие сессии. Выберите сеанс другого пользователя и щелкните правой кнопкой мыши, затем выберите «Отключить» или «Выход из системы» (или вы можете выбрать сеанс и использовать кнопки внизу, чтобы выполнить любой из этих.)
Если это отключенный сеанс, вы также можете выбрать его, щелкнуть правой кнопкой мыши и использовать Connect — это переключит вас на этот сеанс, а не на тот, в котором вы находитесь. Тогда, конечно, вы можете выйти из системы сеанс.
Если у вас установлены PSTOOLS, это СУПЕР легко. Если у вас нет установленных PSTOOLS, сделайте это. Вы можете скопировать все EXE-файлы в каталог C: \ Windows \ system32. (справедливости ради, если у вас нет инструментов PS, и вы системныйmin . вы не знаете, что вам не хватает!)
Теперь запустите CMD.exe в качестве администратора на локальном ПК, введите свои учетные данные администратора, если /когда будет предложено. Теперь введите «psexec \\ hostname cmd.exe». Эта команда будет запускать CMD.exe в качестве вашей учетной записи удаленно, как если бы вы были на машине. В строке заголовка командной строки вы увидите имя удаленного хоста, вызванное при успешном подключении.
Теперь введите «сеанс запроса». теперь будут распечатываться все сеансы, доступные активными /неактивными, вы хотите отметить идентификатор сеанса #.
теперь введите «logoff #», где # = идентификатор сеанса, который вы уже учли ранее.
Это можно сделать с домашними сетевыми ПК, но вам придется иметь такую же учетную запись в системах BOTH, и это может стать немного сложнее.
Это ОПРЕДЕЛЕННО работает с ПК домена, поскольку я тестировал его несколько раз.
Doublevisionpro позволит удаленно выходить из системы. Запустите Doublevisionpro, выберите пользователя, из которого вы хотите выйти, и выберите команду «Вид».