Лечение сервера 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 часов.

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

Реклама

PowerShell Core 6.1 Preview3


Вышел PowerShell Core 6.1 Preview3.

https://github.com/PowerShell/PowerShell/releases

Что появилось нового и хорошего? Теперь PowerShell Core работает на .Net Core 2.1. Это дает два новых преимущества, о которых я уже писал ранее. Во-первых, все работает быстрее из-за множества оптимизаций в .Net Core 2.1. Во-вторых, теперь вместо библиотеки curl на Unix системах используется родная реализация HttpClient. Это исключило конфликты с версиями curl и добавило быстродействия.

Что еще?

  1. Для предварительных версий изменились имена пакетов и имена исполнимых файлов, которые теперь имеют префикс preview.
  2. Доступен окончательный вариант обновленного командлета Add-Type. Из него только удалили поддержку VisualBasic, чтобы уменьшить размер дистрибутива.
  3. Теперь работает подстановка (IntellySense) для хешей.
  4. Исправлен Set-Date на Unix.
  5. Убрана функция more в пользу стандартных пейджеров (#6059).
  6. Добавлен Windows Compatibility Pack 2.0.0. Это позволит вернуть некоторые возможности, которые еще не портированы на Unix. В частности это использует WindowsCompatibility модуль.
  7. Добавлена поддержка Ubuntu 17.10 и 18.04 (#6769).
  8. Теперь используем PSReadLine 2.0.0-beta2. Пробуйте и пишите о багах.
  9. И еще много чего — смотрите Release Notes.

Немного о том что будет в PowerShell Core 6.1


Как я уже писал, PowerShell Core 6.1 будет работать на основе .Net Core 2.1. Это уже точно. Команда разработчиков .Net Core сделала много усовершенствований, в результате которых все приложения работают быстрее. PowerShell Core 6.1 стал таже быстрее от 5 до 20% в некоторых тестах. Плюс добавлено несколько улучшений в сам PowerShell Core, что сделать его быстрее.

Вэб командлеты теперь будут работать на основе новой реализации HTTP Client в .Net Core. В результате их скорость возрастёт. Также убрана зависимость от библиотеки curl на Unix системах. На самом деле убрана зависимость ещё от нескольких библиотек, что упростит установку на многих версиях Unix.

И наконец MSFT объявила, что целый ряд команд активно работают над портированием своих модулей на PowerShell Core. Полный список не озвучен. Видимо сами еще не знают, что успеют сделать. Ожидаем приятных новостей. Когда? По плану в конце июня.

Также команда MSFT PowerShell активно работает над Windows PowerShell Compatibility Pack. Этот модуль призван позволить запускать под PowerShell Core всё, что пока не совместимо с ним. Этот проект вышел из стадии анонса и активно развивается. Уже к концу этой недели вы сможете попробовать его в деле с последними сборками PowerShell Core. Присоединиться к проекту вы можете уже сегодня.

PowerShell Core стал быстрее


Производительность PowerShell Core выросла на 18% после перехода на .Net Core 2.1 RC1.

Именно настолько стал быстрее выполняться наш пакет тестов в репозитории.

Вы сможете ощутить это на своих скриптах уже скоро — ожидаем Preview3 в ближайшее время. Скорее всего это уже будет на базе .Net Core 2.1. RTM.

Помимо пассивного увеличения производительности за счет перехода на .Net Core 2.1 стоит ожидать увеличения производительности за счет использования новых возможностей, которые появились в C# 7.2 и .Net Core 2.1. Об этом я писал в предыдущих постах. Если вы знаете сценарии, где PowerShell слишком медленный и прожорливый, то пишите, открывайте обсуждения в репозитории.

PowerShell Core 6.1 Preview2


Как-то незаметно вышел PowerShell Core 6.1 Preview2.

Самое интересное:

Add the parameter -Not to Where-Object (#6464)

Make LanguagePrimitive.GetEnumerable treat DataTable as Enumerable (#6511)

Fix formatting of tables where headers span multiple rows (#6504)

Add -Resume Feature to WebCmdlets (#6447)

Add ported Test-Connection cmdlet (#5328)

Add -AsArray parameter to ConvertoTo-Json command

Add Test-Json cmdlet (NJsonSchema) (#5229)

Enable PowerShell.sln to work in VisualStudio (#6546) (Полностью компиляция всё еще не работает)

Также сделаны некоторые оптимизации в коде для повышения производительности и более экономного использования ресурсов.

Ожидаем выхода Preview3. Таv уже есть много интересного и исправленного. И мы будем определнно уже на .Net Core 2.1! — это само по себе принесет множество улучшений в производительности.

Неприятное обновление безопасности в CredSSP и RDP


Еще в марте вышло обновление безопасности для CredSSP, которое закрывало возможность удаленного выполнения кода. Такие дыры в безопасности особенно опасны и должны закрываться максимально быстро.

RDP это касается в том случае, если включен режим NLA. А это рекомендуемый режим повышенной безопасности, и скорее всего он у вас включен.

CredSSP используется не только в RDP, так что другие приложения также могут быть подвержены это проблеме.

И так в мае 2018 вышел уже третий вариант этого обновления безопасности. Нужно патчить и клиент, и сервер. И перезагрузиться. Неприятность в том, что последнее обновление за май 2018 года изменяет умолчания с Vulnerable на Mitigated, чтобы вынудить администраторов установить обновление безопасности: если вы пропатчили клиент, то теряете доступ к непропатченному серверу. Чтобы этого избежать нужно выставить на клиенте в реестре значение ключа AllowEncryptionOracle в 2 (Vulnerable).

Можно предположить, что через месяц умолчание будет изменено на ещё более жесткое Mitigated на Force updated clients.

Как бы то ни было мы вынуждены будем вспоминать об этом обновлении ещё много лет всякий раз, как мы не сможем подключиться по RDP к какому-то серверу.

CredSSP updates for CVE-2018-0886

PowerShell Core 6.1 Preview1


Уже пару недель как вышла первая предварительная версия PowerShell Core 6.1.

Приглашаю всех попробовать её в деле, если вы ещё не сделали это. Конечно это лучше делать осмысленно: погонять свои скрипты и поискать баги, попробовать новые фичи.

Список изменений огромный https://github.com/PowerShell/PowerShell/releases/tag/v6.1.0-preview.1

Самое примечательное на мой взгляд:

Add ForEach and Where methods to PSCustomobject (#5756)

Add Count and Length properties to PSCustomobject (#5745)

Add -settingsfile to pwsh to support loading a custom powershell config file. (#5920)

Enable conversions from PSMethod to Delegate (#5287)

Add lambda support to -replace operator (#6029)

Set pipeline thread stack size to 10MB (#6224)

Множество дополнений в Web Cmdlets

Add standard deviation implementation on Measure-Object (#6238)