Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
PowerShell 7.3 — следующий стабильный выпуск, созданный на платформе .NET 7.0.
PowerShell 7.3 включает следующие функции, обновления и критические изменения.
Серьезные изменения и улучшения
- В этом выпуске API Windows были обновлены или удалены для соответствия требованиям, что означает, что PowerShell 7.3 не работает в Windows 7. Хотя Windows 7 больше не поддерживается, предыдущие сборки могут работать в Windows 7.
- PowerShell Direct для Hyper-V поддерживается только в Windows 10 версии 1809 и выше.
-
Test-Connection
не работает из-за намеренного критического изменения в .NET 7. Эта проблема отслеживается под номером #17018. - Добавьте
clean
блок в блок скрипта в качестве однорангового узлаbegin
process
иend
разрешить простую очистку ресурсов (No 15177) - Изменить значение по умолчанию для
$PSStyle.OutputRendering
на хост - Сделать так, чтобы
Out-String
иOut-File
сохраняли строковые входные данные без изменений (#17455) - Переместите определение данных типа System.Security.AccessControl.ObjectSecurity в модуль Microsoft.PowerShell.Security (#16355) (спасибо)@iSazonov!)
- Перед применением этого изменения не требуется явно импортировать модуль Microsoft.PowerShell.Security, чтобы использовать свойства кода, определенные для экземпляра System.Security.AccessControl.ObjectSecurity.
- После применения этого изменения необходимо явно импортировать модуль Microsoft.PowerShell.Security, чтобы использовать свойства и методы кода.
Улучшения автозаполнения с помощью клавиши TAB
- PowerShell 7.3 включает PSReadLine 2.2.6, что позволяет прогнозировать IntelliSense по умолчанию. Дополнительные сведения см. в about_PSReadLine.
- Исправлено завершение нажатием клавиши TAB в блоке скрипта для
ValidateScriptAttribute
(#14550) (спасибо)@MartinGC94!) - Добавлено завершение вкладки для меток цикла после
break
/continue
(#16438) (спасибо)@MartinGC94!) - Улучшение завершения хэш-таблицы в нескольких сценариях (#16498) (Спасибо)@MartinGC94!)
- Сплаттинг параметров
- Параметр Arguments для
Invoke-CimMethod
- Параметр FilterHashtable для
Get-WinEvent
- Параметр Property для командлетов CIM
- Удаление дублей из сценариев завершения для участников
- Поддержка косой черты в сетевом пути (UNC path) (#17111) (Спасибо@sba923!))
- Улучшение автозаполнения элементов (#16504) (Спасибо @MartinGC94!)
- Приоритет завершения ValidateSet по сравнению с перечислениями для параметров (#15257) (Спасибо)@MartinGC94!)
- Добавление поддержки вывода типов для универсальных методов с параметрами типа (#16951) (спасибо)@MartinGC94!)
- Улучшение вывода типов и завершения (No 16963) (спасибо)@MartinGC94!)
- Позволяет отображать методы в результатах завершения для
ForEach-Object -MemberName
. - Предотвращает завершение выражений, возвращающих void, например
([void](""))
. - Разрешает отображение конструкторов классов, отличных от используемых по умолчанию, если завершение класса основано на AST.
- Позволяет отображать методы в результатах завершения для
- Улучшение вывода типов для
$_
(No 17716) (спасибо)@MartinGC94!) - Исправление вывода типов для ICollection (#17752) (спасибо)@MartinGC94!)
- Запретить удаление фигурных скобок при завершении переменных (#17751) (Спасибо)@MartinGC94!)
- Добавление завершения для выражений индекса для словарей (#17619) (спасибо)@MartinGC94!)
- Исправить завершение типа для маркеров атрибутов (#17484) (спасибо)@MartinGC94!)
- Улучшение завершения динамической вкладки параметров (#17661) (спасибо)@MartinGC94!)
- Избегайте привязки позиционных параметров при завершении параметра перед значением (#17693) (Спасибо @MartinGC94!))
Улучшена обработка ошибок.
- Правильно задать
$?
для выражения команды с перенаправлениями (#16046) - Исправлена ошибка приведения при использовании
$PSNativeCommandUseErrorActionPreference
(#15993) - Сделайте так, чтобы обработка ошибок в собственной команде при необходимости учитывала
ErrorActionPreference
(#15897) - Укажите путь к исполняемому файлу как
TargetObject
для ошибки с кодом выхода, отличным от нуля #16108 (спасибо @rkeithhill!))
Улучшения сеансов и технологии удаленного взаимодействия
- Добавьте
-Options
к командам PSRP через SSH, чтобы разрешить передачу параметров OpenSSH напрямую (#12802) Спасибо @BrannenGH!) - Добавьте параметр
-ConfigurationFile
вpwsh
, чтобы разрешить запуск нового процесса с конфигурацией сеанса, определенной в файле.pssc
(#17447). - Добавление поддержки использования
New-PSSessionConfigurationFile
на платформах, отличных от Windows (#17447)
Обновлены командлеты
- Добавить
-HttpVersion
параметр в веб-командлеты (#15853) (спасибо)@hayhay27!) - Добавление поддержки веб-командлетов для открытых входных тегов (#16193) (спасибо)@farmerau!)
- Исправление
ConvertTo-Json -Depth
, позволяющее максимально разрешить 100 (No 16197) (спасибо)@KevRitchie!) - Улучшение обработки переменных при вызове
Invoke-Command
$Using:
с помощью выражения (#16113) (спасибо)@dwtaber!) - Добавьте
-StrictMode
кInvoke-Command
, чтобы разрешить указание строгого режима при локальном вызове команды (#16545) (Спасибо @Thomas-Yu!)) - Добавьте блок
clean
в блок скрипта как равноправный узел кbegin
,process
иend
, чтобы обеспечить простую очистку ресурсов (#15177) - Добавьте
-Amended
переключатель кGet-CimClass
командлету (#17477) (Спасибо@iSazonov) - Изменено
ConvertFrom-Json -AsHashtable
на использование упорядоченной хэш-таблицы (#17405) - Удалены ANSI escape-последовательности в строках перед отправкой в
Out-GridView
(#17664) - Добавлен параметр Milliseconds в
New-TimeSpan
(#17621) (спасибо @NoMoreFood!)) - Отображение необязательных параметров при отображении определений методов и перегрузки (No 13799) (спасибо)@eugenesmlv!)
- Разрешить выполнение команд, даже если текущий рабочий каталог больше не существует (#17579)
- Добавление поддержки HTTPS с
Set-AuthenticodeSignature -TimeStampServer
помощью #16134 (спасибо) @Ryan-Hutchison-USAF!) - Отображение десятичных чисел в таблице с использованием текущей культуры (#17650)
- Добавление акселератора типов, упорядоченного для OrderedDictionary (No 17804) (благодарим@fflaten!)
- Добавьте
find.exe
к устаревшему поведению привязки аргументов для Windows (#17715) - Добавьте
-NoProfileLoadTime
переключатель в pwsh (#17535) (спасибо @rkeithhill!))
Полный список изменений см. в журнале изменений в репозитории GitHub.
Экспериментальные функции
В PowerShell 7.3 следующие экспериментальные функции стали основными:
PSAnsiRenderingFileInfo
— Эта функция добавляет$PSStyle.FileInfo
элемент и включает цвет определенных типов файлов.PSCleanBlock
— добавляетclean
блок в блок скрипта на одном уровне сbegin
,process
иend
, чтобы позволить легкую очистку ресурсов.PSAMSIMethodInvocationLogging
— расширяет данные, отправленные в AMSI для проверки, чтобы включить все вызовы элементов метода .NET.PSNativeCommandArgumentPassing — PowerShell теперь использует свойство ArgumentList объекта StartProcessInfo, а не старый механизм восстановления строки при вызове собственного исполняемого файла.
PowerShell 7.3.1 добавляет
sqlcmd.exe
в список собственных команд Windows, использующих стиль передачи аргументовLegacy
.PSExec
— добавляет новыйSwitch-Process
командлет (псевдонимexec
) для обеспеченияexec
совместимости для систем, отличных от Windows.PowerShell 7.3.1 изменил псевдоним
exec
, превратив его в функцию, которая оборачиваетSwitch-Process
. Функция позволяет передавать параметры в системную команду, которые могут быть ошибочно привязаны к параметру WithCommand.
В PowerShell 7.3 появились следующие экспериментальные функции:
-
PSNativeCommandErrorActionPreference — добавляет переменную
$PSNativeCommandUseErrorActionPreference
, чтобы ошибки, вызванные собственными командами, считались ошибками PowerShell.
PowerShell 7.3 удалил следующие экспериментальные функции:
-
PSNativePSPathResolution
Экспериментальная функция больше не поддерживается. -
PSStrictModeAssignment
Экспериментальная функция больше не поддерживается.
Дополнительные сведения см. в статье об использовании экспериментальных функций.
PowerShell