Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
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блок в блок скрипта в качестве однорангового узлаbeginprocessи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