Reset session in windows

Reset session in 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). Так же есть пункт «Отключиться», если выберите его, то пользователь будет выброшен с терминального сервера, но его сессия останется на нем, данная операция равносильна тому, если пользователь просто нажал в окне с названием терминального сервера крестик.

Читайте также:  Oracle linux ��� centos

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

session_reset

(PHP 5 >= 5.6.0, PHP 7, PHP 8)

session_reset — Re-initialize session array with original values

Description

session_reset() reinitializes a session with original values stored in session storage. This function requires an active session and discards changes in $_SESSION.

Читайте также:  Можно ли без переустановки windows увеличить диск с

Return Values

Returns true on success or false on failure.

Changelog

Version Description
7.2.0 The return type of this function is bool now. Formerly, it has been void .

See Also

  • $_SESSION
  • The session.auto_start configuration directive
  • session_start() — Start new or resume existing session
  • session_abort() — Discard session array changes and finish session
  • session_commit() — Alias of session_write_close

User Contributed Notes 2 notes

First of all you should execute this code :
();
$_SESSION [ «A» ] = «Some Value» ;
?>

then you should execute this one :

();
$_SESSION [ «A» ] = «Some New Value» ; // set new value

session_reset (); // old session value restored
echo $_SESSION [ «A» ];

//Output: Some Value
?>

That is because session_reset() is rolling back changes to the last saved session data, which is their values right after the session_start().

first create a session variable

();
$_SESSION [ «A» ] = «Some Value» ;
echo $_SESSION [ «A» ];

//Output: Some Value

//if you need to rollback the session values after seting new value to session variables use session_reset()

$_SESSION [ «A» ] = «Some New Value» ; // set new value

session_reset (); // old session value restored
echo $_SESSION [ «A» ];

reset session reset session

Область применения: 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

Позволяет сбросить (удалить) сеанс на удаленный рабочий стол сервере узла сеансов. Enables you to reset (delete) a session on a Remote Desktop Session Host server. Сброс сеанса следует выполнять только в том случае, если он неисправен или перестал отвечать на запросы. You should reset a session only when it malfunctions or appears to have stopped responding.

Чтобы узнать о новых возможностях последней версии, см. статью новые возможности службы удаленных рабочих столов в Windows Server. To find out what’s new in the latest version, see What’s New in Remote Desktop Services in Windows Server.

Синтаксис Syntax

Параметры Parameters

Параметр Parameter Описание Description
Указывает имя сеанса, который требуется сбросить. Specifies the name of the session that you want to reset. Чтобы определить имя сеанса, используйте команду запроса сеанса. To determine the name of the session, use the query session command.
Указывает идентификатор сеанса для сброса. Specifies the ID of the session to reset.
/server: /server: Указывает сервер терминалов, содержащий сеанс, который требуется сбросить. Specifies the terminal server containing the session that you want to reset. В противном случае используется текущий сервер узла сеансов удаленный рабочий стол. Otherwise, it uses the current Remote Desktop Session Host server. Этот параметр является обязательным только при использовании этой команды с удаленного сервера. This parameter is required only if you use this command from a remote server.
/v /v Отображает сведения о выполняемых действиях. Displays information about the actions being performed.
/? /? Отображение справки в командной строке. Displays help at the command prompt.

Комментарии Remarks

  • Вы всегда можете сбросить собственные сеансы, но для сброса сеанса другого пользователя необходимо иметь разрешение « полный доступ». You can always reset your own sessions, but you must have Full Control access permission to reset another user’s session. Имейте в виду, что сброс сеанса пользователя без предупреждения пользователь может привести к утрате данных в сеансе. Be aware that resetting a user’s session without warning the user can result in the loss of data at the session.

Примеры Examples

Чтобы сбросить сеанс с назначенным RDP-TCP # 6, введите: To reset the session designated rdp-tcp#6, type:

Чтобы сбросить сеанс, использующий сеанс с идентификатором 3, введите: To reset the session that uses session ID 3, type:

Reset session

Applies To: Windows Vista, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows 8

Enables you to reset (delete) a session on a Remote Desktop Session Host (RD Session Host) server.

For examples of how to use this command, see Examples.

In Windows Server 2008 R2, Terminal Services was renamed Remote Desktop Services. To find out what’s new in the latest version, see What’s New in Remote Desktop Services in Windows Server 2012 in the Windows Server TechNet Library.

Syntax

Parameters

Specifies the name of the session that you want to reset. To determine the name of the session, use the query session command.

Specifies the ID of the session to reset.

Specifies the terminal server containing the session that you want to reset. Otherwise, the current RD Session Host server is used.

Displays information about the actions being performed.

Displays help at the command prompt.

Remarks

You can always reset your own sessions, but you must have Full Control access permission to reset another user’s session.

Be aware that resetting a user’s session without warning the user can result in the loss of data at the session.

You should reset a session only when it malfunctions or appears to have stopped responding.

The /server parameter is required only if you use reset session from a remote server.

Examples

To reset the session designated rdp-tcp#6, type:

To reset the session that uses session ID 3, type:

reset session

Applies to: Windows Server (Semi-Annual Channel), Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012

Enables you to reset (delete) a session on a Remote Desktop Session Host server. You should reset a session only when it malfunctions or appears to have stopped responding.

Syntax

Parameters

Parameter Description
Specifies the name of the session that you want to reset. To determine the name of the session, use the query session command.
Specifies the ID of the session to reset.
/server: Specifies the terminal server containing the session that you want to reset. Otherwise, it uses the current Remote Desktop Session Host server. This parameter is required only if you use this command from a remote server.
/v Displays information about the actions being performed.
/? Displays help at the command prompt.

Remarks

  • You can always reset your own sessions, but you must have Full Control access permission to reset another user’s session. Be aware that resetting a user’s session without warning the user can result in the loss of data at the session.

Examples

To reset the session designated rdp-tcp#6, type:

To reset the session that uses session ID 3, type:

Читайте также:  Mac os недостаточно памяти
Оцените статью