Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Релиз PowerShell Core 6.2 был сосредоточен на повышении производительности, исправлении ошибок и уменьшении cmdlet и языковых улучшений, которые улучшают качество. Чтобы увидеть полный список улучшений, ознакомьтесь с нашими подробными списками изменений на GitHub.
Экспериментальные функции
Ранее мы поддерживали Experimental Features. В релизе 6.2 у нас есть четыре экспериментальных функции для опробования. Пожалуйста, оставляйте отзывы, чтобы мы могли внести улучшения и решить, стоит ли продвигать функцию до массового статуса.
Используйте Get-ExperimentalFeature список доступных экспериментальных функций. Вы можете включить или отключить эти функции с помощью Enable-ExperimentalFeature и Disable-ExperimentalFeature.
Рекомендации Command Not Found
Эта функция использует нечеткое сопоставление для поиска предложений команд или cmdlet, которые вы могли ошибочно ввести.
Enable-ExperimentalFeature -Name PSCommandNotFoundSuggestion
Example
В этом примере ошибочно написанное название cmdlet нечетко совпадает с несколькими вариантами от наиболее вероятных до наименее вероятных.
Get-Commnd
Get-Commnd : The term 'Get-Commnd' is not recognized as the name of a cmdlet, function, script file,
or operable program. Check the spelling of the name, or if a path was included, verify that the path
is correct and try again.
At line:1 char:1
+ Get-Commnd
+ ~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (Get-Commnd:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Suggestion [4,General]: The most similar commands are: Get-Command, Get-Content, Get-Job, Get-Module,
Get-Event, Get-Host, Get-Member, Get-Item, Set-Content.
Неявное удалённое партиирование
При использовании неявного удаления в конвейере PowerShell рассматривает каждую команду в конвейере независимо. Объекты многократно сериализируются между de-serialized клиентом и удалённой системой во время выполнения конвейера.
С помощью этой функции PowerShell анализирует конвейер, чтобы определить, безопасна ли команда для выполнения и существует ли она на целевой системе. Когда это верно, PowerShell запускает весь конвейер удалённо и сериализирует только и de-serializes возвращает результаты клиенту.
Enable-ExperimentalFeature -Name PSImplicitRemotingBatching
Реальный тест Get-Process | Sort-Object поверх локального хозяева уменьшается с 10-15 секунд до 20-30 миллисекунд. Функция должна быть включена только на клиенте. Изменения на сервере не требуются.
Временный драйв
Enable-ExperimentalFeature -Name PSTempDrive
Если вы используете PowerShell Core на разных операционных системах, вы обнаружите, что переменная окружения для поиска временной папки отличается на Windows, macOS и Linux! С этой функцией вы получаете PSDrive , Temp: который автоматически назначается с временной папкой операционной системы, которую вы используете.
Example
PS> "Hello World!" > Temp:/hello.txt
PS> Get-Content Temp:/hello.txt
Hello World!
Имейте в виду, что нативные команды файлов (например ls , на Linux) не знают о PSDrives и не увидят этот Temp: диск.
Расширение сокращений
Ожидается, что cmdlets PowerShell будут иметь описательные существительные. Это приводит к длинным названиям, которые сложнее вводить. Эта функция позволяет просто ввести заглавные символы cmdlet и использовать заполнение вкладок для поиска совпадения.
Enable-ExperimentalFeature -Name PSUseAbbreviationExpansion
Example
PS> i-arsavsf
Если вы нажмёте вкладку и установите модуль Azure PowerShell Az , автоматическое завершение будет следующее:
PS> Import-AzRecoveryServicesAsrVaultSettingsFile
Замечание
Эта функция предназначена для интерактивного использования. Сокращённые формы cmdlet нельзя выполнять. Эта функция не заменяет псевдонимы.
Разрушающие изменения
- Исправьте
-NoEnumerateповедениеWrite-Outputв соответствии с Windows PowerShell. (#9069) - Сделайте
Join-String -InputObject 1,2,3результат равным1,2,3 | Join-Stringрезультату (#8611) (Спасибо @sethvs!) - Добавить
-StableиSort-Objectсвязанные тесты (#7862) (Спасибо @KirkMunro!) - Улучшить
Start-Sleepcmdlet для приема дробных секунд (#8537) (Спасибо @Prototyyppi!) - Измените хэш-таблицу, чтобы использовать OrdinalIgnoreCase
case-insensitiveво всех культурах (#8566) - Исправьте LiteralPath
Import-Csvдля связи сGet-ChildItemвыводом (#8277) (Спасибо @iSazonov!) - Больше не пропускает столбец без названия, если в (#7899) используется
Import-Csvразделитель двойных кавычок (Спасибо @Topping!) -
Get-ExperimentalFeatureБольше нет-ListAvailableSwitch (#8318) - Параметр отладки теперь установлен
$DebugPreferenceна Continue вместо Inquire (#8195) (Спасибо @KirkMunro!) - Honor
-OutputFormat, если указано в неинтерактивной, перенаправленной, закодированной команде, используемой с pwsh (#8115) - Загрузите сборку с базового пути модуля перед попыткой загрузки с GAC (#8073)
- Удалить тильду из пакетов предпросмотра Linux (#8244)
- Переместить обработку
-WorkingDirectoryпрофилей до обработки (#8079) - Не добавляйте
PATHEXTпеременную среды в Unix (#7697) (Спасибо @iSazonov!)
Известные проблемы
- Удалённый доступ на платформах Windows IoT ARM вызывает проблему загрузки модулей. См. (#8053)
Общие обновления и исправления
- Включить заполнение вкладок без регистра для файлов и папок в файловой системе, чувствительной к регистру (#8128)
- Сделайте PSVersionInfo.PSVersion и PSVersionInfo.PSEdition публичными (#8054) (Спасибо @KirkMunro!)
- Add type inference for
$_/$PSItemincatch{ }blocks (#8020) (Спасибо @vexx32!) - Исправьте выведение типа вызова статического метода (#8018) (Спасибо @SeeminglyScience!)
- Создайте выводные типы для
Select-Object,Group-Object, PSObject и Hashtable (#7231) (Спасибо @powercode!) - Поддержка метода вызова с
ByRef-likeпараметрами типа (#7721) - Рассмотрите случай, когда путь модуля Windows PowerShell уже находится в PSModulePath среды (#7727)
- Включите
SecureStringcmdlets для не-Windows, сохраняя обычный текст (#9199) - Улучшение сообщения об ошибке на не-Windows при импорте clixml с securestring (#7997)
- Добавление параметра ReplyTo
Send-MailMessage(#8727) (Спасибо @replicaJunction!) - Добавить устаревшее сообщение в
Send-MailMessage(#9178) - Исправление
Restart-Computer, с которым нужно работатьlocalhost, когда WinRM отсутствует (#9160) - Сделать
Start-Jobошибку завершения броска при размещении PowerShell (#9128) - Добавьте ускорители и суффиксы в стиле C# для коротких, уинтовых, улонговых и коротких литералов (#7813) (Спасибо @vexx32!)
- Добавлены новые суффиксы для числовых литералов — см. about_Numeric_Literals (#7901) (Спасибо @vexx32!)
- Правильно сообщать об уровне воздействия, если SupportsShouldProcess не установлен в 'true' (#8209) (Спасибо @vexx32!)
- Исправьте проблемы с набором символов запроса в веб-командах (#8742) (Спасибо @markekraus!)
- Исправление Ожидаемой
100-continueпроблемы с веб-командировками (#8679) (Спасибо @markekraus!) - Исправьте проблему блокировки файлов с веб-командолами (#7676) (Спасибо @Claustn!)
- Исправлена проблема с разбором кодовых страниц в
Invoke-RestMethod(#8694) (Спасибо @markekraus!) - Рефакторинг
ConvertTo-Jsonдля открытия JsonObject.ConvertToJson как публичного API (#8682) - Добавьте настраиваемую максимальную глубину
ConvertFrom-Jsonс помощью -Depth (#8199) (Спасибо @louistio!) - Добавить параметр EscapeHandling в
ConvertTo-Jsoncmdlet (#7775) (Спасибо @iSazonov!) - Добавить
-CustomPipeNameк pwsh иEnter-PSHostProcess(#8889) - Включите создание относительных символических ссылок в Windows с
New-Itemпомощью (#8783) - Разрешить пользователям Windows в режиме разработчика создавать символические ссылки без повышения высоты (#8534)
- Разрешить
Write-Informationпринять$null(#8774) - Исправление
Get-Helpрасширенных функций с помощью справочного контента MAML (#8353) - Исправьте
Get-Helpпроблему с PSTypeName в -Parameter, когда объявлен только один параметр (#8754) (Спасибо @pougetat!) - Исправление вычисления токена для
Get-Helpвыполнения на ScriptBlock для помощи с комментариями. (#8238) (Спасибо @hubuk!) - Измените
Get-Helpпараметр cmdlet -Parameter чтобы он принимал строковые массивы (#8454) (Спасибо @sethvs!) - Разреши PAGER, если его путь содержит пробелы (#8571) (Спасибо @pougetat!)
- Добавьте подсказку к использованию
lessфункции 'help' для инструкции пользователю по выходу (#7998) - Добавьте типы поддержки enum и char в
Format-Hexcmdlet (#8191) (Спасибо @iSazonov!) - Удалить ShouldProcess из
Format-Hex(#8178) - Добавьте новые параметры
Format-Hexсмещения и счёта и рефакторируйте cmdlet (#7877) (Спасибо @iSazonov!) - Разрешить 'name' в качестве псевдонима для 'label' в
ConvertTo-Html, позвольте записи 'width' быть целым числом (#8426) (Спасибо @mklement0!) - Заставьте вычисленные свойства на основе scriptblock снова работать в
ConvertTo-Html(#8427) (Спасибо @mklement0!) - Добавить cmdlet
Join-Stringдля создания текста из входа в конвейер (#7660) (Спасибо @powercode!) - Исправление
Join-Stringлогики параметра cmdlet FormatString (#8449) (Спасибо @sethvs!) - Переключитесь
Clear-Hostобратно на использование$RAWUIи очистку для работы удалённо (#8609) - Сменить
Clear-Hostна просто вызов[console]::clearи удалить чистый псевдоним из Unix (#8603) - Исправьте LiteralPath
Import-Csvдля связи сGet-ChildItemвыводом (#8277) (Спасибо @iSazonov!) - Функция помощи не должна использовать пейджер для AliasHelpInfo (#8552)
- Добавить
-UseMinimalHeaderStart-Transcriptзаголовок транскрипта для минимизации (#8402) (Спасибо @lukexjeremy!) - Add
Enable-ExperimentalFeatureиDisable-ExperimentalFeaturecmdlets (#8318) - Экспонировать все cmdlets от PSDiagnostics , если logman.exe доступен (#8366)
- Удалить параметр сохранения с
New-PSDriveплатформыnon-Windows(#8291) (Спасибо @lukexjeremy!) - Добавить поддержку для
cd +(#7206) (Спасибо @bergmeister!) - Включите
Set-Location -LiteralPathработу с папками с именами - и + (#8089) -
Test-Pathвозвращается$false, когда присваивается пустое значение или$nullзначение пути (#8080) (Спасибо @vexx32!) - Разрешить возвращение динамического параметра, даже если путь не совпадает с каким-либо провайдером (#7957)
- Поддержка
Get-PSHostProcessInfoиEnter-PSHostProcessна платформах Unix (#8232) - Сократить выделения в
Get-Contentcmdlet (#8103) (Спасибо @iSazonov!) - Включить
Add-Contentвозможность совместного доступа к чтению с другими инструментами во время написания контента (#8091) -
Get/Add-Contentвыдает улучшенную ошибку при нацеливании на контейнер (#7823) (Спасибо @kvprasoon!) - Добавить
-Nameпараметры-NoUserOverrides, и-ListAvailableвGet-Culturecmdlet (#7702) (Спасибо @iSazonov!) - Добавить унифицированный атрибут для завершения параметра кодирования . (#7732) (Спасибо @ThreeFive-O!)
- Разрешить числовые идентификаторы и названия зарегистрированных кодовых страниц в параметрах кодирования (#7636) (Спасибо @iSazonov!)
- Исправление
Rename-Item -Pathс уайлд-каром (#7398) (Спасибо @kwkam!) - Когда файл используется
Start-Transcript, пустой файл вместо удаления (#8131) (Спасибо @paalbra!) - Создайте
Add-Typeфайлы с открытым исходным кодом с помощью FileAccess.Read и FileShare.Read явно (#7915) (Спасибо @IISResetMe!) - Исправление
Enter-PSSession -ContainerIdдля последней версии Windows (#7883) - Убедитесь, что свойство NestedModules заполняется (
Test-ModuleManifest#7859) - Добавить
%Fкейс вGet-Date-UFormat (#7630) (Спасибо @britishben!) - Исправление
Set-Service -Status Stoppedдля прекращения сервисов с зависимостью (#5525) (Спасибо @zhenggu!)