O que há de novo no PowerShell 7.2
O PowerShell 7.2 é a próxima versão do Serviço de Longo Prazo (LTS) criado no .NET 6.0.
O PowerShell 7.2 inclui os seguintes recursos, atualizações e alterações de quebra.
- Novos pacotes de instalação universal para a maioria das distribuições Linux suportadas
- Suporte do Microsoft Update no Windows
- 2 novas características experimentais
- Argumento de comando nativo melhorado passando suporte
- Suporte a cores ANSI FileInfo
- Preenchimento de guias aprimorado
- PSReadLine 2.1 com IntelliSense Preditivo
- 7 recursos experimentais promovidos ao mainstream e 1 removido
- Separar o DSC do PowerShell 7 para permitir melhorias futuras
- Várias mudanças significativas para melhorar a usabilidade
Para obter uma lista completa das alterações, consulte o Log de alterações no repositório GitHub.
Atualizações de instalação
Verifique as instruções de instalação para o seu sistema operativo preferido:
Além disso, o PowerShell 7.2 suporta versões ARM64 do Windows e macOS e versões ARM32 e ARM64 do Debian e Ubuntu.
Para obter informações atualizadas sobre os sistemas operacionais suportados e o ciclo de vida do suporte, consulte o Ciclo de vida de suporte do PowerShell.
Novos pacotes de instalação universal para distribuições Linux
Anteriormente, criamos pacotes de instalação separados para cada versão suportada do CentOS, RHEL, Debian e Ubuntu. O pacote de instalação 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
PowerShell 7.2 adicionar suporte para o Microsoft Update. Ao habilitar esse recurso, você obterá as atualizações mais recentes do PowerShell 7 em seu fluxo de gerenciamento tradicional do Windows Update (WU), seja com o Windows Update for Business, 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
- Esta propriedade tem dois valores possíveis:1
(padrão) - Opta pela atualização por meio do Microsoft Update ou do WSUS0
- não opte por atualizar através do Microsoft Update ou WSUS
ENABLE_MU
1
(padrão) - Opta por usar o Microsoft Update, as 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
Características experimentais
Os seguintes recursos experimentais agora são recursos principais nesta versão:
Microsoft.PowerShell.Utility.PSImportPSDataFileSkipLimitCheck
- consulte Import-PowerShellDataFileMicrosoft.PowerShell.Utility.PSManageBreakpointsInRunspace
PSAnsiRendering
- veja about_ANSI_TerminalsPSAnsiProgress
- veja about_ANSI_TerminalsPSCultureInvariantReplaceOperator
PSNotApplyErrorActionToStderr
PSUnixFileStat
O seguinte recurso experimental foi adicionado nesta versão:
PSNativeCommandArgumentPassing - Quando esse recurso experimental está habilitado, o PowerShell usa a propriedade ArgumentList do objeto StartProcessInfo, em vez de nosso mecanismo atual de reconstruir uma cadeia de caracteres ao invocar um executável nativo. Esse recurso adiciona uma nova variável
$PSNativeCommandArgumentPassing
automática que permite selecionar o comportamento em tempo de execução.PSAnsiRenderingFileInfo - Permite a personalização de cores ANSI das informações do arquivo.
PSLoadAssemblyFromNativeCode - Expõe uma API para permitir o carregamento de assembly a partir de código nativo.
Para obter mais informações sobre os recursos experimentais, consulte Usando recursos experimentais.
Preenchimento de guias aprimorado
O PowerShell 7.2 inclui vários aprimoramentos para Conclusão de Guias. Essas alterações incluem correções de bugs e melhoram a usabilidade.
- Corrigir o preenchimento da guia para tópicos sobre* não localizados (#15265) (Obrigado @MartinGC94)
- Corrigir splatting sendo tratado como parâmetro posicional em finalizações (#14623) (Obrigado @MartinGC94)
- Adicionar conclusões para palavras-chave de ajuda baseadas em comentários (#15337) (Obrigado @MartinGC94)
- Adicionar conclusão para as instruções Requires (#14596) (Obrigado @MartinGC94)
- Adicionado preenchimento da guia para o parâmetro View dos cmdlets Format-* (#14513) (Obrigado @iSazonov)
PSReadLine 2.1 IntelliSense Preditivo
O PSReadLine 2.1 introduziu APIs que estabelecem CommandPrediction
uma estrutura para fornecer previsões para a conclusão da 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á desativado por padrão. Para habilitar previsões, execute o seguinte comando:
Set-PSReadLineOption -PredictionSource History
Separar o DSC do PowerShell 7 para permitir 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 combinar versões do PowerShell e PSDesiredStateConfiguration para seu ambiente. Para instalar o PSDesiredStateConfiguration 2.0.5 a partir da Galeria do PowerShell:
Install-Module -Name PSDesiredStateConfiguration -Repository PSGallery -MaximumVersion 2.99
Importante
Certifique-se de incluir o parâmetro MaximumVersion ou você pode instalar a versão 3 (ou superior) do PSDesireStateConfiguration que contém diferenças significativas.
Atualizações do mecanismo
- Adicionar
LoadAssemblyFromNativeMemory
função para carregar assemblies na memória de um host nativo do PowerShell por awakecoding · Pull Request #14652
Mudanças e melhorias significativas
- O PSDesiredStateConfiguration foi removido do pacote do PowerShell 7.2
- Tornar os pacotes deb e RPM do PowerShell Linux universais (#15109)
- Recurso
PSNativeCommandArgumentPassing
experimental : Use ArgumentList para invocação executável nativa (#14692) - Verifique se
-PipelineVariable
está definido para todas as saídas de cmdlets de script (#12766) - Emitir aviso se
ConvertTo-Json
exceder o valor -Depth (#13692) - Remover o alias D da opção -Directory CL-General #15171
- Melhorar a deteção de tipos de valores mutáveis (#12495)
- Restringir
New-Object
no modo NoLanguage sob bloqueio (#14140) - Impor a configuração de Negação 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 aponta paraFileSystemInfo.LinkTarget
(#16165)