Обновления Windows Server
В этой статье — как проверить и поставить обновления на Windows-сервере MHost через приложение «Параметры» (если у сервера есть рабочий стол) или через sconfig (на Server Core), как после этого безопасно перезагрузиться, как настроить расписание автообновлений под себя и почему откладывать патчи на сервере, доступном из интернета, — плохая идея.
Что понадобится
- Windows-сервер MHost на Windows Server 2016/2019/2022 (или более старой 2012 R2) — как с рабочим столом (Desktop Experience), так и Server Core без графики.
- Доступ по RDP под учётной записью
Administrator— если ещё не подключались, см. «Консоль VNC и первое подключение (SSH/RDP)». - Права локального администратора —
Administratorими обладает по умолчанию. - Разрешённый исходящий доступ в интернет: Windows Update обращается к серверам Microsoft по HTTPS. На VPS MHost исходящий трафик по умолчанию не ограничен файрволом, так что для большинства серверов это не требует отдельной настройки.
- Свободное окно на перезагрузку — на время рестарта сервер и всё, что на нём работает, будет недоступно одну-две минуты.
Шаг 1. Проверьте и установите обновления
Дальнейшие действия зависят от варианта установки сервера. Если после входа по RDP вы видите обычный рабочий стол и меню «Пуск» — перед вами Desktop Experience, используйте первый способ ниже. Если вместо рабочего стола сразу открывается консоль (PowerShell или sconfig) — это Server Core, используйте второй способ.
Через приложение «Параметры» (сервер с рабочим столом)
- Нажмите Win + I либо откройте Пуск → Settings.
- Перейдите в Update & Security → Windows Update.
- Нажмите Check for updates.
📷 скриншот: страница Windows Update в приложении «Параметры» с кнопкой Check for updates
- Если обновления найдены, Windows скачает и установит их автоматически — статус на странице сменится на Downloading, затем Installing. Дожидаться конца установки необязательно, можно свернуть окно и продолжать работать.
- Если после установки нужна перезагрузка, страница покажет статус Pending restart — переходите к Шагу 2.
Через sconfig (Server Core, без рабочего стола)
На Server Core графического Windows Update нет — обновления ставятся через встроенный текстовый инструмент sconfig, который начиная с Windows Server 2022 запускается автоматически сразу после входа. На более старых версиях (2012 R2/2016/2019) откройте его вручную:
sconfig- В главном меню введите
5и нажмите Enter — откроется настройка режима обновлений:A(Automatic — сервер сам проверяет и ставит обновления каждый день в 3:00 по времени сервера),D(Download only — обновления скачиваются автоматически, но ставятся только вручную; режим по умолчанию) илиM(Manual — сервер вообще не проверяет обновления сам). - Чтобы поставить обновления прямо сейчас — независимо от выбранного режима, — введите
6и нажмите Enter, откроется Install updates. Укажите категорию поиска:1для всех обновлений безопасности и качества,2— только для рекомендованных Microsoft,3— для обновлений функциональности (для обычного патчинга не нужно). - После поиска sconfig покажет список найденных обновлений. Введите
Aи нажмите Enter, чтобы поставить все сразу,S— чтобы выбрать конкретное обновление по номеру, илиN— чтобы не ставить ничего.
📷 скриншот: главное меню sconfig с пунктами Update setting и Install updates
Get-HotFix | Sort-Object InstalledOnШаг 2. Безопасно перезагрузите сервер
Большая часть обновлений безопасности требует перезагрузки, чтобы вступить в силу, — до этого момента изменённые файлы лежат рядом со старыми, а сервер продолжает работать на прежней, уязвимой версии. Перезагрузить сервер можно любым из трёх равнозначных способов.
Через «Параметры»: если на странице Windows Update появилась кнопка Restart now — нажмите её сразу, либо выберите Schedule the restart и укажите удобное время, например ночью, вне рабочих часов.
📷 скриншот: уведомление Windows Update с кнопками Restart now и Schedule the restart
Через sconfig: в главном меню введите 13 и нажмите Enter, затем подтвердите Y.
Из командной строки или PowerShell (работает одинаково и на Desktop Experience, и на Server Core):
shutdown /r /t 60 /c "Restart after installing Windows updates"Либо тот же результат через PowerShell-командлет:
Restart-Computer/t 60 даёт 60 секунд на сохранение работы — в том числе другим администраторам, если они сейчас подключены, — прежде чем сервер уйдёт в перезагрузку.
На Server Core, где нет уведомлений Action Center, узнать, ждёт ли сервер перезагрузки, можно так:
Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending"True означает, что перезагрузка нужна.
Шаг 3. Настройте поведение обновлений
По умолчанию Windows Update сам решает, когда скачивать и когда ставить обновления. Это поведение можно настроить точнее — через графический интерфейс, а для Server Core или централизованного управления несколькими серверами — через локальную групповую политику или реестр.
Через «Параметры» → Advanced options
- На странице Windows Update откройте Advanced options.
- Active hours — часы, в которые сервер не должен уходить в автоматическую перезагрузку после установки обновлений. Укажите период, в который на сервере ожидается нагрузка (например, рабочие часы вашего бизнеса) — вне его Windows перезагрузится сама, если это потребуется.
- Pause updates — кнопка на главной странице Windows Update, откладывает установку новых обновлений на выбранный срок (обычно неделями, максимум — 35 дней суммарно). После истечения паузы Windows снова начнёт проверять и ставить обновления в обычном режиме.
📷 скриншот: страница Advanced options с настройкой Active hours
Через локальную групповую политику или реестр
Для Server Core (там нет графического редактора политик) или если нужна более точная и воспроизводимая настройка — задайте поведение централизованно.
Несмотря на название, редактор локальной групповой политики (gpedit.msc) работает и без домена Active Directory — он редактирует политики именно этого сервера, а не всей организации. Доступен только там, где есть рабочий стол (Desktop Experience); на Server Core вместо него используйте реестр (ниже).
- Запустите
gpedit.msc. - Перейдите в Computer Configuration → Administrative Templates → Windows Components → Windows Update.
- Откройте политику Configure Automatic Updates, включите её (Enabled) и выберите режим — расшифровка режимов ниже.
- Примените политику немедленно, не дожидаясь планового обновления групповой политики:
gpupdate /force📷 скриншот: окно локальной групповой политики с настройкой Configure Automatic Updates
Значение режимов политики Configure Automatic Updates:
- 2 — Notify for download and auto install — только уведомляет о найденных обновлениях, скачивание и установку запускает администратор вручную.
- 3 — Auto download and notify for install — скачивает автоматически, но об установке лишь уведомляет.
- 4 — Auto download and schedule the install — скачивает и ставит обновления по расписанию (задаётся тут же, полями Scheduled install day/time) — по сути то же поведение, что режим Automatic в sconfig.
- 7 — Notify for install and notify for restart (только Windows Server 2016 и новее) — скачивает автоматически, но и установку, и перезагрузку запускает только по вашему подтверждению — ничего не происходит без явного клика администратора. Хороший выбор для одиночного сервера, которым управляете вы сами.
Для Server Core (или чтобы задать то же самое без графики) — те же параметры можно выставить через реестр:
$path = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU"
New-Item -Path $path -Force | Out-Null
New-ItemProperty -Path $path -Name "AUOptions" -Value 4 -PropertyType DWord -Force | Out-Null
New-ItemProperty -Path $path -Name "ScheduledInstallDay" -Value 0 -PropertyType DWord -Force | Out-Null
New-ItemProperty -Path $path -Name "ScheduledInstallTime" -Value 3 -PropertyType DWord -Force | Out-NullЭтот пример включает режим 4 (автозагрузка + установка по расписанию) с установкой каждый день (ScheduledInstallDay 0) в 3 часа ночи (ScheduledInstallTime 3) — то есть то же самое, что режим Automatic в sconfig, но заданное явно.
Активные часы задаются похожим образом, но в другом разделе реестра — без вложенного \AU:
$path = "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate"
New-Item -Path $path -Force | Out-Null
New-ItemProperty -Path $path -Name "SetActiveHours" -Value 1 -PropertyType DWord -Force | Out-Null
New-ItemProperty -Path $path -Name "ActiveHoursStart" -Value 9 -PropertyType DWord -Force | Out-Null
New-ItemProperty -Path $path -Name "ActiveHoursEnd" -Value 21 -PropertyType DWord -Force | Out-NullПочему регулярные обновления так важны
Порт RDP (3389) на Windows-серверах MHost открыт по умолчанию — сервер виден в интернете и регулярно попадает под автоматическое сканирование ботами, которые ищут именно уязвимые версии Windows. Разрыв между публикацией патча и появлением рабочего эксплоита у атакующих в последние годы устойчиво сокращается — счёт нередко идёт на дни.
Классический пример того, к чему приводит промедление с патчами, — уязвимость MS17-010 в протоколе SMB, закрытая Microsoft в марте 2017 года. Через два месяца после выхода патча на её основе распространился червь-вымогатель WannaCry, заразивший за несколько дней сотни тысяч компьютеров по всему миру — практически только те, где мартовское обновление так и не поставили. Патч на момент атаки был доступен уже два месяца.
Разумный баланс — не реже раза в одну-две недели проверять и ставить обновления безопасности вручную (или настроить автоматический режим из Шага 3 и довериться ему), а перед установкой крупных накопительных обновлений на важном продовом сервере — сначала сделать бэкап (Шаг 2 выше), чтобы восстановление в случае проблем заняло минуты, а не час разбора сломанной системы. Общий чеклист базовой защиты VPS — в статье «Чеклист базовой защиты VPS»: он написан для Linux, но принципы — держать систему обновлённой, ограничивать доступ, следить за открытыми портами — применимы и к Windows-серверу.
Что дальше
Разберитесь, как ставить на сервер дополнительное ПО через готовые рецепты VMmanager 6, — статья «Установка Google Chrome на Windows-сервере через готовый рецепт» разбирает это на конкретном примере. Если ещё не настроили резервное копирование как страховку перед рискованными изменениями (в том числе крупными обновлениями) — учтите, что MHost VPS снапшотов не предлагают, так что заранее сохраняйте бэкап важных данных за пределами сервера.