При использовании WSUS на базе Windows Server 2012 R2 было замечено, что в последнее время наблюдались временные отказы при синхронизации метаданных с онлайн службой Windows Update. Синхронизация не работала несколько дней в Июле, затем в конце Июля опять заработала. И вот теперь ситуация снова повторяется, однако, судя по всему, рассчитывать на самовосстановление сервиса уже не приходится.
Теперь при каждой попытке выполнить синхронизацию из консоли WSUS стала воспроизводится одна и та же "непредвиденная ошибка".
Ход выполнения синхронизации и ошибку, возникающую при синхронизации можно увидеть на сервере 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 сервере снова заработала успешно.
Прочитав статью полез посмотреть настройки нашего сервера - там указан сервер https://sws.update.microsoft.com. При этом мы никакие правки не вносили руками - походу обновление вносящее эту правку было