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


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

PowerShell 7.2 — это следующий выпуск Long Term Servicing (LTS) на основе .NET 6.0.

Ниже перечислены новые возможности, обновления и критические изменения в PowerShell 7.2.

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

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

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

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

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

Актуальные сведения о поддерживаемых операционных системах и жизненном цикле поддержки см. в статье Жизненный цикл поддержки 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 (по умолчанию) — разрешается использовать Центр обновления Майкрософт, автоматическое обновление или клиентский компонент Центра обновления Windows.
    • 0— не выбирайте автоматическое обновление Обновления майкрософт или Обновл. 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, позволяющий загружать сборки из машинного кода.

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

Улучшены варианты заполнения нажатием клавиши TAB.

В PowerShell 7.2 включено несколько улучшений в заполнении нажатием клавиши TAB. Эти изменения включают исправления ошибок и улучшают удобство использования.

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

Прогнозная технология IntelliSense в PSReadLine 2.1

В PSReadLine 2.1 появились API CommandPrediction, которые формируют платформу для предоставления прогнозов для завершения ввода в командной строке. 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 (запрос на вытягивание № 14652).

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

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