Меню

Как завершить windows 7 с удаленного рабочего стола



Как завершить сессию пользователя на терминальном сервере

Как завершить сессию пользователя на терминальном сервере

Добрый день! Уважаемые читатели и гости 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, чтобы выкинуть пользователя и завершить его сессию.

Источник

Как завершить собственный удаленный RDP сеанс в Windows?

В данной заметке я покажу Вам, как можно завершить свой удаленный RDP сеанс на сервере в Windows, например, тогда, когда Вы просто закрыли RDP сеанс по крестику и не можете заново войти в этот сеанс, или, например, у Вас просто сеанс завис.

Сразу скажу, что способ, описанный ниже, подходит для администраторов, например, в тех случаях, когда, как я уже сказал, сеанс завис или Вы, не можете в него заново войти, при этом количество подключений к серверу, т.е. сеансов ограничено и у Вас при попытке подключения выходит ошибка, например, «Для сервера терминалов достигнуто максимально возможное число разрешенных подключений».

В данном случае Вы, конечно, можете попросить другого администратора выкинуть Вас, т.е. завершить Ваш сеанс, но, если этот администратор в данный момент отсутствует и других вариантов завершить сеанс (например, через «Диспетчер серверов» и т.д.) у Вас нет, при этом сервер перезагружать нельзя, другими словами Вам нужно завершить свой удаленный сеанс на сервере, и Вы не знаете, как это можно сделать, Вы можете использовать простой способ, который я сейчас и покажу.

Читайте также:  Как удалить ярлыки с рабочего стола lenovo

Данный способ работает, еще начиная с Windows Server 2003, и заключается он в использовании командной строки CMD, а именно команды LOGOFF.

Завершаем удаленный RDP сеанс в Windows

Для того чтобы завершить удаленный RDP сеанс сначала необходимо определить идентификатор этого сеанса, можно конечно использовать и имя сеанса, но с идентификатором удобнее.

Примечание! Для выполнения перечисленных ниже действий Вы должны иметь соответствующие права.

Чтобы узнать идентификатор RDP сеанса выполните на своем клиентском компьютере следующую команду

Где, вместо TestServer пишите название Вашего сервера. В итоге на экране у Вас отобразится список подключенных к серверу пользователей, Вы ищите себя и в столбце ID смотрите и запоминаете идентификатор своего RDP сеанса.

После того как Вы узнали идентификатор RDP сеанса, Вы можете завершить этот сеанс, для этого пишите следующую команду

Где, 1 – это идентификатор сеанса, TestServer – это сервер, на котором необходимо завершить сеанс, /V – ключ для отображения информации о выполненных действиях.

После чего сеанс будет завершен, и теперь Вы можете заново подключиться к серверу, используя RDP, т.е. удаленный рабочий стол и продолжить работать.

Вот такой достаточно простой способ Вы можете использовать для завершения своего (да и не только своего) удаленного сеанса в операционной системе Windows, надеюсь, данный материал будет Вам полезен, пока!

Источник

Как удаленно перезагрузить или выключить компьютер через удаленный рабочий стол (RDP)

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

Способ 1: Горячие клавиши Alt + F4

Решение достаточно простое — необходимо воспользоваться горячими клавишами Alt + F4 , после чего появится меню с предложением завершения работы, где можно выбрать в том числе и перезагрузку.

Способ 2: Командная строка

Кроме этого, никто не отменял использование командной строки. Команды для выключения или перезагрузки компьютера следующие:

Кроме этого, можно использовать ключ -t, с помощью которого можно задать время, через которое произойдет завершение работы. Например команда ниже перезагрузит компьютер через 2 минуты (задается время в секундах).

Способ 3: Горячие клавиши Ctrl + Alt + End

Также, работая через удаленный рабочий стол, можно вызвать меню, аналогичное нажатию Ctrl+Alt+Del на локальном компьютере — для этого нужно нажать клавиши Ctrl + Alt + End (подробней про эти клавиши можно прочитать в этой статье). После вызова данного меню, в правом нижнем углу будут доступна кнопка для выключения или перезагрузки компьютера (на картинке ниже, отмечено оранжевым цветом).

Источник

Как правильно выйти из сеанса удаленного рабочего стола? tsdiscon теперь регистрирует локального пользователя с приоритетом

Я успешно использую команду tsdiscon для отключения от подключения к удаленному рабочему столу. Я сделал «bat-файл» с этой строкой и назначил ярлык для этой функции. Теперь у меня проблемы с использованием команды на компьютерах с Windows 10 .

Старое использование

С помощью tsdiscon я могу успешно выйти из RDP-соединения в двух случаях:

  1. Когда я нахожусь в сеансе RDP, я выйду из сеанса RDP
  2. Когда я нахожусь на локальной машине, сеанс RDP также будет прерван. Пока ничего не случится с локальной машиной

Текущая проблема

В последнее время, возможно, из-за обновлений Windows 10, выполнение этой команды в сеансе удаленного рабочего стола приведет к отключению не только сеанса RDP, но и локального компьютера. Это немного раздражает. Соответственно, когда я запускаю команду tsdiscon в обоих случаях:

  1. Если я нахожусь в сеансе RDP, я получу не только подпись от этого удаленного сеанса, но и локальную машину
  2. Если я нахожусь на локальной машине, я получу подпись на обеих машинах.
Читайте также:  Эскиз письменный стол своими руками

Решение?

Могу ли я передать конкретное имя сеанса, которое я бы хотел завершить с помощью tsdiscon ? Или должен быть определенный параметр, определяющий, в какой области эта команда вступит в силу?

До сих пор та же самая команда ( tsdiscon ) работала таким же старым способом на машинах с Windows 7 . Он стал глючить, когда я начал использовать компьютер с Windows 10 для запуска сеанса удаленного рабочего стола.

1 ответ 1

Это попытка ответить на мои собственные вопросы, заданные почти 2 года назад. Я все еще использую RDP на ежедневной основе и потратил больше времени на чтение команды tsdiscon .

Более короткий ответ

Во-первых, позвольте мне ответить на оригинальный вопрос. Согласно документации, команда tsdiscon принимает диапазон параметров, включая SessionName и SessionId . Выполнение команды query session через командную строку должно открыть эти два поля.

За час до ввода этого ответа меня смутило, где следует вводить команду tsdiscon : первоначальная путаница в вопросе указывает на конкретное недопонимание ==> команда tsdiscon не должна выдаваться с локальной машины, когда эта локальная машина — персональный компьютер. Это более верно, когда я являюсь единственным пользователем этого локального персонального компьютера. Могу поспорить, что использование tsdiscon предназначено для администратора сервера, чтобы выгнать людей со своего сервера 🙂

Тем не менее, я думаю, что стоит обсудить, как правильно вернуться к удаленным сеансам RDP. Сейчас я использую подход AutoHotKey, который состоит из двух частей: 1. чтобы вернуться из сеанса RDP; а затем 2. убить локальный сеанс RDP с локальной машины.

Лучший выход

Часть 1: возвращение из удаленного сеанса RDP

На данный момент я разработал следующий ярлык, чтобы вернуть меня из сеанса RDP. При сохранении идентичного сценария на локальном компьютере и на удаленном компьютере, подключенном к RDP, нажатие Ctrl + CapsLock (сначала Ctrl , затем Capslock ) должно «скрыть» сеанс RDP и почти всегда восстанавливать фокус клавиатуры + мыши обратно на локальный машина.

Простое решение «убить» сеанс RDP

Поскольку комбинация клавиш Ctrl + CapsLock должна работать в 99% случаев, я упростил задачу: убить существующий сеанс RDP. Опять же, AutoHotKey пригодится, так как у меня может быть несколько сеансов RDP на разных машинах, и мне нужно будет убить только одну из них.

Нужно тщательно заменить часть скрипта AHK. Он должен соответствовать заголовку окна сеанса RDP, когда он активен. Я обычно смотрю это, используя следующие процедуры: 1. Откройте сеанс RDP в окне, т.е. не охватывая все активные мониторы. 2. Откройте «Windows Spy», AHK-утилиту, которая раскрывает все идентификаторы для «окна»: полный набор идентификаторов включает в себя Window-Title, process_name и win_class_name.

PS: во время моего еженедельного домашнего улучшения (-code-) я собирался снова решить проблему с tsdiscon . С очень похожими условиями запроса я с удовольствием заново открою этот старый вопрос. После более внимательного прочтения документации стало очевидно, что я не должен делать ставку на одну единственную команду для обработки всего моего использования. Таким образом, приходит этот долгий ответ. Надеюсь, что это может помочь людям, которые играют с RDP много.

Источник

Adblock
detector