Ошибка "SoapException: Fault occurred" при синхронизации WSUS на Windows Server 2012 R2 с онлайн каталогом Windows Update

WSUS stop sync from Windows UpdateПри использовании WSUS на базе Windows Server 2012 R2 было замечено, что в последнее время наблюдались временные отказы при синхронизации метаданных с онлайн службой Windows Update. Синхронизация не работала несколько дней в Июле, затем в конце Июля опять заработала. И вот теперь ситуация снова повторяется, однако, судя по всему, рассчитывать на самовосстановление сервиса уже не приходится.

Теперь при каждой попытке выполнить синхронизацию из консоли WSUS стала воспроизводится одна и та же "непредвиденная ошибка".

WSUS SoapException Fault occurred

Ход выполнения синхронизации и ошибку, возникающую при синхронизации можно увидеть на сервере WSUS в лог-файле, расположенном в конфигурации по умолчанию в пути:

C:\Program Files\Update Services\LogFiles\SoftwareDistribution.log

...
SoapException: Fault occurred
at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
   at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
   at Microsoft.UpdateServices.ServerSyncWebServices.ServerSync.ServerSyncProxy.GetUpdateData(Cookie cookie, UpdateIdentity[] updateIds)
   at Microsoft.UpdateServices.ServerSync.CatalogSyncAgentCore.WebserviceGetUpdateData(UpdateIdentity[] updateIds, List`1 allMetadata, List`1 allFileUrls, List`1& updatesWithSecureFileData, Boolean isForConfig)
   at Microsoft.UpdateServices.ServerSync.CatalogSyncAgentCore.GetUpdateDataInChunksAndImport(List`1 neededUpdates, List`1 allMetadata, List`1 allFileUrls, Boolean isConfigData)
   at Microsoft.UpdateServices.ServerSync.CatalogSyncAgentCore.ExecuteSyncProtocol(Boolean allowRedirect)
...

Выяснилось то, что, согласно статьи 4482416 - WSUS synchronization fails with SoapException, с начала Июля этого года точка подключения для серверов WSUS изменилась с адреса, который использовался прежде, (https://fe2.update.microsoft.com/v6) на новый адрес: https://sws.update.microsoft.com.

Как это ни странно, Microsoft не выполнила автоматической корректировки точки подключения посредствам какого-нибудь очередного обновления WSUS, а отделалась выше указанной статьёй. Информация в статье применима к роли WSUS, развёрнутой на системах:

  • Windows Server 2016
  • Windows Server 2012 R2
  • Windows Server 2012

В нашем случае на сервере WSUS достаточно оказалось выполнить фрагмент PS-кода, предложенного для решения проблемы в статье:

[void][reflection.assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration")
$server = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer()
$config = $server.GetConfiguration()
# Check current settings before you change them
$config.MUUrl
$config.RedirectorChangeNumber
# Update the settings if MUUrl is https://fe2.update.microsoft.com/v6
$config.MUUrl = "https://sws.update.microsoft.com"
$config.RedirectorChangeNumber = 4002
$config.Save();
iisreset
Restart-Service *Wsus* -v

Данный фрагмент должен успешно отработать и на Windows Server 2012 и на Windows Server 2012 R2.

В случае, если сервер WSUS всё ещё работает на базе ранних версий, типа Windows Server 2008, предлагается замена точки подключения с учётом отсутствия поддержки сертификатов SHA256. Для этого в скрипте достаточно будет заменить пару строк, определяющих адрес точки подключения на следующие:

$config.MUUrl = " https://sws1.update.microsoft.com"
$config.RedirectorChangeNumber = 3011 

После выполнения представленного PS-кода синхронизация на нашем WSUS сервере снова заработала успешно.

Только один комментарий Комментировать

  1. Дмитрий /

    Прочитав статью полез посмотреть настройки нашего сервера - там указан сервер https://sws.update.microsoft.com. При этом мы никакие правки не вносили руками - походу обновление вносящее эту правку было

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