Поделиться через


Новые возможности PowerShell 7.2

PowerShell 7.2 — это следующий выпуск долгосрочного обслуживания (LTS) на платформе .NET 6.0.

PowerShell 7.2 включает следующие функции, обновления и критические изменения.

  • Новые пакеты универсального установщика для большинства поддерживаемых дистрибутивов Linux
  • Поддержка обновлений Microsoft в Windows
  • 2 новые экспериментальные функции
    • Улучшенная поддержка передачи аргументов встроенной команды
    • Поддержка цветового оформления ANSI FileInfo
  • Улучшенные автозавершения с помощью клавиши Tab
  • PSReadLine 2.1 с прогнозируемым IntelliSense
  • 7 экспериментальных функций переведены в основной пользование, и 1 удалена
  • Разделение DSC от PowerShell 7, чтобы обеспечить будущие улучшения
  • Внесены несколько разрушающих изменений для улучшения удобства использования

Полный список изменений см. в журнале изменений в репозитории GitHub.

Обновления установки

Проверьте инструкции по установке для предпочитаемой операционной системы:

Кроме того, PowerShell 7.2 поддерживает версии ARM64 Windows и macOS и ARM32 и ARM64 Debian и Ubuntu.

Сведения о up-to-date о поддерживаемых операционных системах и жизненном цикле поддержки см. в жизненном цикле поддержки PowerShell.

Новые пакеты универсальной установки для дистрибутивов Linux

Ранее мы создали отдельные пакеты установщика для каждой поддерживаемой версии CentOS, RHEL, Debian и Ubuntu. Универсальный пакет установщика объединяет восемь разных пакетов в один, что упрощает установку в Linux. Универсальный пакет устанавливает необходимые зависимости для целевого распространения и создает изменения для конкретной платформы для работы PowerShell.

Поддержка обновлений Майкрософт для Windows

PowerShell 7.2 добавляет поддержку Центра обновления Майкрософт. При включении этой функции вы получите последние обновления PowerShell 7 в традиционном потоке управления Центра обновления Windows (WU), независимо от того, используется ли центр обновления Windows для бизнеса, WSUS, SCCM или интерактивное диалоговое окно WU в параметрах.

Пакет MSI PowerShell 7.2 включает следующие параметры командной строки:

  • USE_MU. Это свойство имеет два возможных значения:
    • 1 (по умолчанию) — выбирает обновление с помощью Центра обновления Майкрософт или WSUS.
    • 0 — не выбирайте обновление с помощью Центра обновления Майкрософт или WSUS
  • ENABLE_MU
    • 1 (по умолчанию) — выбирает использование Microsoft Update, автоматического обновления или Центра обновления Windows Майкрософт
    • 0 - не выбирайте использование Центра обновления Microsoft, автоматических обновлений или Центра обновления Windows

Экспериментальные функции

Следующие экспериментальные функции теперь являются основными функциями в этом выпуске:

  • Microsoft.PowerShell.Utility.PSImportPSDataFileSkipLimitCheck — см. Import-PowerShellDataFile
  • Microsoft.PowerShell.Utility.PSManageBreakpointsInRunspace
  • PSAnsiRendering — см. about_ANSI_Terminals
  • PSAnsiProgress — см. about_ANSI_Terminals
  • PSCultureInvariantReplaceOperator
  • PSNotApplyErrorActionToStderr
  • PSUnixFileStat

В этом выпуске добавлена следующая экспериментальная функция:

  • PSNativeCommandArgumentPassing. Если эта экспериментальная функция включена, PowerShell использует свойство ArgumentList объекта StartProcessInfo, а не наш текущий механизм восстановления строки при вызове собственного исполняемого файла. Эта функция добавляет новую автоматическую переменную $PSNativeCommandArgumentPassing, которая позволяет выбрать поведение во время выполнения.

  • PSAnsiRenderingFileInfo — разрешить настройку цвета ANSI для информации о файле.

  • PSLoadAssemblyFromNativeCode — предоставляет API, позволяющий загрузку сборок из нативного кода.

Дополнительные сведения об экспериментальных функциях см. в разделе Использование экспериментальных функций.

Улучшенные завершения вкладок

PowerShell 7.2 включает несколько улучшений завершения вкладок. К этим изменениям относятся исправления ошибок и повышение удобства использования.

  • Исправление завершения вкладки для нелокализованных разделов о* (No 15265) (спасибо @MartinGC94)
  • Исправление сложений, обрабатываемых как позиционный параметр в завершениях (No 14623) (благодарим @MartinGC94)
  • Добавление завершений для ключевых слов справки на основе комментариев (No 15337) (благодарим @MartinGC94)
  • Добавление завершения для инструкций "Требуется" (No 14596) (благодарим @MartinGC94)
  • Добавлено завершение вкладки для параметра View командлетов Format-* (No 14513) (спасибо @iSazonov)

PSReadLine 2.1 Predictive IntelliSense

PSReadLine 2.1 представил CommandPrediction API, которые создают основу для предоставления прогнозов завершения командной строки. API позволяет пользователям обнаруживать, изменять и выполнять полные команды на основе сопоставления прогнозов из журнала пользователя.

Прогнозная функция IntelliSense отключена по умолчанию. Чтобы включить прогнозы, выполните следующую команду:

Set-PSReadLineOption -PredictionSource History

Разделение DSC от PowerShell 7 для внедрения будущих улучшений

Модуль PSDesiredStateConfiguration был удален из пакета PowerShell 7.2 и теперь публикуется в коллекции PowerShell. Это позволяет модулю PSDesiredStateConfiguration разрабатываться независимо от PowerShell, а пользователи могут смешивать и сопоставлять версии PowerShell и PSDesiredStateConfiguration для своей среды. Чтобы установить PSDesiredStateConfiguration 2.0.5 из галереи PowerShell:

Install-Module -Name PSDesiredStateConfiguration -Repository PSGallery -MaximumVersion 2.99

Важный

Не забудьте включить параметр MaximumVersion или установить версию 3 (или выше) PSDesireStateConfiguration, содержащую значительные различия.

Обновления двигателя

  • Добавление функции LoadAssemblyFromNativeMemory для загрузки сборок в память из хоста PowerShell от awakecoding · Pull Request #14652

Критические изменения и улучшения

  • PsDesiredStateConfiguration был удален из пакета PowerShell 7.2
  • Сделать пакеты deb и RPM для PowerShell на Linux универсальными (#15109)
  • Экспериментальная функция PSNativeCommandArgumentPassing: использование ArgumentList для вызова собственного исполняемого файла (#14692)
  • Убедитесь, что для всех выходных данных из командлетов скриптов задано -PipelineVariable (#12766)
  • Выдать предупреждение, если ConvertTo-Json превышает значение -Depth (#13692)
  • Удалите псевдоним D коммутатора -Directory CL-General #15171
  • Улучшение обнаружения изменяемых типов значений (#12495)
  • Ограничение New-Object в режиме NoLanguage в режиме блокировки (No 14140)
  • Принудительное применение конфигурации запрета AppLocker перед конфигурацией обхода политики выполнения (#15035)
  • Измените FileSystemInfo.Target с CodeProperty на AliasProperty, указывающий на FileSystemInfo.LinkTarget (No 16165)