MHOSTMHOST

Обновления 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 исходящий трафик по умолчанию не ограничен файрволом, так что для большинства серверов это не требует отдельной настройки.
  • Свободное окно на перезагрузку — на время рестарта сервер и всё, что на нём работает, будет недоступно одну-две минуты.
Совет: если на сервере установлена локализованная (не английская) версия Windows, названия пунктов меню будут на соответствующем языке — например, «Центр обновления Windows» вместо Windows Update. Расположение и логика пунктов от этого не меняются.

Шаг 1. Проверьте и установите обновления

Дальнейшие действия зависят от варианта установки сервера. Если после входа по RDP вы видите обычный рабочий стол и меню «Пуск» — перед вами Desktop Experience, используйте первый способ ниже. Если вместо рабочего стола сразу открывается консоль (PowerShell или sconfig) — это Server Core, используйте второй способ.

Через приложение «Параметры» (сервер с рабочим столом)

  1. Нажмите Win + I либо откройте Пуск → Settings.
  2. Перейдите в Update & Security → Windows Update.
  3. Нажмите Check for updates.

📷 скриншот: страница Windows Update в приложении «Параметры» с кнопкой Check for updates

  1. Если обновления найдены, Windows скачает и установит их автоматически — статус на странице сменится на Downloading, затем Installing. Дожидаться конца установки необязательно, можно свернуть окно и продолжать работать.
  2. Если после установки нужна перезагрузка, страница покажет статус Pending restart — переходите к Шагу 2.
Готово: статус на странице Windows Update сменился на «You're up to date» (или «Pending restart», если нужен рестарт) — обновления встали.
Совет: список уже установленных обновлений (и неудачных попыток, если такие были) смотрите по ссылке View update history на той же странице — полезно, чтобы убедиться, что конкретный KB встал, или разобраться, что пошло не так.

Через sconfig (Server Core, без рабочего стола)

На Server Core графического Windows Update нет — обновления ставятся через встроенный текстовый инструмент sconfig, который начиная с Windows Server 2022 запускается автоматически сразу после входа. На более старых версиях (2012 R2/2016/2019) откройте его вручную:

powershell
sconfig
  1. В главном меню введите 5 и нажмите Enter — откроется настройка режима обновлений: A (Automatic — сервер сам проверяет и ставит обновления каждый день в 3:00 по времени сервера), D (Download only — обновления скачиваются автоматически, но ставятся только вручную; режим по умолчанию) или M (Manual — сервер вообще не проверяет обновления сам).
  2. Чтобы поставить обновления прямо сейчас — независимо от выбранного режима, — введите 6 и нажмите Enter, откроется Install updates. Укажите категорию поиска: 1 для всех обновлений безопасности и качества, 2 — только для рекомендованных Microsoft, 3 — для обновлений функциональности (для обычного патчинга не нужно).
  3. После поиска sconfig покажет список найденных обновлений. Введите A и нажмите Enter, чтобы поставить все сразу, S — чтобы выбрать конкретное обновление по номеру, или N — чтобы не ставить ничего.

📷 скриншот: главное меню sconfig с пунктами Update setting и Install updates

Готово: sconfig отчитался об установке — можно возвращаться в главное меню и при необходимости переходить к перезагрузке (Шаг 2).
Совет: проверить, какие обновления уже стоят на сервере, можно и без sconfig — прямо из PowerShell:
powershell
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):

cmd
shutdown /r /t 60 /c "Restart after installing Windows updates"

Либо тот же результат через PowerShell-командлет:

powershell
Restart-Computer

/t 60 даёт 60 секунд на сохранение работы — в том числе другим администраторам, если они сейчас подключены, — прежде чем сервер уйдёт в перезагрузку.

Важно: перезагрузка оборвёт вашу RDP-сессию — это нормально. Подождите одну-две минуты и подключитесь заново тем же способом, что и обычно (см. «Консоль VNC и первое подключение (SSH/RDP)»). Если сервер не отвечает дольше 5–10 минут, откройте графическую консоль VNC прямо в VMmanager 6 — на экране может идти обработка обновлений («Working on updates, X% complete. Don't turn off your computer»).
Важно: пока на экране идёт обработка обновлений при загрузке — не выключайте и не перезагружайте сервер принудительно кнопкой в VMmanager 6 (жёсткая перезагрузка/выключение через меню «⋮»). Обрыв питания на этом этапе может повредить систему настолько, что она вообще не загрузится. Дайте процессу закончиться самому — это может занять от нескольких минут до пары десятков минут в зависимости от количества обновлений.
Совет: Host VPS не предлагают снапшоты, поэтому перед установкой крупного накопительного обновления на важном продовом сервере сделайте бэкап важных данных и конфигурации заранее — так восстановление в случае проблем займёт куда меньше времени, чем разбор сломанной системы вручную.

На Server Core, где нет уведомлений Action Center, узнать, ждёт ли сервер перезагрузки, можно так:

powershell
Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending"

True означает, что перезагрузка нужна.

Готово: сервер снова отвечает по RDP, а Get-HotFix (или страница Windows Update) показывает свежую дату установки — можно возвращаться к обычной работе.

Шаг 3. Настройте поведение обновлений

По умолчанию Windows Update сам решает, когда скачивать и когда ставить обновления. Это поведение можно настроить точнее — через графический интерфейс, а для Server Core или централизованного управления несколькими серверами — через локальную групповую политику или реестр.

Через «Параметры» → Advanced options

  1. На странице Windows Update откройте Advanced options.
  2. Active hours — часы, в которые сервер не должен уходить в автоматическую перезагрузку после установки обновлений. Укажите период, в который на сервере ожидается нагрузка (например, рабочие часы вашего бизнеса) — вне его Windows перезагрузится сама, если это потребуется.
  3. Pause updates — кнопка на главной странице Windows Update, откладывает установку новых обновлений на выбранный срок (обычно неделями, максимум — 35 дней суммарно). После истечения паузы Windows снова начнёт проверять и ставить обновления в обычном режиме.

📷 скриншот: страница Advanced options с настройкой Active hours

Проверьте: точный набор и расположение пунктов на странице Advanced options немного отличается между сборками Windows Server — если какого-то пункта нет на привычном месте, поищите его на той же странице чуть выше или ниже.

Через локальную групповую политику или реестр

Для Server Core (там нет графического редактора политик) или если нужна более точная и воспроизводимая настройка — задайте поведение централизованно.

Несмотря на название, редактор локальной групповой политики (gpedit.msc) работает и без домена Active Directory — он редактирует политики именно этого сервера, а не всей организации. Доступен только там, где есть рабочий стол (Desktop Experience); на Server Core вместо него используйте реестр (ниже).

  1. Запустите gpedit.msc.
  2. Перейдите в Computer Configuration → Administrative Templates → Windows Components → Windows Update.
  3. Откройте политику Configure Automatic Updates, включите её (Enabled) и выберите режим — расшифровка режимов ниже.
  4. Примените политику немедленно, не дожидаясь планового обновления групповой политики:
cmd
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 (или чтобы задать то же самое без графики) — те же параметры можно выставить через реестр:

powershell
$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:

powershell
$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
Важно: значения, заданные политикой или реестром (как выше), перекрывают то, что выбрал локальный администратор через «Параметры» или sconfig. Если позже удалить эти ключи реестра, снова начнут действовать настройки, выставленные вручную.
Совет: для управления обновлениями на десятках серверов одновременно в организациях используют WSUS (Windows Server Update Services) — отдельный сервер, который сам раздаёт одобренные обновления. Для одного-двух VPS это избыточно, здесь не разбираем.

Почему регулярные обновления так важны

Порт RDP (3389) на Windows-серверах MHost открыт по умолчанию — сервер виден в интернете и регулярно попадает под автоматическое сканирование ботами, которые ищут именно уязвимые версии Windows. Разрыв между публикацией патча и появлением рабочего эксплоита у атакующих в последние годы устойчиво сокращается — счёт нередко идёт на дни.

Классический пример того, к чему приводит промедление с патчами, — уязвимость MS17-010 в протоколе SMB, закрытая Microsoft в марте 2017 года. Через два месяца после выхода патча на её основе распространился червь-вымогатель WannaCry, заразивший за несколько дней сотни тысяч компьютеров по всему миру — практически только те, где мартовское обновление так и не поставили. Патч на момент атаки был доступен уже два месяца.

Разумный баланс — не реже раза в одну-две недели проверять и ставить обновления безопасности вручную (или настроить автоматический режим из Шага 3 и довериться ему), а перед установкой крупных накопительных обновлений на важном продовом сервере — сначала сделать бэкап (Шаг 2 выше), чтобы восстановление в случае проблем заняло минуты, а не час разбора сломанной системы. Общий чеклист базовой защиты VPS — в статье «Чеклист базовой защиты VPS»: он написан для Linux, но принципы — держать систему обновлённой, ограничивать доступ, следить за открытыми портами — применимы и к Windows-серверу.

Что дальше

Разберитесь, как ставить на сервер дополнительное ПО через готовые рецепты VMmanager 6, — статья «Установка Google Chrome на Windows-сервере через готовый рецепт» разбирает это на конкретном примере. Если ещё не настроили резервное копирование как страховку перед рискованными изменениями (в том числе крупными обновлениями) — учтите, что MHost VPS снапшотов не предлагают, так что заранее сохраняйте бэкап важных данных за пределами сервера.