Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
A versão PowerShell Core 6.2 focou-se em melhorias de desempenho, correções de bugs e melhorias de cmdlet e linguagem mais pequenas que melhoram a qualidade. Para ver a lista completa de melhorias, consulte os nossos registos de alterações detalhados no GitHub.
Características experimentais
Anteriormente, ativamos o suporte para Funcionalidades Experimentais. Na versão 6.2, temos quatro funcionalidades experimentais para experimentar. Por favor, dê feedback para que possamos fazer melhorias e para decidir se a funcionalidade merece ser promovida para um estatuto mainstream.
Use Get-ExperimentalFeature para obter uma lista de funcionalidades experimentais disponíveis. Pode ativar ou desativar estas funcionalidades com Enable-ExperimentalFeature e Disable-ExperimentalFeature.
Sugestões de comando não encontrado
Esta funcionalidade utiliza correspondência difusa para encontrar sugestões de comandos ou cmdlets que possas ter escrito mal.
Enable-ExperimentalFeature -Name PSCommandNotFoundSuggestion
Example
Neste exemplo, o nome do cmdlet mal escrito é difuso com várias sugestões de mais provável para menos provável.
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.
Agrupamento Remoto Implícito
Ao utilizar remoção implícita num pipeline, o PowerShell trata cada comando no pipeline de forma independente. Os objetos são repetidamente serializados e de-serialized entre o cliente e o sistema remoto durante a execução do pipeline.
Com esta funcionalidade, o PowerShell analisa o pipeline para determinar se o comando é seguro para executar e se ele existe no sistema alvo. Quando é verdade, o PowerShell executa todo o pipeline remotamente e apenas serializa e de-serializes os resultados devem ao cliente.
Enable-ExperimentalFeature -Name PSImplicitRemotingBatching
Um teste real de Get-Process | Sort-Object overlocalhost diminui de 10-15 segundos para 20-30 milissegundos. A funcionalidade só precisa de estar ativada no cliente. Não são necessárias alterações no servidor.
Provisório temporário
Enable-ExperimentalFeature -Name PSTempDrive
Se estiveres a usar o PowerShell Core em diferentes sistemas operativos, vais descobrir que a variável de ambiente para encontrar o diretório temporário é diferente no Windows, macOS e Linux! Com esta funcionalidade, recebes uma chamada Temp:PSDrive que é automaticamente mapeada para a pasta temporária do sistema operativo que estás a usar.
Example
PS> "Hello World!" > Temp:/hello.txt
PS> Get-Content Temp:/hello.txt
Hello World!
Tem em atenção que os comandos nativos de ficheiros (como ls no Linux) não conhecem o PSDrives e não vão ver este Temp: disco.
Expansão de Abreviaturas
Espera-se que os cmdlets do PowerShell tenham substantivos descritivos. Isto resulta em nomes longos e mais difíceis de escrever. Esta funcionalidade permite-lhe simplesmente digitar os caracteres maiúsculos do cmdlet e usar a completação de tabulação para encontrar uma correspondência.
Enable-ExperimentalFeature -Name PSUseAbbreviationExpansion
Example
PS> i-arsavsf
Se carregar no tab e tiver instalado o módulo Azure PowerShell Az , ele irá autocompletar para:
PS> Import-AzRecoveryServicesAsrVaultSettingsFile
Observação
Esta funcionalidade destina-se a ser usada de forma interativa. Formas abreviadas de cmdlets não podem ser executadas. Esta funcionalidade não substitui os pseudónimos.
Alterações Disruptivas
- Corrigir
-NoEnumerateo comportamento paraWrite-Outputser consistente com o PowerShell do Windows. (#9069) - Torna
Join-String -InputObject 1,2,3o resultado igual ao1,2,3 | Join-Stringresultado (#8611) (Obrigado @sethvs!) - Adicionar
-StableaSort-Objecte testes relacionados (#7862) (Obrigado @KirkMunro!) - Melhorar
Start-Sleepo cmdlet para aceitar frações de segundo (#8537) (Obrigado @Prototyyppi!) - Alterar a hashtable para usar OrdinalIgnoreCase para estar
case-insensitiveem todas as Culturas (#8566) - Corrigir o LiteralPath para
Import-Csvligar àGet-ChildItemsaída (#8277) (Obrigado @iSazonov!) - Já não salta uma coluna sem nome se for usado o delimitador de aspas duplas em
Import-Csv(#7899) (Obrigado @Topping!) -
Get-ExperimentalFeaturejá não tem-ListAvailableswitch (#8318) - O parâmetro de depuração agora é definido
$DebugPreferencepara Continuar em vez de Inquire (#8195) (Obrigado @KirkMunro!) - Honra
-OutputFormatse especificado em comando codificado, redirecionado e não interativo, usado com pwsh (#8115) - Carregar o conjunto a partir do caminho da base do módulo antes de tentar carregar a partir do GAC (#8073)
- Remover tilde dos pacotes de pré-visualização para Linux (#8244)
- Processamento de mover antes
-WorkingDirectorydo processamento dos perfis (#8079) - Não adicione
PATHEXTvariável de ambiente no Unix (#7697) (Obrigado @iSazonov!)
Problemas conhecidos
- O remoto, nas plataformas Windows IOT ARM, tem um problema ao carregar módulos. Ver (#8053)
Atualizações Gerais e Correções
- Ativar a conclusão de separadores insensíveis a maiúsculas minúsculas para ficheiros e pastas no sistema de ficheiros sensível a maiúsculas minúsculas (#8128)
- Tornar público o PSVersionInfo.PSVersion e o PSVersionInfo.PSEdition (#8054) (Obrigado @KirkMunro!)
- Inferência de Tipo de Adicionar para
$_/$PSItemblocos incatch{ }(#8020) (Obrigado @vexx32!) - Corrigir inferência de tipo de invocação de método estático (#8018) (Obrigado @SeeminglyScience!)
- Criar tipos inferidos para
Select-Object,Group-Object, PSObject e Hashtable (#7231) (Obrigado @powercode!) - Método de chamada de suporte com
ByRef-likeparâmetros de tipo (#7721) - Tratar do caso em que o caminho do módulo PowerShell do Windows já está no PSModulePath do ambiente (#7727)
- Ative
SecureStringos cmdlets para não-Windows armazenando o texto simples (#9199) - Melhorar a mensagem de erro em não-Windows ao importar clixml com securestring (#7997)
- Adicionar parâmetro ReplyTo a
Send-MailMessage(#8727) (Obrigado @replicaJunction!) - Adicionar mensagem Obsoleta a
Send-MailMessage(#9178) - Correção
Restart-Computera trabalharlocalhostquando o WinRM não estiver presente (#9160) - Erro de terminação do
Start-Jobthrow quando o PowerShell está hospedado (#9128) - Adicione aceleradores e sufixos ao estilo C# para ushort, uint, ulong e short literals (#7813) (Obrigado @vexx32!)
- Adicionados novos sufixos para literais numéricos - ver about_Numeric_Literals (#7901) (Obrigado @vexx32!)
- Reporte corretamente o nível de impacto quando o SupportsShouldProcess não estiver definido como 'verdadeiro' (#8209) (Obrigado @vexx32!)
- Problemas com o Pedido de Correção de Caracteres nos Web Cmdlets (#8742) (Obrigado @markekraus!)
- Corrigir Esperar
100-continueproblema com Web Cmdlets (#8679) (Obrigado @markekraus!) - Corrigir o problema de bloqueio de ficheiros com os web cmdlets (#7676) (Obrigado @Claustn!)
- Corrigir o problema de análise da página de código em
Invoke-RestMethod(#8694) (Obrigado @markekraus!) - Refatorar
ConvertTo-Jsonpara expor JsonObject.ConvertToJson como API pública (#8682) - Adicione profundidade
ConvertFrom-Jsonmáxima configurável com -Depth (#8199) (Obrigado @louistio!) - Adicionar o parâmetro EscapeHandling no
ConvertTo-Jsoncmdlet (#7775) (Obrigado @iSazonov!) - Adicionar
-CustomPipeNamea pwsh eEnter-PSHostProcess(#8889) - Permitir a criação de ligações simbólicas relativas no Windows com
New-Item(#8783) - Permitir que utilizadores Windows em modo desenvolvedor criem links simbólicos sem elevação (#8534)
- Permitir
Write-Informationaceitação$null(#8774) - Correção
Get-Helppara funções avançadas com conteúdo de ajuda MAML (#8353) - Corrigir
Get-Helpo problema do nome PSTypeName com -Parameter quando apenas um parâmetro é declarado (#8754) (Obrigado @pougetat!) - Correção do cálculo do token para
Get-Helpexecutar no ScriptBlock para ajuda com comentários. (#8238) (Obrigado @hubuk!) - Alterar
Get-Helpo parâmetro do cmdlet -Parameter para aceitar arrays de string (#8454) (Obrigado @sethvs!) - Resolve PAGER se o seu caminho contiver espaços (#8571) (Obrigado @pougetat!)
- Adicionar um prompt ao uso de
lessna função 'help' para instruir o utilizador a sair (#7998) - Adicionar suporte enum e tipos de personagem no
Format-Hexcmdlet (#8191) (Obrigado @iSazonov!) - Remover ShouldProcess de
Format-Hex(#8178) - Adicionar novos parâmetros de Offset e Count e
Format-Hexrefatorar o cmdlet (#7877) (Obrigado @iSazonov!) - Permita 'name' como chave de alias para 'label' em
ConvertTo-Html, permita que a entrada 'width' seja um inteiro (#8426) (Obrigado @mklement0!) - Fazer com que propriedades calculadas baseadas em blocos de script funcionem novamente em
ConvertTo-Html(#8427) (Obrigado @mklement0!) - Adicionar um cmdlet
Join-Stringpara criar texto a partir da entrada do pipeline (#7660) (Obrigado @powercode!) - Fix
Join-Stringcmdlet FormatString parameter logic (#8449) (Obrigado @sethvs!) - Voltar
Clear-Hosta usar$RAWUIe limpar para trabalhar sobre remotos (#8609) - Alterar
Clear-Hostpara chamada[console]::clearsimples e remover o alias limpo do Unix (#8603) - Corrigir o LiteralPath para
Import-Csvligar àGet-ChildItemsaída (#8277) (Obrigado @iSazonov!) - a função de ajuda não deve usar pager para AliasHelpInfo (#8552)
- Adicionar
-UseMinimalHeaderaStart-Transcriptpara minimizar o cabeçalho da transcrição (#8402) (Obrigado @lukexjeremy!) - Add
Enable-ExperimentalFeatureeDisable-ExperimentalFeaturecmdlets (#8318) - Expor todos os cmdlets dos PSDiagnostics se logman.exe estiver disponível (#8366)
- Remover o parâmetro Persist da
New-PSDrivenon-Windowsplataforma (#8291) (Obrigado @lukexjeremy!) - Adicionar suporte para
cd +(#7206) (Obrigado @bergmeister!) - Permitir
Set-Location -LiteralPathtrabalhar com pastas nomeadas - e + (#8089) -
Test-Pathretorna$falsequando dado um valor vazio ou$nullpath (#8080) (Obrigado @vexx32!) - Permitir que o parâmetro dinâmico seja devolvido mesmo que o caminho não corresponda a nenhum fornecedor (#7957)
- Suporte
Get-PSHostProcessInfoeEnter-PSHostProcessem plataformas Unix (#8232) - Reduzir as alocações no
Get-Contentcmdlet (#8103) (Obrigado @iSazonov!) - Permitir
Add-Contentpartilhar o acesso de leitura com outras ferramentas enquanto escreve conteúdo (#8091) -
Get/Add-Contentlança erro melhorado ao apontar a um contentor (#7823) (Obrigado @kvprasoon!) - Adicionar
-Nameos parâmetros de ,-NoUserOverridese-ListAvailableaoGet-Culturecmdlet (#7702) (Obrigado @iSazonov!) - Adicionar um atributo unificado para completar o parâmetro de codificação . (#7732) (Obrigado @ThreeFive-O!)
- Permitir IDs numéricos e nome das páginas de códigos registadas nos parâmetros de codificação (#7636) (Obrigado @iSazonov!)
- Correção
Rename-Item -Pathcom personagem coringa (#7398) (Obrigado @kwkam!) - Quando existe um
Start-Transcriptficheiro, o ficheiro vazio em vez de o apagar (#8131) (Obrigado @paalbra!) - Crie
Add-Typeficheiros open source com FileAccess.Read e FileShare.Read explicitamente (#7915) (Obrigado @IISResetMe!) - Correção
Enter-PSSession -ContainerIdpara o Windows mais recente (#7883) - Garantir que a propriedade NestedModules é preenchida por
Test-ModuleManifest(#7859) - Adicionar
%Fcapa àGet-Date-UFormat (#7630) (Obrigado @britishben!) - Correção
Set-Service -Status Stoppedpara parar serviços com dependências (#5525) (Obrigado @zhenggu!)