Как удаленно перезагрузить сервер windows

Как удаленно перезагрузить сервер windows

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

Перезагрузить через командную строку

Перезагружать через командную строку мы будем Windows Server 2008 R2, но данная инструкция подойдет как и для 2012 R2 так и для любой клиентской ОС хоть от Windows 7 до Windows 10. В начале мы рассмотрим классическую cmd, открываем ее (Как открыть командную строку читайте тут). Для перезагрузки используется вот такая команда.

-r — означает перезагрузка

-t — время равное 0

У вас начнется моментально перезагрузка Windows.

Синтаксис утилиты shutdown

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

Z:\>shutdown
Использование: shutdown [/i | /l | /s | /r | /g | /a | /p | /h | /e] [/f]
[/m \\компьютер][/t xxx][/d [p|u]xx:yy [/c «комментарий»]]

/i Отображение графического интерфейса пользователя. Этот параметр должен быть первым.
/l Завершение сеанса. Этот параметр нельзя использовать с параметрами /m или /d.
/s Завершение работы компьютера.
/r Завершение работы и перезагрузка компьютера.
/g Завершение работы и перезагрузка компьютера. После перезапуска системы, запуск всех зарегистрированных приложений.
/a Отмена завершения работы системы. Этот параметр можно использовать только в период ожидания.
/p Немедленное отключение локального компьютера без предупреждения. Можно использовать с параметрами /d и /f.
/h Переключение локального компьютера в режим гибернации.

Для удобства можно создать ярлык в котором можно вставить данную команду, или же создать cmd или bat файл для удобства. Так же я данную возможность использовал в mmc консоли. Помимо того что можно перезагрузить через командную строку, есть возможность сделать тоже самое и через PowerShell.

Как перезагрузить сервер через PowerShell

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

Или для нескольких

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

Команда Shutdown: выключение и перезагрузка Windows из командной строки

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

Читайте также:  Как обновить microsoft office для windows 10

Команда 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 «комментарий»]]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Запуск команды shutdown на удаленных компьютерах

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

Читайте также:  Линукс для анонимного серфинга

shutdown /r /t 120 /m \\192.168.1.100

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

reg add «HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System» /v «LocalAccountTokenFilterPolicy» /t REG_DWORD /d 1 /f

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

$sh_msg = «Ваш компьютер будет автоматически перезагружен через 10 минут. Сохраните свои файлы и закройте запущенные программы»
$sh_delay = 600 # секунд
$computers = gc C:\PS\PC-list.txt
foreach ($comp in $computers)
<
& ‘C:\Windows\System32\SHUTDOWN.exe’ «-m \\$comp -r -c $sh_msg -t $sh_delay»
>

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

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

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

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

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

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

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

Как удаленно перезагрузить сервер windows

Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов рунета Pyatilistnik.org. В прошлый раз мы с вами разбирали перезагрузку сервера из командной строки, в данной публикации я хочу вас научить обычной и удаленной перезагрузке компьютера средствами PowerShell, который прочно вошел в нашу жизнь. Уверен, что вы сами сможете определить себе сценарии, которые сможете использовать в своей практике.

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

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

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

Как видим компьютер уходит в перезагрузку.

Так же можно использовать команду с добавлением ключа -ComputerName

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

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

Как я и говорил ранее PowerShell, это прекрасный инструмент по удаленному управлению компьютерами, серверами и службами. Предположим, что у меня есть RDS ферма состоящая из 10 серверов с Windows Server 2019. Мне необходимо произвести обслуживание четырех серверов, для этого я перевожу их в режим стока (Drain Mode) чтобы отсечь новые подключения, и рассылаю уведомление сотрудникам, через msg, чтобы сотрудники перелогинились. После я начинаю обслуживать данные системы, когда я заканчиваю, то мне необходимо их перезагрузить. Для этого мы воспользуемся вот такой конструкцией:

Читайте также:  Writing script in linux

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

+ CategoryInfo : OperationStopped: (w10-cl02:String) [Restart-Computer], InvalidOperationException
+ FullyQualifiedErrorId : RestartcomputerFailed,Microsoft.PowerShell.Commands.RestartComputerCommand

Restart-Computer : Не удалось перезагрузить компьютер w10-cl03 со следующим сообщение об ошибке: Невозможно инициировать завершение работы системы, так как компьютер используется другими пользователями.
строка:1 знак:1
+ Restart-Computer -ComputerName w10-cl02, w10-cl03
+

+ CategoryInfo : OperationStopped: (w10-cl03:String) [Restart-Computer], InvalidOperationException
+ FullyQualifiedErrorId : RestartcomputerFailed,Microsoft.PowerShell.Commands.RestartComputerCommand


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

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

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

В результате у вас появится окно для ввода пароля пользователя, указываем его и нажимаем «Ok». Кстати если на удаленном компьютере, который требуется перезагрузить, будет активная сессия пользователя в интерактивном режиме, то вам так же выскочит ошибка, что «компьютер используется другими пользователями» и вам нужно будет добавлять ключик -Force:

В логах Windows на тех компьютерах, в журнале система, вы сможете обнаружить событие с кодом ID 1074(/kak-uznat-kto-perezagruzil-server-windows/), в котором вы увидите, кто перезагрузил систему:

Предположим, что у вас есть список компьютеров, которые требуется удаленно перезагрузить. В такой ситуации сам Бог велел использовать PowerShell. Структура файла выглядит очень просто, обычный текстовый документ, формата txt. На каждой строке по одному имени компьютера, без запятых. Я положил его в корень диска C:\.


Для того, чтобы прочитать данный файл есть командлет Get-Content и конструкция команды принимает вот такой вид:

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


Перезагрузка компьютера с задержкой по времени

Еще очень частая ситуация, это перезапуск компьютера, но через определенное время, предположим, через 60 секунд, чтобы какие-то другие вещи успели отработать, очень часто применяется в сценариях и скриптах. Для выполнения это задачи есть командлет Start-Sleep. Пишем команду:

В ключе -Seconds вы задаете время в секундах.


так же у вас есть возможность определить механизм, который используется для аутентификации учетных данных пользователя. Этот параметр был введен в Windows PowerShell 3.0. Называется этот ключ -WsmanAuthentication. На выбор у вас будет пять вариантов: Basic, CredSSP, Default, Digest, Kerberos и Negotiate.

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

После ее выполнения удаленные компьютеры уходят в перезагрузку.

Скрипт PowerShell для перезагрузки по расписанию

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

$wshell.Popup(«Данный компьютер будет перезагружен»,10,»Сохраните свои данные»,0x0)

$wshell.Popup(«Перезагрузка будет через 30 секунд»,2,»Не забудьте сохранить данные»,0x0)

Restart-Computer -ComputerName w10-cl01

Еще бонусом перезагрузка локального компьютера может быть выполнена и с помощью WMI. Для этого в оболочке PowerShell введите;

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