Эволюция PowerShell 6.0-7.0. Выпуски PowerShell 7.x

10 октября 2023
В 2018 г. появилось программное обеспечение PowerShell Core 6.0 как кроссплатформенный инструмент автоматизации для операционных систем Windows, Linux и MacOS. PowerShell Core имеет открытый исходный код и работает на платформе .NET Core 2.x, в отличии от предыдущих версий, работающих на .NET Framework.
В статье представлен обзор, как изменилось использование PowerShell с версии 6 до последнего обновления 7.x. 

Вступление

Переход на PowerShell Core требовался для обеспечения кроссплатформенности продукта, но при этом привел к снижению функциональности, стабильности и надежности. Кроме того, пользователи столкнулись с проблемами совместимости с существующими модулями Windows PowerShell.

  • Не поддерживаются уже привычные решения:
  • Возможность параллельного выполнения команд с помощью workflows.
  • Нет поддержки WMI v1 и соответственно не работают командлеты Get-WmiObject, Invoke-WmiMethod, Register-WmiEvent и т.д.
  • Исчезли командлеты связанные с графическим отображением такие, как Out-GridView, Show-Command и параметр -ShowWindow
  • Не работают модули ActiveDirectory и DnsClient.
 

7.0

 В начале 2020 г. компания Microsoft выпустила PowerShell 7.0. В этом программном обеспечении удалось решить большую часть проблем 6-ой версии. 7-ая версия основана на .NET Core 3.x, где поддерживается множество API .NET Framework, обеспечивая обратную совместимость с более 90% существующих модулей Windows PowerShell. Теперь поддерживаются модули ActiveDirectory, DnsClient, DnsServer, BitLocker, BranchCache, Defender, Hyper-V и многие другие, полный список которых приводится на сайте Microsoft. 
Вернулись командлеты требующие графическую функциональность, такие как Out-GridView и Show-Command. Повысилась стабильность и производительность.

В PowerShell 7.0 появились новые функции, в том числе:

  • параллелизация конвейера с помощью ForEach-Object -Parallel;
  • новые операторы:
- тернарный оператор a ? b : c;
- операторы сцепления конвейеров || и &&;
- условные операторы со значением NULL ?? и ??=;

  • упрощенное динамическое представление ошибок и командлет Get-Error для более легкого анализа ошибок;
  • автоматические уведомления о новых версиях;
  • возможность вызывать ресурсы DSC непосредственно из PowerShell 7.
 Жизненый цикл  PowerShell 7.0 теперь соответствует политике жизненного цикла поддержки .NET Core и включает выпуски Long Term Service и non-Long Term Service.

 

7.1

Осенью 2020 г. вышла общедоступная версия PowerShell 7.1, основанная на  .NET 5.0.
В этой версии появился ряд новых функций и обновлений:

  • PSReadLine 2.1.0 с прогнозной технологией IntelliSense
  • Версия PowerShell 7.1 опубликована в Microsoft Store.
  • Пакеты установщика обновлены для новых версий ОС с поддержкой ARM64.
  • 2 экспериментальные функции PSNullConditionalOperators и PSUnixFileStat стали основными.
  • Добавлены 4 экспериментальные функции Microsoft.PowerShell.Utility.PSManageBreakpointsInRunspace, PSNativePSPathResolution,  PSCultureInvariantReplaceOperator и PSSubsystemPluginModel.
 

7.2

PowerShell 7.2 — это следующий выпуск Long Term Servicing (LTS) на основе .NET 6.0.
Новые возможности, обновления и критические изменения:

  • Добавлены новые универсальные пакеты установщика для большинства поддерживаемых дистрибутивов Linux.
  • Включена поддержка Центра обновления Майкрософт в Windows.
  • Добавлены две новые экспериментальные возможности.
- Улучшена поддержка передачи аргументов собственных команд.
- Включена поддержка цвета в ANSI для FileInfo.

  • Улучшены варианты заполнения нажатием клавиши TAB.
  • Семь экспериментальных функций стали основными, одна удалена.
  • Платформа DSC отделена от PowerShell 7, чтобы обеспечить возможность внесения будущих улучшений.
  • Несколько критических изменений для повышения удобства использования.
 

7.3

В начале 2023 г. появилась версия PowerShell 7.3, основанная на  .NET 7.0.

Некоторые критические изменения в новой версии:

  • PowerShell 7.3 не работает в Windows 7. 
  • PowerShell Direct для Hyper-V поддерживается только в Windows 10, версия 1809 и более поздних версиях.
  • Test-Connection не работает из-за намеренного критического изменения в .NET 7 
  • Перемещение определения данных типа System.Security.AccessControl.ObjectSecurity в модуль Microsoft.PowerShell.Security. 
  • Дополнительные улучшения заполнения нажатием клавиши TAB.
  • Улучшена обработка ошибок.
  • Улучшены сеансы и удаленное взаимодействие.
  • Обновлены ряд командлетов.
  • Добавлены новые экспериментальные функции.
Автор статьи
Александр Субботин
Преподаватель:
УЦ АйТи Клауд по направлению системное администрирование, сетевые технологии, безопасность сетей

Курсы к статье

Затрудняетесь
с выбором курса?

Оставьте заявку на консультацию

Отправляя заявку, вы соглашаетесь с условиями обработки персональных данных

Хотите преподавать в АйТи Клауд?

Если вы имеете компетенции и хотите работать тренером курсов в АйТи Клауд - оставьте ваши данные, мы свяжемся с вами!