Завершить сеанс пользователя windows server 2012

Случилось так, что юзер на сервере запустил Wireshark и забыл. Через несколько дней оперативка кончилась и серверу Windows Server 2012 R2 стало плохо. Попытки зайти на сервер по RDP или консоль не увенчались успехом. Удалось удалённо подключиться к управлению компьютером и в логах узнать о проблемах с оперативкой. Стало понятно, что нужно сделать юзеру LOGOFF, чтобы все запущенные приложения завершили свою работу.

Profile picture for user Олег

Windows Server

Случилось так, что юзер на сервере запустил Wireshark и забыл. Через несколько дней оперативка кончилась и серверу Windows Server 2012 R2 стало плохо. Попытки зайти на сервер по RDP или консоль не увенчались успехом. Удалось удалённо подключиться к управлению компьютером и в логах узнать о проблемах с оперативкой. 

Стало понятно, что нужно сделать юзеру LOGOFF, чтобы все запущенные приложения завершили свою работу.

Порядок действий

Получаем идентификатор сессии искомого юзера на нашем удалённом сервере с помощью командной строки:

quser /server:my_server_name

Результат:

C:Windowssystem32>quser /server:my_server_name
 USERNAME   SESSIONNAME   ID   STATE   IDLE TIME   LOGON TIME
 v.pupkin      1   Disc   21:14   15.05.2018 11:13

Нас интересует здесь значение ID=1

Делаем юзеру LOGOFF:

logoff 1 /SERVER:my_server_name /v

Результат:

C:Windowssystem32>logoff 1 /SERVER:my_server_name /v
Logging off session ID 1

C:Windowssystem32>quser /server:my_server_name
No User exists for *

Через некоторое время память освободилась, серверу похорошело.

Обновлено 16.04.2019

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

как выкинуть пользователя-03

После того, как вы выбрали пункт «Выйти», начнется корректное завершение сессии пользователя на RDS ферме. Сам пользователь увидит сообщение «Работает служба профилей пользователей» и у него закроется окно без ошибки.

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

Второй метод, похож на первый, за исключением того, что нам необходимо залогиниться на нужный сервер, открыть оснастку «Диспетчер задач» и уже из него произвести выход пользователя. Сказано сделано, о том, как вам попадать на нужного участника RDS фермы я рассказывал. Далее щелкаем правым кликом по области пуска и из контекстного меню выбираем пункт «Диспетчер задач». Кстати, вызвать «Диспетчер задач» можно и через сочетание клавиш CTRL+SHIFT+ESC.

как выкинуть пользователя-04

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

Выход пользователя в диспетчере задач

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

Использование утилиты RWINSTA

Если вы попали в ситуацию, когда графические методы не позволяют вам произвести выход пользователя из системы, а это необходимо, то вам на помощь придут утилиты из командной строки. RWINSTA — это встроенная в Windows утилита, которая позволяет сбрасывать сессии, по ID и имени сеанса. Первым делом вам нужно вычислить или ID сессии или ее имя, я вам рассказывал, о всех известных мне методах. можете ознакомиться. Я выберу утилиту qwinsta. Пишем команду:

qwinsta | findstr barboskin.g (Локально)

или удаленно qwinsta /server:имя сервера | findstr barboskin.g

В моем примере имя сеанса rdp-tcp#172 и ее ID 515. Пишем команду:

rwinsta rdp-tcp#172 /server:localhost или rwinsta 515 /server:localhost

Использование утилиты RWINSTA

И в первом и во втором случае, пользователь будет разлогинен с данного сервера. Данную команду можно запускать удаленно, со своего рабочего места, главное, чтобы были права на log off. Данный метод меня ни раз выручал в моей практике, например случай с зависшей сессией на Windows Server 2016, где вместо логина пользователя было имя (4).

Как отключить пользователя через reset session

Завершить сессию пользователя можно и с помощью утилиты командной строки Reset Session. В текущем примере у моего Барбоскина Геннадия Викторовича имя сеанса rdp-tcp#16 с его ID 11. Данную утилиту можно применять как локально на самом терминальном сервере, так и на своей рабочей станции, тут так же есть ключ /server.

reset session rdp-tcp#16 или reset session 11

Как отключить пользователя через reset session

Подробнее про утилиту reset session вы можете почитать на сайте Microsoft — https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/reset-session

Как отключить пользователя через logoff

Разлогинить пользовательскую учетную запись и даже зависшую, можно и через утилиту командной строки «LogOff». В данном примере у Геннадия Барбоскина имя сессии rdp-tcp#43. В командной строке от имени администратора введите:

logoff rdp-tcp#43 /server:localhost (Имя сервера можно менять) или logoff 54 /server:localhost

Как отключить пользователя через logoff

Выход пользователя через командлет Stop-TSSession

Есть такой замечательный командлет Stop-TSSession. Посмотрим на сервере ID и имя сеанса, для этого в открытой оболочке PowerShell введите:

В итоге я вижу, что у пользователя barboskin.g SessionID 3. Далее пишем

Stop-TSSession 3 или принудительно Stop-TSSession 3 -Force

Выход пользователя через командлет Stop-TSSession

Соглашаемся с тем, что будет производиться log off для данного пользователя. Проверяем, что сессия завершена. Можно вот таким простеньким скриптом из планировщика задач, разлогинивать сессии:

Import-Module PSTerminalServices
Get-TSSession -ComputerName SERVER_NAME -filter {$_.sessionID -ne 0 -AND $_.sessionID -ne 1 -AND $_.sessionID -ne 65536}| Stop-TSSession –Force

Выход пользователя через командлет Stop-TerminalSession

Данный командлет устанавливается отдельно, совместно с пакетом Pscx. Первым делом посмотрим локально или удаленно идентификаторы сессии пользователя, для которого мы хотим сделать log off. Выполняем команду:

Get-TerminalSession -ComputerName имя сервера

Get-TerminalSession

Нужный мне ID сеанса 427. Далее воспользуемся командлетом Stop-TerminalSession, чтобы выкинуть пользователя и завершить его сессию.

Stop-TerminalSession -ComputerName имя сервера -Id 427 -Force

Stop-TerminalSession

Как видите сессия 427 больше не существует, и у нас с помощью командлета Stop-TerminalSession получилось выкинуть пользователя из RDS сеанса. На этом у меня все. Остались вопросы, то пишите их в комментариях. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.

Описание проблемы

В Windows Server 2012 R2 существует ферма RDS из 15 узлов подключения. Для этого нужны серверы и серверы, которые работают постоянно. Если в вашей ферме не настроены тайм-ауты времени безотказной работы, пользователи могут зависать на авторизованных соединениях на недели или месяцы. Логично предположить, что это не очень хорошо и приводит к различным последствиям, одним из которых является полная блокировка сеанса, когда человек не может подключиться к терминальному серверу и видит сообщение «Служба профилей пользователей запущена» или другое «Может не завершить запрошенную операцию », я не говорю о повреждении профиля пользователя. В результате того, что брокеры RDS видят, что пользователь уже вошел в систему, они не позволяют ему повторно подключаться к другому серверу узла сеанса, даже если вы закрываете новые подключения на текущем. Пока вы не выйдете из системы для этого сеанса, он все равно будет мешать. Давайте узнаем, как это сделать.

Методы завершения сессии пользователя не терминале

Есть несколько способов удалить пользователя с сервера.

  • вы можете завершить сеанс пользователя (выйти из системы) из оснастки управления фермой RDS
  • Вы также можете выйти из системы с самого терминального сервера из диспетчера задач
  • Пользователь может выйти из программы командной строки rwinsta
  • Отключите утилиту командной строки
  •  Утилита восстановления сеанса
  • * Командлет Stop-TSSession

Как выкинуть пользователя из оснастки управления RDS

Итак, у меня есть любимый тестовый пользователь Active Directory Барбоскин Геннадий Викторович. Предположим, он подошел к терминальному столу, и из-за блокировки его сеанса нам нужно его вытащить. Первый способ – использовать оснастку управления фермой RDS, я уже говорил вам, как ее создать. Откройте раздел с вашей коллекцией фермы RDS. Введите логин или фамилию нужного сотрудника в поисковый фильтр. В итоге получаем хост, на котором он работает.

выход пользователя

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

как кикнуть пользователя-03

После выбора пункта «Отключить» сеанс пользователя в ферме RDS отключится нормально. Пользователь сам увидит сообщение «Служба профилей пользователей запущена» и окно закроется без ошибок.

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

Второй метод аналогичен первому, за исключением того, что вам нужно войти на требуемый сервер, открыть оснастку диспетчера задач и выйти из системы пользователя. Сказав это, я рассказал вам, как добраться до нужного члена фермы RDS. Затем щелкните правой кнопкой мыши в области запуска и выберите в контекстном меню пункт «Диспетчер задач». Кстати, вы также можете вызвать «Диспетчер задач» с помощью сочетания клавиш CTRL + SHIFT + ESC.

как удалить пользователя-04

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

Выход пользователя из системы в диспетчере задач

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

Использование утилиты RWINSTA

Если вы окажетесь в ситуации, когда графические методы не позволяют вывести пользователя из системы, а это необходимо, утилиты командной строки придут вам на помощь. RWINSTA – это встроенная утилита Windows, которая позволяет восстанавливать сеансы на основе идентификатора сеанса и имени сеанса. Прежде всего, вам нужно вычислить либо идентификатор сеанса, либо его имя, как я вам сказал, обо всех известных мне методах, с которыми вы можете ознакомиться. Выберу утилиту qwinsta. Пишем команду:

qwinsta | findstr barboskin.g (местный)

или удаленно qwinsta / server: имя сервера | findstr barboskin.g

В моем примере имя сеанса – rdp-tcp # 172, а его идентификатор – 515. Мы пишем команду:

rwinsta rdp-tcp # 172 / сервер: localhost или rwinsta 515 / сервер: localhost

Использование утилиты RWINSTA

И в первом, и во втором случае пользователь будет отключен от этого сервера. Эту команду можно запускать удаленно с вашего рабочего места, если у вас есть право выйти из системы. Этот метод мне не раз помогал в моей практике, например, случай с заблокированным сеансом на Windows Server 2016, где вместо имени пользователя было имя (4).

Как отключить пользователя через reset session

вы также можете завершить сеанс пользователя с помощью утилиты командной строки Reset Session. В текущем примере у моего Геннадия Викторовича Барбоскина имя сеанса rdp-tcp # 16 с его ID 11. Эту утилиту можно использовать как локально на самом терминальном сервере, так и на вашей рабочей станции, также есть ключ / сервер.

восстановить сеанс rdp-tcp # 16 или восстановить сеанс 11

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

Вы можете узнать больше об утилите восстановления сеанса на веб-сайте Microsoft: https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/reset-session

Как отключить пользователя через logoff

Вы также можете выйти из учетной записи пользователя или даже из заблокированной с помощью утилиты командной строки «LogOff». В этом примере Геннадий Барбоскин имеет имя сеанса rdp-tcp # 43. В командной строке от имени администратора введите:

logoff rdp-tcp # 43 / server: localhost (имя сервера можно изменить) или logoff 54 / server: localhost

Как отключить пользователя через выход

Выход пользователя через командлет Stop-TSSession

Есть замечательный командлет Stop-TSSession. Давайте посмотрим на идентификатор сервера и имя сеанса, для этого в открытом PowerShell введите:

Get-TSSession | FT

В результате я вижу, что пользователь barboskin.g имеет SessionID 3. Итак, введите

Принудительный стоп-TSSession 3 или Stop-TSSession 3-Force

Выход пользователя из системы с помощью командлета Stop-TSSession

Мы согласны с тем, что для этого пользователя будет выполнен выход. Проверяем, что сессия закончилась. Вы можете отключать сеансы с помощью такого простого скрипта из планировщика:

Модуль импорта PSTerminalServices
Get-TSSession -ComputerName SERVER_NAME -filter {$ _.IDsession -ne 0 -AND $ _.IDsession -ne 1 -AND $ _.IDsession -ne 65536} | Stop-TSSession – Force

Выход пользователя через командлет Stop-TerminalSession

Этот командлет устанавливается отдельно с пакетом Pscx. Прежде всего, мы видим локально или удаленно идентификаторы сеанса пользователя, для которого мы хотим выйти. Выполняем команду:

Get-TerminalSession – имя сервера ComputerName

Get-TerminalSession

Мне нужен идентификатор сеанса 427. Затем мы воспользуемся командлетом Stop-TerminalSession, чтобы выгнать пользователя и завершить его сеанс.

Stop-TerminalSession -ComputerName имя сервера -Id 427 -Force

Stop-TerminalSession

Как видите, сеанс 427 больше не существует, и мы смогли исключить пользователя из сеанса RDS с помощью командлета Stop-TerminalSession.

  • Remove From My Forums
  • Общие обсуждения

  • 1. Как в 2012 терминале послать сообщение или завершить сеанс сразу нескольких пользователей?

    В 2008 R2 все было просто, в Task Manager c помощью клавиши Ctrl можно было выбрать нужных пользователей, щелкнуть правой кнопкой и выбрать или logoff или send message. А в 2012 выбрать группу никак не получается, указанные операции
    можно проделать только с одним пользователем. Есть како-нибудь решение?

    2. В 2012 терминале пользователи не могут послать сообщение в другую сессию, у них нет этого пункта меню в Task Manager.

    Где настраивать такую возможность в 2008 R2 я знаю, а в 2012 это вообще возможно или тоже вырезали?

    • Изменен тип

      1 апреля 2013 г. 10:49
      Нет действий

Как правильно завершить сеанс на удаленном рабочем столе?

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

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

Как нельзя завершать сеанс?

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

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

Завершение сеанса RDP на Server 2016

Для завершения сеанса на терминальном сервере работающем под управлением Windows Server 2016 выполните следующие действия:

Откройте стандартное меню ПУСК, и в левой части экрана выберите НЕ кнопку ВКЛВЫКЛ, а чуть выше значок с иконкой пользователя.

После этого правильным способом завершить сеанс, будет нажатие на пункт меню «ВЫХОД».

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

Перед выходом с сервера убедитесь, что вы сохранили все документы и правильно закрылы окна программ 1С и Office.

В случае работы из под учетной записи «Администратор» и выборе нижнего пункта меню (со значокм «ВКЛ») вы можете случайно ВЫКЛЮЧИТЬ сервер и отключить от работы всех пользователей работающих на сервере без их ведома. Будьте внимательны!

завершение сеанса на удаленном рабочем столе 2016

Завершение сеанса RDP на Server 2012

Для правильного завершения сеанса подключения к удаленному рабочему столу Windows 2012, на сервере арендованном в нашей компании, необходимо выполнить следующие действия:

завершение сеанса на удаленном рабочем столе 2012

На наших серверах установлена программа Classic Shell, поэтому меню ПУСК выглядит более привычно глазу пользователя.

Для завершение сеанса и закрытия всех программ, необходимо просто выполнить нажатие на меню ПУСК и выбрать пункт «Завершение сеанса».

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

Как правильно завершить работу сервера?

Ознакомьтесь с нашей статьей, как правильно завершать работу сервера, работающего на операционной системе Windows Server 2012 или 2016.

Посмотреть цены на сервера для 1С:

Войти в Личный кабинет

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

Завершение сеанса удаленного рабочего стола сервера RDS

Завершение сеанса пользователя на удаленном компьютере RDP

Показываем, как правильно завершать сеансы на сервере удаленного рабочего стола (Remote Desktop Services) c программой 1С Предприятие 8. Как правило, сотрудники уходя забывают завершать сеансы Windows, при этом ошибочно делая отключение сеанса RDP. При отключении сеансов и не закрытых программах оперативная память на сервере продолжает использоваться, что очень нежелательно для сервера.

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

В Windows Server 2012R2 нажимаем кнопку Пуск — справа в верхнем окне нажимаем на свой логин и кнопку Выйти. Именно таким образом делается правильно завершение сеанса при закрытии rdp. Поэтому необходимо нарабатывать в организации культуру поведения за компьютером – уходя с работы правильно делать завершение сеанса пользователя rdp. Тогда у пользователей на следующий день не будет проблем с подключением принтеров и других устройств в терминальном сеансе, так как создается абсолютно новый сеанс.

Материал любезно предоставлен компанией Smart1C.

Видео — Завершение сеанса пользователя на удаленном компьютере

В Windows доступно несколько команд, которые позволяют выключить или перезагрузить локальный или удаленный компьютер. В этой статье мы рассмотрим, как использовать команду shutdown и PowerShell командлеты Restart-Computer и Stop-Computer для выключения/перезагрузки Windows.

Содержание:

  • Использование команды shutdown в Windows
  • Перезагрузка удаленных компьютеров командой shutdown
  • Перезагрузка и выключение Windows с помощью PowerShell

Использование команды shutdown в Windows

Утилита командной строки shutdown является встроенной командой Windows, которая позволяет перезагрузить, выключить компьютер, перевести его в спящий режим или завершить сеанс пользователя. В этой инструкции мы покажем основные примеры использования команды shutdown в Windows (все рассмотренные команды запускаются в окне Выполнить — Win+R ->, в командной строке cmd.exe или в консоли PowerShell).

Команда shutdown имеет следующий синтаксис:

shutdown [/i | /l | /s | /sg | /r | /g | /a | /p | /h | /e | /o] [/hybrid] [/soft] [/fw] [/f] [/m \компьютер][/t xxx][/d [p|u]xx:yy [/c "комментарий"]]

команда shutdown синтаксис

Как вы видите, у команды довольно много опций, а также есть возможность выключить/ перезагрузить удаленный компьютере.

Выключение Windows командой Shutdown

Для выключения ОС Windows и компьютера необходимо использовать команду shutdown с ключом /s.

shutdown /s

Перезагрузка Windows

Чтобы перезагрузить компьютер, необходимо добавить параметр /r. После выполнения этой команды Windows корректно перезагрузится.

shutdown /r

shutdown /r - перезагрузка компьютера

Завершение сеанса пользователя

Чтобы завершить текущую сессию пользователя (logout), нужно выполнить команду:

shutdown /l

shutdown /l завершение сенаса пользоватеоя

Эта команда аналогично выполнению команды logoff.

Перевод компьютера в режим гибернации

Для перевода компьютер в режим гибернации (в этом режиме все содержимое памяти записывается в файл hyberfil.sys на диск и компьютер переходит в спящий режим с пониженным электропотреблением), выполните команду:

shutdown /h

Перезагрузка компьютера с сообщением пользователям

Вы можете предупредить всех пользователей Windows о предстоящем выключении / перезагрузки компьютера или сервера, отправив сообщение во все активные сессии (как правило эта возможность используется на терминальных RDS серверах, за которыми одновременно работают несколько пользователей, каждый в своей собственной RDP сессии).

shutdown /r /c “Этот сервер будет перезагружен через 60 секунд.”

Отложенное выключение / перезагрузка компьютера

Можно выключить или перезагрузить компьютер с определенной задержкой (по таймеру). С помощью опции /t можно указать интервал времени (в секундах), через который ПК/сервер будет перезагружен или выключен. Тем самым вы можете предоставить пользователям дополнительное время для того, чтобы успеть сохранить открытые файлы и корректно закрыть приложения. Эту опцию удобно использовать совместно с отправкой сообщения. В этом примере мы указываем, что Windows будет выключена через 10 минут (600 секунд) и информируем пользователей сообщением.

shutdown /s /t 600 /c "Сервер будет выключен через 10 минут. Сохраните свои документы!"

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

shutdown - Ваш сеанс будет завершен.

Если задержка очень длительная, например, 100 минут (6000 секунд), то вместо предупреждающего окна появляется всплывающее сообщение в нижнем правом углу экрана: «Ваш сеанс будет завершен. Работа Windows будет завершена через 100 мин».

Работа Windows будет завершена через 100 мин

Отмена выключения / перезагрузки компьютера

После запуска команды выключения или перезагрузки Windows, по умолчанию утилита shutdown ожидает 60 секунд, не выполняя никаких действия. Администратор может отменить перезагрузку или выключение устройства, если в течении этого времени успеет выполнить команду:

shutdown /a

После отмены выключения появится всплывающее сообщение в нижнем правом углу экрана: «Выход из системы отменен. Запланировано завершение работы отменено».

shutdown /a - отмена перезагрузки Выход из системы отменен

Перезагрузить Windows немедленно

Чтобы выключить или перезагрузить компьютер немедленно, не ожидая стандартные 60 секунд, нужно указать значение 0 для параметра /t. Например, для немедленной перезагрузки компьютера:

shutdown /r /t 0

Очень важный ключ /f. Я использую его практически всегда при выключении или перезагрузки серверов Windows. Данный атрибут обеспечивает принудительное завершение всех запущенных программ и процессов, не ожидая подтверждения от пользователя (не будем же мы ждать подтверждения закрытия программ от всех пользователей на терминальном сервере, его можно просто не дождаться).

Следующая команда выполнит перезагрузку компьютера с автоматическим запуском всех зарегистрированных приложений после перезагрузки (имеются в виду приложения, зарегистрированные в системе с использованием функции API RegisterApplicationRestart).

shutdown /g

Ярлык для перезагрузки компьютера

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

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

Перезагрузка Windows в определенное время

Чтобы всегда перезагружать/выключать компьютер или сервер в определенное время, вы можете добавить команду shutdown в планировщик заданий Windows taskschd.msc.

Например, следующее задание планировщика будет ежедневно перезагружать компьютер ночью в 0:00.

задание планировщика для ежедневной перезагрузки компьютера командой shutdown

Либо вы можете создать новое задание планировщика из PowerShell:

$Trigger= New-ScheduledTaskTrigger -At 00:00am -Daily
$User= "NT AUTHORITYSYSTEM"

$Action= New-ScheduledTaskAction -Execute "shutdown.exe" -Argument "–f –r –t 120"
Register-ScheduledTask -TaskName "RebootEvertyNight_PS" -Trigger $Trigger -User $User -Action $Action -RunLevel Highest –Force

Перезагрузка удаленных компьютеров командой shutdown

Вы можете перезагрузить удаленный компьютер по сети, для этого у вас должен быть к нему сетевой доступ, а учетная запись, из-под которой запускается команда shutdown должна входить в группу локальных администраторов на удаленном компьютере (сервере):

shutdown /r /t 120 /m \192.168.1.100

shutdown /r //m - перезагрузка удаленного компьютера

Если все указанные условия выполняются, но при выполнении команды shutdown появляется ошибка ”Отказано в доступе (5)”, на удаленном компьютере нужно разрешить удаленный доступ к административным ресурсам (C$, ADMIN$), изменив значение параметра LocalAccountTokenFilterPolicy на 1.

reg add "HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem" /v "LocalAccountTokenFilterPolicy" /t REG_DWORD /d 1 /f

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

net use \192.168.31.10 /u:corpusername
shutdown /s /t 60 /f /m \192.168.31.10

Если вам необходимо удаленно перезагрузить множество компьютеров, их список можно сохранить в текстовый файл и запустить удаленную перезагрузку всех компьютеров с помощью такого PowerShell скрипта:

$sh_msg = "Ваш компьютер будет автоматически перезагружен через 10 минут. Сохраните свои файлы и закройте запущенные программы"
$sh_delay = 600 # секунд
$computers = gc C:PSPC-list.txt
foreach ($comp in $computers)
{
& 'C:WindowsSystem32SHUTDOWN.exe' "-m \$comp -r -c $sh_msg -t $sh_delay"
}

Графический интерфейс команды shutdown

Для тех, кому не комфортно работать в командной строке, есть графический интерфейс для команды shutdown, чтобы его вызвать, наберите:

shutdown /i

shutdown /i - графический интерфейс команды shutdown

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

Перезагрузка и выключение Windows с помощью PowerShell

В PowerShell есть две команды для выключения и перезагрузки компьютера: Restart-Computer и Stop-Computer. Обе команды позволяют выключить или перезагрузить локальный или удаленный компьютер по сети.

powershell команда Restart-Computer

Для перезагрузки Windows выполните:

Restart-Computer -force

Чтобы выключить компьютер:

Stop-Computer

По умолчанию перезагрузка начнется через 5 секунд. Можно увеличить задержку перед перезагрузкой:

Restart-Computer –delay 15

У обоих командлетов есть параметр
–ComputerName
, который позволяет задать список удаленных компьютеров.

Например, чтобы удаленно выключить два сервера Windows:

Stop-Computer -ComputerName "Server01", "Server02"

Можно указать учетные данные администратора для подключения к удаленному хосту:

$Creds = Get-Credential
Restart-Computer -ComputerName $Names -Credential $Creds

Для подключения к удаленным компьютерам используется WMI и DCOM (он должны быть включен и настроен). Если WMI не настроен, при запуске команды появится ошибка:

Restart-Computer : Failed to restart the computer wks-t1122h2 with the following error message: 
Access is denied.
Exception from HRESULT: 0x80070005 (E_ACCESSDENIED).

restart-computer ошибка при удаленной перезагрузке компьютера по сети 0x80070005

Если на удаленном компьютере настроен WinRM (Windows Remote Management), вы можете использовать для подключения WSman вместо WMI:

Restart-Computer -ComputerName wks-t1122h2 -Protocol WSMan

Если на удаленном компьютер есть активные сессии пользователей, при запуске Restart-Computer появится ошибка:

Restart-Computer : Failed to restart the computer wks-t1122h2 with the following error message:
The system shutdown cannot be initiated because there are other users logged on to the computer.

Restart-Computer на удаленном компьютере есть активный пользователь

Для принудительной перезагрузки нужно добавить параметр -Force:

Restart-Computer -ComputerName wks-t1122h2 –Force

С помощью параметра -For можно перезагрузить компьютер и дождаться, когда он будет доступен. Например, вы хотите убедиться, что удаленный компьютер успешно перезагрузится и на нем стартовала служба WinRM, позволяющая подключиться к нему через WS-Management:

Restart-Computer -ComputerName wks-t1122h2 -Wait -For WinRM

Restarting computer wks-t1122h2
Verifying that the computer has been restarted.

Удаленная перезагрузка компьютера из powershell

Можно дождаться запуска службы удаленного рабочего стола (RDP) или любой другой службы Windows:

Restart-Computer -ComputerName wks-t1122h2 -Wait -For TermService

Если нужно одновременно перезагрузить несколько хостов, можно использовать возможности параллельного запуска команд в версии PowerShell 7.x.

Например, вы можете получим список Windows Server в определенном контейнере (Organizational Unit) Active Directory с помощью командлета Get-ADComputer и перезагрузить их одновременно:

$Computers = (Get-ADComputer -Filter 'operatingsystem -like "*Windows server*" -and enabled -eq "true"' -SearchBase "OU=Servers,DC=winitpro,DC=loc").Name
$Computers | ForEach-Object -Parallel {    Restart-Computer -ComputerName $_ -Force} -ThrottleLimit 3

Понравилась статья? Поделить с друзьями:
  • Завершить работу компьютера клавишами windows 10
  • Завершите процесс входа в систему интернет не работает windows 10
  • Завершите настройку устройства как убрать windows 10
  • Завершение установки windows 7 сколько ждать
  • Завершение установки windows 7 не заканчивается с флешки