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 — ссылка выше.

Реклама

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


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

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

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! — это само по себе принесет множество улучшений в производительности.

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)