UsoClient — замена wuauclt


Windows 10 оказалась очень практичной системой. За несколько лет эксплуатации в корпоративной среде мы не имели с ней проблем. И расслабились :-) — как-то разом застряли кумулятивные обновления на всех системах.

По всей видимости через WSUS приехало некачественное обновление и попортило образы систем. В CBS.log на разных компьютерах ошибки на разные компоненты. Будто это не детерминированные компьютеры, а последствия взрыва гранаты — где как пришлось.

Попробовали вылечить несколько систем вручную с помощью sfc и dism. Несколько ошибок они исправили, но не все. Победить проблему удалось только утилитой SFCFix. Но это же не вариант лечить вручную сотни компьютеров, да ещё сторонней утилитой!

Открыли системам доступ в Интернет на сайты Windows Update. Dism сразу стал инициировать загрузку каких-то компонентов, но до конца всё так и не вылечил.

К счастью оказалось, что последние обновления всё-таки ставятся и проблема лечится автоматически: загрузка последних обновлений, пара установок с аварийным завершением (при этом в CBS.log видно исправление ошибок образа системы!) и перезагрузкой — и всё работает. (Иногда правда перезагрузка может зависать надолго на некоторых системах, но это терпимо.)

Попутно выяснилось, что привычная wuauclt утилита не работает. К тому же её можно было запускать только локально.

Если на Windows XP и Windows 7 приходилось из-за ограничений Windows Update клиента прибегать к некоторым ухищрениям, чтобы удаленно инициировать установку обновлений, то на Windows 10 было приятно открыть для себя утилиту UsoClient, которая работает через удаленное подключение PowerShell или PSExec.

С помощью неё можно не только иницировать поиск обновлений, но и их загрузку, установку и перезагрузку системы.

Список параметров от доброго человека:

  • StartScan Used To Start Scan
  • StartDownload Used to Start Download of Patches
  • StartInstall Used to Install Downloaded Patches
  • RefreshSettings Refresh Settings if any changes were made
  • StartInteractiveScan May ask for user input and/or open dialogues to show progress or report errors
  • RestartDevice Restart device to finish installation of updates
  • ScanInstallWait Combined Scan Download Install
  • ResumeUpdate Resume Update Installation On Boot

Не работают отчёты в WSUS 2019


После обновления до Windows Server 2019 перестали работать отчёты в WSUS.

Лечение простое.

  1. Удалить установленные MICROSOFT® REPORT VIEWER 2012 RUNTIME и Microsoft® System CLR Types for Microsoft® SQL Server® 2012
  2. Скачать по ссылкам их же и установить
    MICROSOFT® REPORT VIEWER 2012 RUNTIME
    Microsoft® System CLR Types for Microsoft® SQL Server® 2012

Не ставьте более новые версии — они не будут работать.

Лечение сервера WSUS методом ожидания


С утра запустил установку обновлений  на WSUS сервере. После перезагрузки сервер перестал получать отчеты от клиентов. В логе клиента Windows 7:


2018-06-13 16:54:47:422 456 20c0 PT WARNING: ReportEventBatch failure, error = 0x8024400E, soap client error = 7, soap error code = 400, HTTP status code = 200
2018-06-13 16:54:47:422 456 20c0 PT WARNING: SOAP Fault: 0x000190
2018-06-13 16:54:47:422 456 20c0 PT WARNING: faultstring:Server was unable to process request. ---> The type initializer for 'Microsoft.UpdateServices.Internal.Reporting.WebService' threw an exception. ---> Login failed for user 'NT AUTHORITY\NETWORK SERVICE'. Reason: Server is in script upgrade mode. Only administrator can connect at this time.
2018-06-13 16:54:47:422 456 20c0 PT WARNING: ErrorCode:(null)(0)
2018-06-13 16:54:47:422 456 20c0 PT WARNING: Message:(null)
2018-06-13 16:54:47:422 456 20c0 PT WARNING: Method:(null)
2018-06-13 16:54:47:422 456 20c0 PT WARNING: ID:(null)
2018-06-13 16:54:47:422 456 20c0 Report WARNING: Reporter failed to upload events with hr = 8024400e.

Смотрим на сервере WSUS в логе C:\Windows\WID\Log\Error.log:


2018-06-13 13:54:04.64 spid17s Starting up database 'SUSDB'.
2018-06-13 13:54:04.68 spid9s Starting up database 'model'.
2018-06-13 13:54:04.87 Logon Error: 18401, Severity: 14, State: 1.
2018-06-13 13:54:04.87 Logon Login failed for user 'NT AUTHORITY\NETWORK SERVICE'. 2018-06-13 13:54:04.64 spid17s Starting up database 'SUSDB'.
2018-06-13 13:54:04.68 spid9s Starting up database 'model'.
2018-06-13 13:54:04.87 Logon Error: 18401, Severity: 14, State: 1.
2018-06-13 13:54:04.87 Logon Login failed for user 'NT AUTHORITY\NETWORK SERVICE'. Reason: Server is in script upgrade mode. Only administrator can connect at this time. [CLIENT: <named pipe>] Only administrator can connect at this time. [CLIENT: <named pipe>]

«Reason: Server is in script upgrade mode.» — и что с этим делать? Ответ — ничего! Точнее просто ждать. На моём сервере база обновилась и перешла в рабочее состояние через 5 часов.

Решил записать эту напоминалку, т.к. пару лет назад такое уже было, а вспомнить, как лечилось не смог. Ситауция проявилась только из-за утреннего  ручного обновления сервера: обычно он обновляется ночью и к началу рабочего дня уже находится в рабочем состоянии.