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
- Melhoria no suporte de passagem de argumentos de comandos nativos
- Suporte para cores ANSI do FileInfo
- Aprimoramento do preenchimento de guias
- 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 alterações disruptivas para melhorar a usabilidade
Para obter uma lista completa das alterações, consulte o
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 up-toatualizadas sobre os sistemas operativos 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 adiciona suporte para 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 WSUS -
0
- não opte por atualizar através do Microsoft Update ou do WSUS
-
ENABLE_MU
-
1
(padrão) - Opta por usar o Microsoft Update, 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
-
Características experimentais
As seguintes funcionalidades experimentais agora são funcionalidades padrão nesta versão.
-
Microsoft.PowerShell.Utility.PSImportPSDataFileSkipLimitCheck
- consulte Import-PowerShellDataFile Microsoft.PowerShell.Utility.PSManageBreakpointsInRunspace
-
PSAnsiRendering
- ver sobre_ANSI_Terminais -
PSAnsiProgress
- ver about_ANSI_Terminals PSCultureInvariantReplaceOperator
PSNotApplyErrorActionToStderr
PSUnixFileStat
O seguinte recurso experimental foi adicionado nesta versão:
PSNativeCommandArgumentPassing - Quando esse recurso experimental é habilitado, o PowerShell usa a propriedade ArgumentList do objeto StartProcessInfoem vez de nosso 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 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.
Aprimoramento do Preenchimento de Abas
O PowerShell 7.2 inclui vários aprimoramentos na Conclusão Automática. Essas alterações incluem correções de bugs e melhoram a usabilidade.
- Corrigir a completação de tabulação para temas 'about*' não localizados (#15265) (Obrigado @MartinGC94)
- Corrigir o tratamento de splatting como parâmetro posicional ao completar comandos (#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)
- Foi adicionado o autocompletar de tabulação para o parâmetro View dos cmdlets Format-* (#14513) (Obrigado @iSazonov))
PSReadLine 2.1 IntelliSense Preditivo
O PSReadLine 2.1 introduziu APIs CommandPrediction
que estabelecem 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 motor
- Adicionar a função
LoadAssemblyFromNativeMemory
para carregar assemblies na memória a partir de um host nativo do PowerShell em 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 experimental
PSNativeCommandArgumentPassing
: Use ArgumentList para invocação executável nativa (#14692) - Verifique se
-PipelineVariable
está configurado para todas as saídas de cmdlets de script (#12766) - Emitir aviso se o valor de
ConvertTo-Json
exceder o valor de -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)