Novidades no PowerShell 7.2
O PowerShell 7.2 é a próxima versão de LTS (Manutenção de Longo Prazo) criada no .NET 6.0.
O PowerShell 7.2 inclui os recursos, as atualizações e as alterações da falha a seguir.
- Novos pacotes do instalador universal para a maioria das distribuições do Linux com suporte
- Suporte para Microsoft Update no Windows
- Dois novos recursos experimentais
- Argumento de comando nativo aprimorado passando suporte
- Suporte para cores de FileInfo ANSI
- Preenchimentos com Tab aprimorados
- PSReadLine 2.1 com Predictive IntelliSense
- Sete recursos experimentais promovidos para base e um removido
- Separação do DSC do PowerShell 7 para habilitar futuras melhorias
- Várias alterações interruptivas para melhorar a usabilidade
Para ver uma lista completa das alterações, confira o log de alterações no repositório do GitHub.
Atualizações de instalação
Confira as instruções de instalação do seu sistema operacional preferido:
Além disso, o PowerShell 7.2 dá suporte às versões ARM64 do Windows e macOS e às versões ARM32 e ARM64 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, simplificando a instalação no Linux. 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 para Microsoft Update para Windows
O PowerShell 7.2 adiciona suporte para 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 for Business, WSUS, SCCM ou a caixa de diálogo interativa do WU 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 WSUS0
: não opte por atualizar usando o Microsoft Update ou o WSUS
ENABLE_MU
1
(padrão) – opta por usar o Microsoft Update, Atualizações Automáticas ou o Windows Update0
: não opte por usar o Microsoft Update, as atualizações automáticas ou o Windows Update
Recursos experimentais
Estes recursos experimentais agora são recursos básicos nesta versão:
Microsoft.PowerShell.Utility.PSImportPSDataFileSkipLimitCheck
– confira Import-PowerShellDataFileMicrosoft.PowerShell.Utility.PSManageBreakpointsInRunspace
PSAnsiRendering
– confira about_ANSI_TerminalsPSAnsiProgress
– confira about_ANSI_TerminalsPSCultureInvariantReplaceOperator
PSNotApplyErrorActionToStderr
PSUnixFileStat
O seguinte recurso experimental foi adicionado a esta 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 que você selecione o comportamento em runtime.PSAnsiRenderingFileInfo – permite a personalização de cores ANSI de informações de arquivo.
PSLoadAssemblyFromNativeCode – expõe uma API para permitir o carregamento de assembly do código nativo.
Para obter mais informações sobre os recursos experimentais, confira Usar recursos experimentais.
Preenchimentos com Tab aprimorados
O PowerShell 7.2 inclui várias melhorias no preenchimento com Tab. Essas alterações incluem correções de bug 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 CommandPrediction
introduziu APIs 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 nas 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
Separação do DSC do PowerShell 7 para habilitar futuras melhorias
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 de modo independente do PowerShell e os usuários possam combinar e corresponder versões do PowerShell e PSDesiredStateConfiguration para seu ambiente. Para instalar PSDesiredStateConfiguration 2.0.5 da Galeria do PowerShell:
Install-Module -Name PSDesiredStateConfiguration -Repository PSGallery -MaximumVersion 2.99
Importante
Inclua o parâmetro MaximumVersion ou instale 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 pacotes RPM e deb do PowerShell universais (#15109)
- Recurso
PSNativeCommandArgumentPassing
experimental: use ArgumentList para invocação executável nativa (#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 (#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 paraFileSystemInfo.LinkTarget
(#16165)