Восстановление работы WSUS после установки обновлений
Не так давно убилось несколько WSUS серверов после обновлений. В логах значилась следующая ошибка (В ОС Windows с русской локализацией):
System.IndexOutOfRangeException — Индекс находился вне границ массива.
Source
Microsoft.UpdateServices.BaseApiStack Trace:
в Microsoft.UpdateServices.Internal.BaseApi.SoapExceptionProcessor.DeserializeAndThrow(SoapException soapException)
в Microsoft.UpdateServices.Internal.DatabaseAccess.AdminDataAccessProxy.ExecuteSPGetConfiguration()
в Microsoft.UpdateServices.Internal.BaseApi.UpdateServerConfiguration.Load()
в Microsoft.UpdateServices.Internal.ClassFactory.CreateWellKnownType(Type type, Object[] args)
в Microsoft.UpdateServices.Internal.ClassFactory.CreateInstance(Type type, Object[] args)
в Microsoft.UpdateServices.Internal.BaseApi.UpdateServer.set_UserSelectedCulture(String value)
в Microsoft.UpdateServices.UI.AdminApiAccess.AdminApiTools.TrySetServerCulture(String culture)
в Microsoft.UpdateServices.UI.AdminApiAccess.AdminApiTools.SetServerCulture()
в Microsoft.UpdateServices.UI.AdminApiAccess.AdminApiTools..ctor(CultureInfo culture, IUpdateServer updateServer)
в Microsoft.UpdateServices.UI.SnapIn.Common.ServerTools..ctor(ServerSummaryScopeNode serverSummaryScopeNode, SnapInTools snapInTools, IUpdateServer updateServer)
в Microsoft.UpdateServices.UI.SnapIn.Scope.ServerSummaryScopeNode.ConnectToServer()
в Microsoft.UpdateServices.UI.SnapIn.Scope.ServerSummaryScopeNode.ConnectToServerAndPopulateNode(Boolean connectingServerToConsole)
в Microsoft.UpdateServices.UI.SnapIn.Scope.ServerSummaryScopeNode.OnExpand(AsyncStatus status)
В ОС Windows с английской локализацией ошибка выглядит следующим образом:
System.IndexOutOfRangeException — Index was outside the bounds of the array.
Source
Microsoft.UpdateServices.BaseApiStack Trace:
at Microsoft.UpdateServices.Internal.BaseApi.SoapExceptionProcessor.DeserializeAndThrow(SoapException soapException)
at Microsoft.UpdateServices.Internal.DatabaseAccess.AdminDataAccessProxy.ExecuteSPGetConfiguration()
at Microsoft.UpdateServices.Internal.BaseApi.UpdateServerConfiguration.Load()
at Microsoft.UpdateServices.Internal.ClassFactory.CreateWellKnownType(Type type, Object[] args)
at Microsoft.UpdateServices.Internal.ClassFactory.CreateInstance(Type type, Object[] args)
at Microsoft.UpdateServices.Internal.BaseApi.UpdateServer.set_UserSelectedCulture(String value)
at Microsoft.UpdateServices.UI.AdminApiAccess.AdminApiTools.TrySetServerCulture(String culture)
at Microsoft.UpdateServices.UI.AdminApiAccess.AdminApiTools.SetServerCulture()
at Microsoft.UpdateServices.UI.AdminApiAccess.AdminApiTools..ctor(CultureInfo culture, IUpdateServer updateServer)
at Microsoft.UpdateServices.UI.SnapIn.Common.ServerTools..ctor(ServerSummaryScopeNode serverSummaryScopeNode, SnapInTools snapInTools, IUpdateServer updateServer)
at Microsoft.UpdateServices.UI.SnapIn.Scope.ServerSummaryScopeNode.ConnectToServer()
at Microsoft.UpdateServices.UI.SnapIn.Scope.ServerSummaryScopeNode.get_ServerTools()
Всему виной обновление KB3159706
Вот его описание https://support.microsoft.com/ru-ru/kb/3159706
В результате установки данного обновления и возникает описанная ошибка. Все лечится довольно просто. Найдите и удалите данное обновление и перезагрузите сервер. После перезагрузки WSUS будет работать как часики. Чтобы данный инцидент не повторился, отзовите данное обновление.
Самое печальное, что не смотря на то, что обновление вышло 1 мая 2016 года, оно до сих пор не отозвано разработчиком и продолжает распространяться, как следствие продолжают умирать сервера WSUS.