PowerShell Core 6.1 Preview4


Вышла новая предварительная версия PowerShell 6.1 Preview4.

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

RTM версия ожидается через несколько недель в августе.

На что стоит обратить внимание?

1. Add support to experimental features
https://github.com/PowerShell/PowerShell/pull/7242

Этот механизм позволит реализовывать альтернативные возможности в предварительных версиях. Пользователи смогут выключать и выключать их на свое усмотрение для тестирования.

2. Add ThreadJob module package and tests
https://github.com/PowerShell/PowerShell/pull/7169

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

3. Enable UseShellExecute on all platforms
https://github.com/PowerShell/PowerShell/pull/7198

Теперь на Unix системах Invoke-Item будет работать как на Windows системах и запускать приложения в зависимости от расширения файла. Так Invoke-Item file.txt запустит текстовый редактор.

Остальное смотрите в Release Notes — ссылка выше.

Реклама

Remote Desktop — медленное подключение


В Windows Server 2012 и Windows Server 2012 R2 есть небольшая, но неприятная, проблема, когда при подключении по RDP вы видите черный экран некоторое время, а в логе появляется событие Event ID 20499 «Remote Desktop Services has taken too long to load the user configuration from server …».

Лечение описано в статье https://support.microsoft.com/en-us/help/4021856/sbsl-issue-when-you-create-an-rdp-connection-to-windows-server . Собственно нужно добавить в реестр ключ fQueryUserConfigFromLocalMachine со значением 1.

В Windows Server 2016/2019 проблема уже исправлена, и ключ в реестр добавлять не нужно.

 

Модуль ActiveDirectory работает в PowerShell Core


Хорошая новость — в последних сборках Windows 10 Preview компонент RSAT содержит модуль ActiveDirectory совместимый с PowerShell Core!

Болеетого в PowerShell Core добавлена опция CompatiblePSEdition, которая позволяет распознавать модули совместимые с  PowerShell Core. Сейчас это будет использоваться для модулей входящих в состав Windows (ставятся в C:\Windows\System32\WindowsPowerShell\v1.0\Modules). MSFT сейчас активно работает над портированием этих модулей.

Exchange Server 2013 Extended Support


На днях вышло последнее кумулятивное обновление для Exchange Server 2013 — CU21. Exchange Server 2013 переходит в фазу расширенной поддержки с 19 сентября 2018 (хотя фактически уже сейчас). Это означает, что обновлений функциональности (кумулятивных обновлений) больше выпускаться не будет — только обновления безопасности.  Хотя Майкрософт говорит, что может выпускать ещё и обновления для совместимости с Office 365.

Полезные ссылки:

  1. https://blogs.technet.microsoft.com/exchange/2018/06/19/released-june-2018-quarterly-exchange-updates/
  2. https://blogs.technet.microsoft.com/exchange/2018/04/10/exchange-server-2013-enters-extended-support-lifecycle-phase/

Лечение сервера 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. Присоединиться к проекту вы можете уже сегодня.