wsus_logo

Установка WSUS на Windows Server 2016 Server Core

Возможность установки WSUS на Server Core появилась в Windows Server 2012, т.к. именно в этой ОС появилась поддержка работы ASP.NET в Server Core и SQL Server 2012 получил возможность работы на Server Core, а соответственно и Windows Internal Database.
После установки ОС в режиме Server Core настраиваем всё необходимое для работы с помощью утилиты sconfig.cmd, не забываем активировать ОС с помощью slmgr.vbs. После настройки всех необходимых параметров открываем PowerShell и устанавливаем роль WSUS. Я опишу процесс установки с помощью PowerShell, но всё это можно выполнить и с помощью Server Manager.

Для удобства дальнейшего управления сервером Server Core я включаю следующие правила брандмауэра:

Enable-NetFirewallRule -DisplayName "Windows Management Instrumentation (DCOM-In)"
Enable-NetFirewallRule -DisplayGroup "Remote Event Log Management"
Enable-NetFirewallRule -DisplayGroup "Remote Service Management"
Enable-NetFirewallRule -DisplayGroup "Remote Volume Management"
Enable-NetFirewallRule -DisplayGroup "Windows Firewall Remote Management"
Enable-NetFirewallRule -DisplayGroup "Remote Scheduled Tasks Management"
Enable-NetFirewallRule -DisplayGroup "Windows Management Instrumentation (WMI)"
Enable-NetFirewallRule -DisplayGroup "File and Printer sharing"

Для установки WSUS с Windows Internal Database (WID):

Install-WindowsFeature -Name Updateservices,UpdateServices-WidDB,UpdateServices-services -IncludeManage
mentTools

Посмотреть список устанавливаемых компонент можно с помощью команды:

Install-WindowsFeature -Name Updateservices,UpdateServices-WidDB,UpdateServices-services -IncludeManage
mentTools -WhatIf

Если база данных WSUS будет находится на отдельном SQL сервере, то:

Install-WindowsFeature UpdateServices-DB

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

New-Item -Path C: -Name WSUS -ItemType Directory

Настраиваем WSUS на использование созданной директории:

"%programfiles%\update services\tools\wsusutil.exe" postinstall CONTENT_DIR=C:\WSUS

Если база данных находится на отдельном SQL сервере, то необходимо указать на каком сервере sql её необходимо создать. Это делается также через wsusutil.exe:

"%programfiles%\update services\tools\wsusutil.exe" postinstall CONTENT_DIR=C:\Wsus SQL_INSTANCE_NAME=<database server name>

В параметре CONTENT_DIR указываем путь до контент директории WSUS, в SQL_INSTANCE_NAME указываем имя SQL сервера:

Для дальнейшей настройки подключаемся консолью Windows Server Update Services из состава RSAT к нашему серверу:

При первом подключении к серверу откроется мастер начальной настройки:

В моём случае начальная синхронизация выполнялась очень и очень долго. Я не смог дождаться окончания. При этом лог-файл %ProgramFiles%\Update Services\LogFiles\SoftwareDistribution.log переполнялся такими сообщениями:

2017-05-16 10:01:21.430 UTC	Warning	WsusService.3	DBConnection.ExecuteCommandNoResult	SqlException occurred. Number 50000 and message invalid update identity in XML for update 062CF936-9CB4-49D6-923E-5AC4FC97D573\100
2017-05-16 10:01:21.508 UTC	Warning	WsusService.3	DBConnection.ExecuteCommandNoResult	SqlException occurred. Number 50000 and message invalid update identity in XML for update 06766890-EA84-442B-A73B-5E930F88E707\100
2017-05-16 10:01:21.571 UTC	Warning	WsusService.3	DBConnection.ExecuteCommandNoResult	SqlException occurred. Number 50000 and message invalid update identity in XML for update 06A388B1-1ECE-4051-B3F1-1984B2F253AA\200
2017-05-16 10:01:21.649 UTC	Warning	WsusService.3	DBConnection.ExecuteCommandNoResult	SqlException occurred. Number 50000 and message invalid update identity in XML for update 06A8AF61-481A-4862-917F-7A58F95A8114\201

Выполнил синхронизацию только каталога с помощью PowerShell:

$wsus = Get-WSUSServer
$subscription = $wsus.GetSubscription()
$subscription.StartSynchronizationForCategoryOnly()
While ($subscription.GetSynchronizationStatus() -ne ‘NotProcessing’) {
    Write-Host “.” -NoNewline
    Start-Sleep -Seconds 5
}
Write-Host “Sync is done.”

Это заняло около часа, в процессе синхронизации в лог-файл продолжали писаться сообщения SqlException. Но после такой ручной синхронизации мастер настройки позволяет дальше выбрать языки и указать продукты, для которых необходимо синхронизировать обновления. Дальнейшие синхронизации идут без ошибок SqlException.  Эта проблема, похоже, возникает только при установке WSUS на Server Core. При установке WSUS на сервер 2016 с графическим интерфейсом такой проблемы не наблюдал.

2 комментария

In 1709 they changed the name from “Windows Firewall Remote Management” to “Windows Defender Firewall Remote Management”

Павел Антипов

Hi Walid! Thank you for posting your comment!

Добавить комментарий для Павел Антипов Отменить ответ