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!

Добавить комментарий