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