Compartilhar via


Novidades no PowerShell 7.2

O PowerShell 7.2 é a próxima versão LTS (manutenção de longo prazo) baseada no .NET 6.0.

O PowerShell 7.2 inclui os seguintes recursos, atualizações e alterações críticas.

  • Novos pacotes de instalador universal para a maioria das distribuições do Linux com suporte
  • Suporte do Microsoft Update no Windows
  • 2 novos recursos experimentais
    • Suporte de passagem de argumento de comando nativo aprimorado
    • Suporte para cores de FileInfo ANSI
  • Preenchimentos com Tab aprimorados
  • PSReadLine 2.1 com Predictive IntelliSense
  • 7 recursos experimentais promovidos ao mainstream e 1 removidos
  • Separando o DSC do PowerShell 7 para habilitar melhorias futuras
  • Várias alterações interruptivas para melhorar a usabilidade

Para obter uma lista completa de alterações, consulte o Log de Alterações no repositório do GitHub.

Atualizações de instalação

Verifique as instruções de instalação do seu sistema operacional preferencial:

Além disso, o PowerShell 7.2 dá suporte a versões ARM64 do Windows e macOS e arm32 e ARM64 versões do Debian e do Ubuntu.

Para obter informações mais atualizadas sobre os sistemas operacionais com suporte e o ciclo de vida do suporte, confira o Ciclo de vida do suporte do PowerShell.

Novos pacotes de instalação universal para distribuições do Linux

Anteriormente, criamos pacotes de instalador separados para cada versão com suporte do CentOS, RHEL, Debian e Ubuntu. O pacote do instalador universal combina oito pacotes diferentes em um, tornando a instalação no Linux mais simples. O pacote universal instala as dependências necessárias para a distribuição de destino e cria as alterações específicas da plataforma para fazer o PowerShell funcionar.

Suporte do Microsoft Update para Windows

O PowerShell 7.2 adiciona suporte ao Microsoft Update. Ao habilitar esse recurso, você receberá as atualizações mais recentes do PowerShell 7 em seu fluxo de gerenciamento tradicional do WU (Windows Update), seja com o Windows Update para Empresas, WSUS, SCCM ou a caixa de diálogo WU interativa em Configurações.

O pacote MSI do PowerShell 7.2 inclui as seguintes opções de linha de comando:

  • USE_MU - Essa propriedade tem dois valores possíveis:
    • 1 (padrão) – Opta por atualizar por meio do Microsoft Update ou do WSUS
    • 0 – não opte por atualizar por meio do Microsoft Update ou do WSUS
  • ENABLE_MU
    • 1 (padrão) – opta por usar o Microsoft Update com as Atualizações Automáticas ou o Windows Update
    • 0 – não opte por usar o Microsoft Update, as Atualizações Automáticas ou o Windows Update

Recursos experimentais

Os seguintes recursos experimentais agora são recursos convencionais nesta versão:

  • Microsoft.PowerShell.Utility.PSImportPSDataFileSkipLimitCheck: consulte Import-PowerShellDataFile
  • Microsoft.PowerShell.Utility.PSManageBreakpointsInRunspace
  • PSAnsiRendering: consulte about_ANSI_Terminals
  • PSAnsiProgress: consulte about_ANSI_Terminals
  • PSCultureInvariantReplaceOperator
  • PSNotApplyErrorActionToStderr
  • PSUnixFileStat

O seguinte recurso experimental foi adicionado nesta versão:

  • PSNativeCommandArgumentPassing: quando esse recurso experimental estiver habilitado, o PowerShell usará a propriedade ArgumentList do objeto StartProcessInfo em vez do mecanismo atual de reconstrução de uma cadeia de caracteres ao invocar um executável nativo. Esse recurso adiciona uma nova variável automática $PSNativeCommandArgumentPassing que permite selecionar o comportamento em runtime.

  • PSAnsiRenderingFileInfo: permite a personalização de cores ANSI de informações de arquivo.

  • PSLoadAssemblyFromNativeCode – expõe uma API que permite carregar assemblies a partir de código nativo.

Para obter mais informações sobre os recursos experimentais, consulte Usando recursos experimentais.

Preenchimentos com Tab aprimorados

O PowerShell 7.2 inclui várias melhorias no preenchimento com Tab. Essas alterações incluem bugfixes e melhoram a usabilidade.

  • Corrigir o preenchimento com tabulação para tópicos não localizados sobre* (#15265) (Obrigado, @MartinGC94)
  • Corrigir o posicionamento que está sendo tratado como parâmetro posicional em #14623 (Obrigado, @MartinGC94)
  • Adicionar preenchimentos para palavras-chave de ajuda baseadas em comentário (#15337) (Obrigado, @MartinGC94)
  • Adicionar preenchimento para instruções Requires (#14596) (Obrigado, @MartinGC94)
  • Preenchimento com tabulação adicionado para o parâmetro View dos cmdlets Format-* (#14513) (Obrigado, @iSazonov)

PSReadLine 2.1 Predictive IntelliSense

O PSReadLine 2.1 introduziu APIs CommandPrediction que estabelecem uma estrutura para fornecer previsões para conclusão de linha de comando. A API permite que os usuários descubram, editem e executem comandos completos com base em previsões correspondentes do histórico do usuário.

O IntelliSense preditivo está desabilitado por padrão. Para habilitar previsões, execute o seguinte comando:

Set-PSReadLineOption -PredictionSource History

Separando o DSC do PowerShell 7 para habilitar melhorias futuras

O módulo PSDesiredStateConfiguration foi removido do pacote do PowerShell 7.2 e agora está publicado na Galeria do PowerShell. Isso permite que o módulo PSDesiredStateConfiguration seja desenvolvido independentemente do PowerShell e os usuários possam misturar e corresponder versões do PowerShell e PSDesiredStateConfiguration para seu ambiente. Para instalar o PSDesiredStateConfiguration 2.0.5 da Galeria do PowerShell:

Install-Module -Name PSDesiredStateConfiguration -Repository PSGallery -MaximumVersion 2.99

Importante

Inclua o parâmetro MaximumVersion ou você pode instalar a versão 3 (ou superior) de PSDesireStateConfiguration que contém diferenças significativas.

Atualizações de mecanismos

  • Adicionar a função LoadAssemblyFromNativeMemory para carregar assemblies na memória de um host nativo do PowerShell por meio de decodificação de alerta · Solicitação de pull #14652

Alterações de falha e melhorias

  • O PSDesiredStateConfiguration foi removido do pacote do PowerShell 7.2
  • Tornar os pacotes DEB e RPM do Linux do PowerShell universais (nº 15109)
  • Recurso experimental PSNativeCommandArgumentPassing: Usar ArgumentList para invocação executável nativa (nº 14692)
  • Verificar se -PipelineVariable está definido para todas as saídas de cmdlets de script (#12766)
  • Emitir aviso se ConvertTo-Json exceder o valor -Depth (nº 13692)
  • Remover o alias D da opção -Directory CL-General #15171
  • Melhorar a detecção de tipos de valor mutáveis (nº 12495)
  • Restringir New-Object no modo NoLanguage sob bloqueio (#14140)
  • Impor a configuração Deny do AppLocker antes da configuração de Bypass da política de execução (#15035)
  • Alterar FileSystemInfo.Target de um CodeProperty para um AliasProperty que aponte para FileSystemInfo.LinkTarget (#16165)