Новые возможности 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).
PowerShell