ESC

Start typing to search across invoices, services, domains, tickets, and more...

Search... Ctrl+K
Windows Server

Управление Windows Update в Windows Server: без внезапных перезагрузок, установка через PowerShell

6 шагов 12 мин чтения 2 просмотров 0
Содержание

Для рабочего Windows-сервера нет ничего хуже внезапной ночной перезагрузки после автоматического обновления. В этой статье разобрано управление Windows Update в Windows Server 2016/2019/2022: настройка автообновления и автоперезагрузки через sconfig, групповую политику или реестр, активные часы, установка обновлений модулем PowerShell PSWindowsUpdate, просмотр журнала обновлений и плановая перезагрузка в окно обслуживания.

Шаг 1: Выбрать режим Windows Update в sconfig

Откройте PowerShell или командную строку от имени администратора и запустите sconfig. Выберите пункт настроек Windows Update (обычно 5) и режим: автоматически, только загрузка или вручную. Для продакшена советуем «только загрузка»: патчи скачиваются сами, а время установки и перезагрузки выбираете вы.

sconfig

Шаг 2: Отключить автоматическую перезагрузку через политику или реестр

В gpedit.msc откройте «Конфигурация компьютера → Административные шаблоны → Компоненты Windows → Центр обновления Windows». Включите «Настройка автоматического обновления» с вариантом «3 — автоматическая загрузка и уведомление об установке» и политику «Не выполнять автоматическую перезагрузку при наличии вошедших в систему пользователей». На Server Core задайте те же значения в реестре:

$au = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU"
New-Item -Path $au -Force | Out-Null
# 3 = download automatically, notify before install
Set-ItemProperty -Path $au -Name NoAutoUpdate -Type DWord -Value 0
Set-ItemProperty -Path $au -Name AUOptions -Type DWord -Value 3
# Never auto-restart while a user is signed in
Set-ItemProperty -Path $au -Name NoAutoRebootWithLoggedOnUsers -Type DWord -Value 1
gpupdate /force
Запрет перезагрузки при вошедших пользователях работает, только пока есть сессия. Если закрыть окно RDP без выхода, сессия сохраняется и защищает сервер; если же все вышли, перезагрузка возможна. Поэтому мы сочетаем его с AUOptions=3.

Шаг 3: Настроить активные часы

В активные часы Windows не перезагружается ради обновлений. Задайте их в «Параметры → Обновление и безопасность → Центр обновления Windows → Изменить период активности» или командами реестра ниже (не более 18 часов).

$ux = "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings"
# Active hours 08:00-23:00 (no automatic restart in this window)
Set-ItemProperty -Path $ux -Name ActiveHoursStart -Type DWord -Value 8
Set-ItemProperty -Path $ux -Name ActiveHoursEnd -Type DWord -Value 23
Get-ItemProperty -Path $ux | Select-Object ActiveHoursStart,ActiveHoursEnd

Шаг 4: Установка обновлений Windows через PowerShell PSWindowsUpdate

PSWindowsUpdate — популярный модуль для просмотра, установки и скрытия обновлений из командной строки, удобен для Server Core и автоматизации. В Windows Server 2016 сначала включите TLS 1.2, иначе PowerShell Gallery недоступна. Ключ -IgnoreReboot гарантирует, что сервер не перезагрузится сам.

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Install-PackageProvider -Name NuGet -Force
Install-Module -Name PSWindowsUpdate -Force
Import-Module PSWindowsUpdate

# List available updates
Get-WindowsUpdate

# Install everything but do NOT reboot automatically
Install-WindowsUpdate -AcceptAll -IgnoreReboot

# Install a single KB only
Install-WindowsUpdate -KBArticleID KB5005112 -AcceptAll -IgnoreReboot

Шаг 5: Журнал обновлений Windows и ожидающая перезагрузка

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

Get-WUHistory -Last 20 | Format-Table Date,KB,Result,Title -AutoSize
Get-HotFix | Sort-Object InstalledOn -Descending | Select-Object -First 10

# Is a reboot pending?
Get-WURebootStatus
Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired"

Шаг 6: Запланировать перезагрузку в окно обслуживания

После установки патчей перезагрузите сервер в период минимальной нагрузки. Команда ниже вычисляет число секунд до 03:00 следующего дня и планирует перезагрузку; её можно отменить.

# Reboot at 03:00 tonight (time in seconds from now)
$t = (Get-Date).Date.AddDays(1).AddHours(3)
shutdown /r /t ([int]($t - (Get-Date)).TotalSeconds) /c "Planned update reboot"
# Cancel a scheduled reboot
shutdown /a
Перед перезагрузкой сделайте резервную копию и убедитесь, что службы запускаются автоматически. Если после перезагрузки RDP какое-то время недоступен, Windows может ещё применять обновления — подождите 10–20 минут, прежде чем обращаться в поддержку.

Частые вопросы

Можно ли полностью отключить Windows Update?

Технически да, но без патчей RDP, SMB и другие службы остаются уязвимыми. Лучше режим «только загрузка/уведомление» и ручная установка по фиксированному графику раз в месяц.

Номера пунктов sconfig отличаются от статьи.

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

Обновления не устанавливаются или зависают на загрузке.

Проверьте доступ в интернет и DNS, выполните sfc /scannow и DISM /Online /Cleanup-Image /RestoreHealth, затем повторите установку.

Если проблема не решена, создайте тикет — техподдержка IMIDC работает 24/7. Укажите IP сервера, версию ОС, выполненные команды и приложите скриншот ошибки, чтобы мы быстрее нашли причину.

Помог ли вам данный ответ?

Похожие руководства