- Перезагрузка сервера через командную строку и планировщик задач
- Перезагрузка Windows сервера планировщиком заданий
- Перезагрузка Windows сервера планировщиком заданий
- Предотвращение перезагрузки Windows Server 2012 после обновления
- 7 ответов
- Корректная перезагрузка зависшего при выключении Windows сервера
Перезагрузка сервера через командную строку и планировщик задач
Иногда сервера необходимо перезагружать, например, для установки обновлений. В рабочее время, зачастую, сделать это не возможно по причине того, что пользователи работают с сервером и прерывать их работу не вариант. Конечно, можно или задержаться на работе или прийти раньше для выполнения перезагрузки… Но гораздо проще и удобнее запланировать перезагрузку через диспетчер задач.
Для начала рассмотрим, как перезагрузить (или выключить) систему через командную строку. В этом нам поможет утилита shutdown.exe. Не будем рассматривать все возможные параметры использования, их можно посмотреть запустив программу из консоли с параметром /? или просто без параметра, рассмотрим набор параметров, который использую я.
shutdown.exe /r /f /t 90 /d p:2:16 /c «Перезапуск для установки обновлений»
в данном случае:
/r — перезагрузка сервера
/f — принудительное закрытие всех приложений.
/t 90 — время ожидания до начала перезагрузки 90 сек.
/d p:2:16 — указание причины перезагрузки, которая отобразиться в системном журнале. В данном случае, мы указали:
p — запланированная перезагрузка, 2:16 — «Операционная система: Установка пакета обновления (Запланировано)»
/c «Перезапуск для установки обновлений» — комментарий в свободной форме длинной не более 512 символов.
Итак, после выполнения данной строки на экране появится окно с указанным нами комментарием.
Пока идет указанное нами время ожидания, есть возможность прервать запуск перезагрузки в случае необходимости выполнив shutdown.exe /a в командной строке.
После окончания времени ожидания станция будет перезагружена. При этом в системный журнал попадет запись о перезагрузке, ее причинах и нашим комментарием.
Таким образом, если за серверами следят несколько Администраторов, у них не будет вопросов почему сервер перезагружался.
Для того чтобы запланировать перезагрузку, разумно использовать планировщик задач. Не буду здесь описывать как создавать в нем задачи, отмечу только, что параметры командной строки следует вынести в соответствующую строчку, как на скриншоте
Обратите внимание, что путь я преобразовал через системную переменную:
Таким образом, не важно на какой диск установлена система, программа запустится.
Созданную задачу можно устанавливать на определенные дату/время с повторением или без по вашему желанию. Система будет перезагружена в назначенное время и в системном журнале останется соответствующая запись.
Разумеется, вы можете экспортировать созданную задачу в xml-файл и использовать как шаблон при создании подобной задачи на другом сервере вашей сети.
Следует также отметить, что таким же образом можно перезагрузить (или выключить) удаленный компьютер, если использовать параметр /m \\ИМЯ_КОМПЬЮТЕРА.
Утилита Shutdown имеет и оконный интерфейс, для этого утилиту следует запустить с ключом /i
Данный диалог позволяет выполнить перезагрузку на компьютерах сети (AD) без использования командной строки.
Перезагрузка Windows сервера планировщиком заданий
Имеем Windows Server 2012 R2. Задача — автоматически перезагружать сервер каждый понедельник в 5 утра. Приступаем.
Запускаем Планировщик заданий, создаём в нём папку «reboot»:
Делаем Create Basic Task. Запускается мастер:
Указываем Name, Description:
Выбираем период Weekly. Next:
Указываем начало — ближайший понедельник 5 утра. Ставим галку Monday. Next:
Выбираем Start a program. Next:
В Program/script: пишем:
В Add arguments (optional):
- /r — перезагрузка,
- /f — принудительное закрытие всех приложений,
- /t 90 — время ожидания до начала перезагрузки 90 сек,
- /d p:0:0 — причины перезагрузки для журнала. В данном случае, мы указали: p — запланированная перезагрузка, 0:0 — «Other (planned)»,
- /c комментарий в свободной форме длинной не более 512 символов. Комментарий будет показываться юзерам 90 секунд. За это время можно отменить перезагрузку командой shutdown.exe /a.
Список параметров и причин перезагрузки можно посмотреть shutdown.exe /?
Мастер не доделали, кликаем Finish. Создаётся задача — редактируем её.
Ставим Run whether user is logged on or not. Добавим галку Run with highest privileges. Ok:
Нас попросят ввести имя пользователя, от имени которого будет выполняться задание. И пароль. Готово:
Сам пока не проверял результатов. В ближайший понедельник посмотрим.
Две недели прошло — шедулер нормально перезагружает сервер по понедельникам.
Перезагрузка Windows сервера планировщиком заданий
Имеем Windows Server 2012 R2. Задача — автоматически перезагружать сервер каждый понедельник в 5 утра. Приступаем.
Запускаем Планировщик заданий, создаём в нём папку «reboot»:
Делаем Create Basic Task. Запускается мастер:
Указываем Name, Description:
Выбираем период Weekly. Next:
Указываем начало — ближайший понедельник 5 утра. Ставим галку Monday. Next:
Выбираем Start a program. Next:
В Program/script: пишем:
В Add arguments (optional):
/r /f /t 90 /d p:0:0 /c «Перезапуск по понедельникам. Отмена: shutdown.exe /a»
- /r — перезагрузка,
- /f — принудительное закрытие всех приложений,
- /t 90 — время ожидания до начала перезагрузки 90 сек,
- /d p:0:0 — причины перезагрузки для журнала. В данном случае, мы указали: p — запланированная перезагрузка, 0:0 — «Other (planned)»,
- /c комментарий в свободной форме длинной не более 512 символов. Комментарий будет показываться юзерам 90 секунд. За это время можно отменить перезагрузку командой shutdown.exe /a.
Список параметров и причин перезагрузки можно посмотреть shutdown.exe /?
Мастер не доделали, кликаем Finish. Создаётся задача — редактируем её.
Ставим Run whether user is logged on or not. Добавим галку Run with highest privileges . Ok:
Нас попросят ввести имя пользователя, от имени которого будет выполняться задание, и пароль. Готово:
Две недели прошло — шедулер нормально перезагружает сервер по понедельникам.
Если вам понравилась статья, то ставьте 👍🏻 каналу.
Пишите комментарии, задавайте вопросы, подписывайтесь.
Предотвращение перезагрузки Windows Server 2012 после обновления
У меня есть контроллер домена с Windows Server 2012. После обновлений сервер не перезагружается немедленно. Однако, если я удаляюсь на сервер, мне будет отправлен обратный отсчет для перезагрузки. Единственными параметрами являются перезапуск или закрытие уведомления. Однако обратный отсчет продолжается, и сервер, в конце концов, перезагружается без моего разрешения. Как я могу остановить это?
7 ответов
Существует политика локальной группы, которую вы можете установить для отключения автоматических перезапусков. Это должно выполняться только на серверах Windows, предполагая, что sysadmin отправляется в RDP на сервер по регулярному расписанию и устанавливает обновления и перезагружает сервер (см. Патч вторник ).
- Нажмите клавишу Windows + R, чтобы открыть приглашение.
- Введите «gpedit.msc» и нажмите клавишу ввода.
- В «Редакторе локальной групповой политики» перейдите к «Конфигурация компьютера»> Административные шаблоны> Компоненты Windows> Центр обновления Windows.
- Включите политику «Настроить автоматические обновления» и установите ее в «2».
- Включите политику «Нет автоматического перезапуска с включенными пользователями для запланированных автоматических обновлений».
Доступно обновление, позволяющее вам управлять тем, как клиент автоматических обновлений применяет обновления в Windows 8 и Windows Server 2012. После установки этого обновления параметр политики «Настроить автоматическое обновление» будет работать снова, как это было в предыдущих версиях Windows операционные системы. Вместо установки обновлений в течение цикла ежедневного обслуживания обновления Windows будут установлены в то время и в день, которые запланированы в настройке политики «Настроить автоматические обновления».
Отключите службу Windows Update. Не в Service Manager — просто остановите его. Обратный отсчет — это служба, а не сама Windows.
Если вы остановите его — никаких обновлений не будет повторно, пока машина не будет перезагружена вручную.
То же самое работает с сервером 2012. net stop , а затем остановите службу.
Остановка службы недостаточно, так как она снова запустится. Вы должны отключить службу, пока не будете готовы перезагрузить сервер.
Затем, чтобы исправить эту проблему, вам нужно добавить это значение реестра, чтобы обеспечить перезапуск Windows в запланированное время, даже если оно заблокировано.
Чтобы временно остановить перезагрузку, отключите службы Windows Update и Windows Installer. Верните их обратно ночью, чтобы перезагрузка могла произойти.
Если ваши обновления поступают через WSUS, вы можете определить, какие обновления требуют обязательной перезагрузки машины и планировать их в окне обслуживания. В противном случае отключите службу Windows Update, как было предложено выше.
Вы можете использовать Powershell для установки обновлений. Сделайте интернет-поиск для модуля PSWindowsUpate и загрузите его. Затем запустите команду Get-WUInstall. Существует переключатель, который позволяет игнорировать запрос на перезагрузку. Я использую его на всех моих серверах 2012 года, и мне это нравится намного лучше, чем использование графического интерфейса.
Корректная перезагрузка зависшего при выключении Windows сервера
Уже не первый раз сталкиваюсь с такой проблемой в Windows Server 2008 R2 / Windows Server 2012/R2: после установки обновлений или неких ролей/компонентов сервер запрашивает перезагрузку, во время которой на экране появляется надпись “ Preparing to configure Windows. Do not turn off your computer ” или “ Подготовка к настройке Windows. Не выключайте компьютер ”. На этом этапе сервер замирает и эта надпись может висеть часами. При этом сервер продолжает быть доступен по сети, но часть служб, в том числе доступ к RDP, не доступны.
Как правило, в этом случае самый быстрый способ решить проблему – перезагрузить сервер по питанию (хардрезет). Например, удаленно перезагрузить физический сервер можно из консоли HP ILO , Dell iDRAC и .т.п, или из консоли Hyper-V , vSphere для виртуальных машин. Но в таком случае есть вероятность нарушить работу ОС. Лучше использовать более «мягкий» способ сброса зависшего при перезагрузке сервера.
С другого компьютера при помощи оснастки Службы (Services) – services.msс удаленно подключимся к зависшему серверу.
В списке служб сервера несложно найти службу Windows Modules Installer (Установщик модулей Windows), находящуюся в состоянии Stopping . Очевидно, именно эта служба мешает выполнению процедуры корректной перезагрузки сервера.
Кнопки управления службой при этом не доступны. В свойствах службы можно узнать имя исполняемого файла: C:\Windows\servicing\TrustedInstaller.exe
Наша задача – принудительно завершить данный процесс. Проще всего воспользоваться сценарием, описанным в статье Как принудительно завершить зависшую службу с учетом того, что эти действия придется выполнить удаленно.
На любом компьютере откройте окно командой строки и для завершения процесса TrustedInstaller.exe на сервере с именем corp-man02 выполнить следующую команду.
taskkill.exe /s corp-man02 /u corp\admin_name /p P@ssw0rd! /im TrustedInstaller.exe
То же самое действие можно выполнить с помощью утилиты Pskill из набора PSTools:
pskill.exe \\corp-man02 TrustedInstaller.exe
psexec \\corp-man02 taskkill /IM TrustedInstaller.exe /F
После этого на экране зависшего сервера должна появиться надпись Shutting down и через несколько мгновений он должен корректно перезагрузится.
Проблема встречается не только на серверных версиях Windows, но и на клиентских Windows 7 / Windows 8 / Windows 10.