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.
O PowerShell 7.3 é a próxima versão estável, baseada no .NET 7.0.
O PowerShell 7.3 inclui os seguintes recursos, atualizações e alterações de quebra.
Alterações Disruptivas e Melhorias
- Nesta versão, as APIs do Windows foram atualizadas ou removidas para fins de conformidade, o que significa que o PowerShell 7.3 não é executado no Windows 7. Embora o Windows 7 não seja mais suportado, as compilações anteriores podem ser executadas no Windows 7.
- O PowerShell Direct para Hyper-V só é suportado no Windows 10, versão 1809 e superior.
-
Test-Connectionestá quebrado devido a uma alteração de quebra intencional no .NET 7. É rastreado por #17018 - Adicionar
cleanbloco ao bloco de script como um parelho abegin,process, eendpara permitir uma limpeza fácil de recursos (#15177) - Alterar o padrão para
$PSStyle.OutputRenderingHost - Fazer com que
Out-StringeOut-Filedeixem a entrada de string inalterada (#17455) - Mova a definição de dados de tipo de System.Security.AccessControl.ObjectSecurity para o módulo Microsoft.PowerShell.Security (#16355) (Obrigado @iSazonov!)
- Antes dessa alteração, um usuário não precisa importar explicitamente o módulo Microsoft.PowerShell.Security para usar as propriedades de código definidas para uma instância de System.Security.AccessControl.ObjectSecurity.
- Após essa alteração, um usuário precisa importar explicitamente o módulo Microsoft.PowerShell.Security para usar essas propriedades de código e métodos de código.
Melhorias na completação de tabulação
- O PowerShell 7.3 inclui o PSReadLine 2.2.6, que habilita o IntelliSense Preditivo por padrão. Para obter mais informações, consulte about_PSReadLine.
- Corrija o preenchimento da guia dentro do bloco de script especificado para o
ValidateScriptAttribute. (#14550) (Obrigado @MartinGC94!) - Adicionada a completação de tabulação para etiquetas de ciclo após
break/continue(#16438) (Obrigado @MartinGC94!) - Melhorar a conclusão do Hashtable em vários cenários (#16498) (Obrigado @MartinGC94!)
- Distribuição de parâmetros
-
Parâmetro de 'Arguments' para
Invoke-CimMethod -
Parâmetro FilterHashtable para
Get-WinEvent - Parâmetro de propriedade para os cmdlets CIM
- Remove duplicados dos cenários de conclusão dos membros
- Suporte a barras avançadas na conclusão do compartilhamento de rede (caminho UNC) (#17111) (Obrigado @sba923!)
- Melhorar o preenchimento automático de membros (#16504) (Agradecimento @MartinGC94!))
- Priorizar as finalizações do ValidateSet em vez de Enums para parâmetros (#15257) (Obrigado @MartinGC94!)
- Adicionar suporte de inferência de tipo para métodos genéricos com parâmetros de tipo (#16951) (Obrigado @MartinGC94!)
- Melhorar a inferência de tipo e completações (#16963) (Obrigado @MartinGC94!)
- Permite que os métodos sejam mostrados nos resultados de conclusão para
ForEach-Object -MemberName - Impede a conclusão em expressões que retornam vazias como
([void]("")) - Permite que construtores de classe não padrão apareçam quando a conclusão da classe é baseada no AST
- Permite que os métodos sejam mostrados nos resultados de conclusão para
- Melhorar a inferência de tipo para
$_(#17716) (Obrigado @MartinGC94!) - Corrigir inferência de tipo para ICollection (#17752) (Obrigado @MartinGC94!)
- Impedir que chaves sejam removidas ao completar variáveis (#17751) (Obrigado @MartinGC94!))
- Adicionar conclusão para expressões de índice para dicionários (#17619) (Obrigado @MartinGC94!)
- Corrigir conclusão de tipo para tokens de atributo (#17484) (Obrigado @MartinGC94!)
- Melhorar a conclusão da guia de parâmetros dinâmicos (#17661) (Obrigado @MartinGC94!)
- Evite a vinculação de parâmetros posicionais ao completar o parâmetro na frente do valor (#17693) (Obrigado @MartinGC94!)
O processamento de erros foi melhorado
- Definir
$?corretamente para expressão de comando com redirecionamentos (#16046) - Corrigir um erro de casting ao usar
$PSNativeCommandUseErrorActionPreference(#15993) - Tornar o tratamento de erros do comando nativo opcionalmente capaz de respeitar
ErrorActionPreference(#15897) - Especifique o caminho executável como
TargetObjectpara o código de saída diferente de zero ErrorRecord (#16108) (Obrigado @rkeithhill!)
Melhorias na sessão e na tecnologia de acesso remoto
- Adicionar
-Optionsnos comandos PSRP executados por SSH para permitir passar opções OpenSSH diretamente (#12802) (Obrigado @BrannenGH!)) - Adicionar o parâmetro
-ConfigurationFileapwshpara permitir iniciar um novo processo com a configuração de sessão definida num ficheiro.pssc(#17447) - Adicionar suporte para uso
New-PSSessionConfigurationFileem plataformas que não sejam Windows (#17447)
Cmdlets atualizados
- Adicionar
-HttpVersionparâmetro aos cmdlets Web (#15853) (Obrigado @hayhay27!) - Adicionar suporte a cmdlets web para etiquetas de entrada indefinidas (#16193) (Obrigado @farmerau!)
- Correção
ConvertTo-Json -Depthpara permitir 100 no máximo (#16197) (Obrigado @KevRitchie!) - Melhorar o manuseio de variáveis ao chamar
Invoke-Commandcom a$Using:expressão (#16113) (Obrigado @dwtaber!) - Adicionar
-StrictModeaInvoke-Commandpara permitir especificar o modo estrito ao invocar o comando localmente (#16545) (Obrigado @Thomas-Yu!) - Adicionar
cleanbloco ao bloco de script como um elemento igual abegin,process, eendpara permitir uma limpeza fácil de recursos (#15177) - Adicionar
-Amendedswitch aoGet-CimClasscmdlet (#17477) (Obrigado @iSazonov) - Alterado
ConvertFrom-Json -AsHashtablepara usar hashtable ordenado (#17405) - Sequências de escape ANSI removidas em strings antes de serem enviadas para
Out-GridView(#17664) - Adicionado o parâmetro Milliseconds para
New-TimeSpan(#17621) (Obrigado @NoMoreFood!) - Mostrar parâmetros opcionais ao exibir definições de método e sobrecargas (#13799) (Obrigado @eugenesmlv!)
- Permitir que os comandos ainda sejam executados mesmo que o diretório de trabalho atual não exista mais (#17579)
- Adicionar suporte para HTTPS com
Set-AuthenticodeSignature -TimeStampServer(#16134) (Obrigado @Ryan-Hutchison-USAF!) - Renderizar números decimais em uma tabela usando a cultura atual (#17650)
- Adicionar acelerador de tipo ordenado para OrderedDictionary (#17804) (Obrigado @fflaten!)
- Adicionar
find.exeao comportamento de ligação de argumentos herdados para Windows (#17715) - Adicionar
-NoProfileLoadTimeswitch para pwsh (#17535) (Obrigado @rkeithhill!)
Para obter uma lista completa das alterações, consulte o Log de alterações no repositório GitHub.
Características experimentais
No PowerShell 7.3, os seguintes recursos experimentais se tornaram comuns:
PSAnsiRenderingFileInfo- Este recurso adiciona o$PSStyle.FileInfomembro e permite colorir tipos de arquivos específicos.PSCleanBlock- Adiciona o blococleanao bloco de script como um par abegin,processeendpara permitir uma fácil limpeza de recursos.PSAMSIMethodInvocationLogging- Estende os dados enviados ao AMSI para inspeção para incluir todas as invocações de membros do método .NET.PSNativeCommandArgumentPassing - O PowerShell agora usa a propriedade ArgumentList do objeto StartProcessInfo, em vez do antigo mecanismo de reconstrução de uma cadeia de caracteres ao invocar um executável nativo.
O PowerShell 7.3.1 adiciona
sqlcmd.exeà lista de comandos nativos no Windows que usam oLegacyestilo de passagem de argumentos.PSExec- Adiciona o novoSwitch-Processcmdlet (aliasexec) para fornecerexeccompatibilidade para sistemas que não sejam Windows.PowerShell 7.3.1 alterou o
execalias para uma função que encapsulaSwitch-Process. A função permite que você passe parâmetros para o comando nativo que pode ter erroneamente ligado ao parâmetro WithCommand .
O PowerShell 7.3 apresenta os seguintes recursos experimentais:
-
PSNativeCommandErrorActionPreference - Adiciona a variável para permitir que erros
$PSNativeCommandUseErrorActionPreferenceproduzidos por comandos nativos sejam erros do PowerShell.
O PowerShell 7.3 removeu os seguintes recursos experimentais:
-
PSNativePSPathResolutionO recurso experimental não é mais suportado. -
PSStrictModeAssignmentO recurso experimental não é mais suportado.
Para obter mais informações sobre os recursos experimentais, consulte Usando recursos experimentais.