Windows server выкидывает пользователя

Windows server выкидывает пользователя

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

Читайте также:  Как отключить безопасность windows 10 home

Второй метод разлогинить пользователя на терминальном сервере

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

Как выкидывать залогиненных пользователей через консоль

Почему задача так сформулирована, потому как доводилось мне администрировать одну организацию ( kari), но вот только чтобы подключиться к серверам, нужно было зайти сперва на одну станцию выделенную для прямого доступа, а уже потом с нее на контролируемые сервера. Но как всегда не всё так красиво и удобно, на контролируемых серверах (к примеру dc,ts и так далее) уже был залогинен сотрудник из отдела имеющий привычку не завершать корректно свою сессию . Попытки объяснить или как то донести до человека, что он не один, результатов не приносило. Поэтому родилась данная заметка.

Читайте также:  Посмотреть параметры озу windows 10

Для справки: любое совпадение с реальными данными чистое совпадение все данные включая сервера, логины, аутентификационные сведения лишь плод моего воображения.

И так при попытке подключения через rdp к серверу я получал на экране сообщение следующего вида:

Please wait for KARI\d.shatilov to respond

Вообщем я разобрал как выкидывать залогининных пользователей через консоль :

Дожидаться когда же по таймауту меня пропустит не было никакого желания, да порой и срочность обязывающих действий привыше прихоти. В мыслях рождалась цель, а как проверять, кто подключен к серверу и через командную строку выбивать. Ниже решение…

Подключаемся на сервер с которого уже производиться дальнейшее управление серверами клиента «Кари».

Win + R → mstsc /v: выделенная_станция > /admin /w:1024 /h:768

Далее открываю консоль командной строки на выделенной станции с правами Администратора и делаю так:

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

На заметку: нужно обладать правами Администратора на удаленном сервере прежде чем исполнять ниже следующий запрос.

C:\Users\aollo>qwinsta /server:ts03f.kari.local

Этим мы получаем информация по активным rdp сессиям на удаленном терминальном сервере ( ts 03 f ), то т.к. для администрирования нужно подключаться с ключом / admin , то нужно одну из двух сессий выбить, предварительно проверить каков период неактивности у нее.

Вывести все терминальные подключения которые находятся в статусе Disconnect :

C:\Users\aollo>qwinsta /server:ts03f.kari.local | find «Disc»

services 0 Disc

e.lysenko 28 Disc

n.tashtenov 39 Disc

y.fomenko 62 Disc

R.Shishkin 66 Disc

s.likova 91 Disc

a.lukashenko 109 Disc

Чтобы кикнуть кого-либо ( в данном случае пользователя a.lukashenko ) нужно, указать идентификатор сессии полученной из предыдущего исполнения команды:

C:\Users\aollo>logoff /server:ts07f.kari.local 109 /v

Logging off session ID 109

C:\Users\aollo>qwinsta /server:ts07f.kari.local | find «Disc»

services 0 Disc

Не правильно отсоединенной сессии нет, я ее логофнул.

И уже после этих действий подключиться к удаленному серверу находящемуся на обслуживании не представляет ни каких трудностей. Хоть и неправильно это делать, но другого выхода порой не было. На этом заметка завершена, цель поставленной задачи расписана с показом примера, как и что делать. Вот собственно и все, с уважением ekzorchik.

Используйте прокси ((заблокировано роскомнадзором, используйте vpn или proxy)) при использовании Telegram клиента:

Поблагодари автора и новые статьи

будут появляться чаще 🙂

Карта МКБ: 4432-7300-2472-8059
Yandex-деньги: 41001520055047

Большое спасибо тем кто благодарит автора за практические заметки небольшими пожертвованиями. С уважением, Олло Александр aka ekzorchik.

Windows server 2003 r2 выкидывает пользователей

Появление чужих пользователей в Windows Server 2003
Здравствуйте, после обновление операционки или касперского появляются левые пользователи в Windows.

Лог регистрации пользователей — Windows Server 2003/2008
Доброго дня. имеем: Сервера: MsWinSer2003-AD; MsWinSer2003-шлюз(kerio); MsWinSer2008-спецПО.

Перенос DNS сервера и всех настроек с Windows Server 2003 на Windows Server 2012
Добрый вечер! Прошу помочь с одной проблемой. А именно по поводу миграции c Windows Server 2003 на.

Читайте также:  Windows usb driver missing

Дополнительный КД windows server 2012 и репликация на него с основного КД windows server 2003
подскажите как настроить репликацию на дополнительный КД windows server 2012 с КД windows server.

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

Неудачное обновление с Windows Server 2003 до Windows Server 2008
Здравствуйте, уважаемые форумчане. Нам в организацию передали сервер с предустановленным windows.

Установка Windows Server 2008 R2 взамен Windows Server 2003
Есть сервер с установленной операционкой Win Serv 2003, надо сделать бэкап всего: учеток, файлов И.

Как разом экспортировать и импортировать пользователей в server 2003?
Здравствуйте друзья! У нас есть терминальный сервер с многочисленными пользователями, мне хотелось.

Windows server 2003 Office 2003
Здравствуйте, нужна помощь по серверу, а именно на нем работаю по удаленному доступу 15 бухгалтеров.

Windows server выкидывает пользователя

Добрый день,

имеется сервер 2008 sp1, DNS, AD, TS, прокси UG.

Постоянно появляется следующая ошибка:

Событие 56 TermDD

Уровень безопасности сервера терминалов обнаружил ошибку в потоке протокола и отключил этот клиент.

и одновременно эта:

Имя журнала: Security
Подача: Microsoft-Windows-Security-Auditing
Дата: 15.02.2010 15:56:56
Код события: 4625
Категория задачи:Вход в систему
Уровень: Сведения
Ключевые слова:Сбой аудита
Пользователь: Н/Д
Компьютер: (тут имя сервера)
Описание:
Учетной записи не удалось выполнить вход в систему.

Субъект:
ИД безопасности: NULL SID
Имя учетной записи: —
Домен учетной записи: —
Код входа: 0x0

Учетная запись, которой не удалось выполнить вход:
ИД безопасности: NULL SID
Имя учетной записи: Лера
Домен учетной записи: (домен)

Сведения об ошибке:
Причина ошибки: Выбранный режим входа для данного пользователя на этом компьютере не предусмотрен.
Состояние: 0xc000015b
Подсостояние: 0x0

Сведения о процессе:
Идентификатор процесса вызывающей стороны: 0x0
Имя процесса вызывающей стороны: —

Сведения о сети:
Имя рабочей станции: LERABUH
Сетевой адрес источника: 192.168.10.22
Порт источника: 1778

Сведения о проверке подлинности:
Процесс входа: NtLmSsp
Пакет проверки подлинности: NTLM
Промежуточные службы: —
Имя пакета (только NTLM): —
Длина ключа: 0

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

Поля «Субъект» указывают на учетную запись локальной системы, запросившую вход. Обычно это служба, например служба «Сервер», или локальный процесс, такой как Winlogon.exe или Services.exe.

В поле «Тип входа» указан тип выполненного входа. Наиболее распространенными являются типы 2 (интерактивный) и 3 (сетевой).

В полях «Сведения о процессе» указано, какая учетная запись и процесс в системе выполнили запрос на вход.

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

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

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

Оцените статью