Novidades no PowerShell 7.6

O PowerShell 7.6.2 inclui os seguintes recursos, atualizações e alterações interruptivas. O PowerShell 7.6.2 é criado no runtime do .NET 10.0.6.

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

Atualizações do instalador

O pacote PKG do macOS agora é autenticado em cartório e assinado por Microsoft. Para obter mais informações, consulte Instalar o PowerShell 7 no macOS.

Módulos atualizados

O PowerShell 7.6.2 inclui os seguintes módulos atualizados:

  • Microsoft. PowerShell.PSResourceGet v1.2.0
  • PSReadLine v2.4.5
  • Microsoft. PowerShell.ThreadJob v2.2.0

Alterações de quebra

  • O Microsoft.PowerShell.ThreadJob substitui o módulo ThreadJob. O Start-ThreadJob cmdlet não foi alterado, portanto, não deve haver um impacto, a menos que você tenha scripts que usem o nome qualificado do módulo. Se você estiver usando o nome qualificado do módulo, atualize o nome para Microsoft.PowerShell.ThreadJob\Start-ThreadJob.
  • Correção feita em WildcardPattern.Escape para escapar os backticks solitários corretamente (nº 25211) (Obrigado @ArmaanMcleod!)
  • Converter o parâmetro -ChildPath para string[] no cmdlet Join-Path (#24677) (Obrigado @ArmaanMcleod!))
  • Remover espaço à direita do nome da origem do evento (nº 24192) (Obrigado @MartinGC94!)

Aprimoramentos de conclusão da guia

  • Expanda corretamente os aliases para seus ResolvedCommand reais (#26571) (Obrigado @kilasuit!)
  • Usar parâmetro HelpMessage para dica de ferramenta na conclusão do parâmetro (nº 25108) (Obrigado @jborean93!)
  • Remover módulos duplicados dos resultados de conclusão (nº 25538) (Obrigado @MartinGC94!)
  • Adicionar preenchimento automático para variáveis atribuídas em ArrayLiteralAst e ParenExpressionAst ( nº 25303) (Obrigado @MartinGC94!))
  • Corrigir o auto-completar para variáveis de ambiente/função (#25346) (Obrigado @jborean93!)
  • Atualizar a inferência de tipo de blocos nomeados e de instruções para não considerar AssignmentStatements e operadores de incremento/decremento como parte de sua saída (nº 21137) (Obrigado @MartinGC94!)
  • Adicionar o complemento do argumento -PropertyType para New-ItemProperty (nº 20415) (Obrigado @ArmaanMcleod!)
  • Adicionar suporte para aspas simples/duplas de conclusão para o parâmetro -Noun em Get-Command (nº 24977) (Obrigado @ArmaanMcleod!)
  • Adicionar suporte para aspas simples/duplas de conclusão para o parâmetro -PSEdition em Get-Module (nº 24971) (Obrigado @ArmaanMcleod!)
  • Converter InvalidCommandNameCharacters em AnalysisCache para SearchValues<char>, permitindo uma busca de caracteres mais eficiente (#24880) (Obrigado @ArmaanMcleod!)
  • Converter s_charactersRequiringQuotes em Concluidores para SearchValues<char> para uma busca de caracteres mais eficiente (nº 24879) (Obrigado @ArmaanMcleod!)
  • Atualizar as chamadas IndexOfAny() com nome de arquivo/caminho inválido para SearchValues<char> para buscar caracteres de maneira mais eficiente ([nº 24896][24896]) (Obrigado @ArmaanMcleod!)
  • Substituir matriz char[] em CompletionRequiresQuotes por SearchValues<char> em cache (nº 24907) (Obrigado @ArmaanMcleod!)
  • Adicionar tratamento de aspas nos Concluidores de Argumento Verb, StrictModeVersion, Scope e PropertyType com método auxiliar único (nº 24839) (Obrigado @ArmaanMcleod!)
  • Corrigir a conclusão do compartilhamento com provedor e espaços (nº 19440) (Obrigado @MartinGC94!)
  • Melhorar a inferência de tipo variável (nº 19830) (Obrigado @MartinGC94!)
  • Adicionar dicas de ferramenta para conclusões de chave de tabela hash (nº 17864) (Obrigado @MartinGC94!)
  • Corrigir inferência de tipo de parâmetros em funções clássicas (nº 25172) (Obrigado @MartinGC94!)
  • Aprimorar a inferência de tipo de atribuição (#21143) (Obrigado @MartinGC94!)
  • Excluir atribuições OutVariable dentro do mesmo CommandAst ao inferir variáveis (nº 25224) (Obrigado @MartinGC94!)
  • Corrigir o completamento do parâmetro quando os requisitos do script falham (nº 17687) (Obrigado @MartinGC94!))
  • Melhorar a conclusão de argumentos de atributo (#25129) (Obrigado @MartinGC94!))
  • Corrigir a conclusão que depende da pseudo-associação em blocos de script (nº 25122) (Obrigado @MartinGC94!)
  • Não complete nomes de comandos duplicados (nº 21113) (Obrigado) @MartinGC94!)
  • Adicionar conclusão para variáveis atribuídas pelo redirecionamento de comando (nº 25104) (Obrigado @MartinGC94!)
  • Corrigir TypeName.GetReflectionType() para funcionar quando a instância TypeName representar uma definição de tipo genérico em um GenericTypeName (nº 24985)
  • Atualizar a conclusão da atribuição de variável/propriedade para que possa recorrer à inferência de tipo (nº 21134) (Obrigado @MartinGC94!)
  • Manipular inferência de tipo para comandos redirecionados (nº 21131) (Obrigado @MartinGC94!)
  • Usar a abordagem Get-Help para localizar arquivos about_*.help.txt com localidade correta para preenchimento (nº 24194) (Obrigado @MartinGC94!)
  • Corrigir a conclusão de variáveis atribuídas dentro de loops Do (nº 25076) (Obrigado @MartinGC94!)
  • Corrigir a conclusão dos caminhos do provedor quando um caminho retorna a si mesmo em vez de seus filhos (nº 24755) (Obrigado @MartinGC94!)
  • Habilitar a conclusão de variáveis com escopo sem especificar escopo (nº 20340) (Obrigado @MartinGC94!)
  • Corrigir o problema com resultados incompletos ao concluir caminhos com curingas em provedores que não são de sistema de arquivos (nº 24757) (Obrigado @MartinGC94!)

Melhorias no cmdlet

  • Atualize MaxVisitCount e MaxHashtableKeyCount se VisitorSafeValueContext indicar que SkipLimitCheck é verdadeiro para Import-PowerShellDataFile
  • Adicionar fallback de localização implícita para Import-LocalizedData (nº19896) (Obrigado @chrisdent-de!)
  • Adicionar -Delimiter parâmetro a Get-Clipboard (nº 26572) (Obrigado @MartinGC94!)
  • Corrigir Out-GridView substituindo o uso de BinaryFormatter obsoleto por implementação personalizada (nº 25497) (Obrigado @mawosoft!)
  • Aprimorar mensagens detalhadas e depurar o nível de log em cmdlets da Web (nº 25510) (Obrigado @JustinGrote!)
  • Aprimorar o registro de logs de depuração da solicitação e resposta do cmdlet Web (nº 25479) (Agradecimentos a @JustinGrote!)
  • Adicione o parâmetro Register-ArgumentCompleter -NativeFallback para dar suporte ao registrar um completador abrangente para comandos nativos (nº 25230)
  • Tratar -Target como literal em New-Item (#25186) (Obrigado @GameMicrowave!))
  • Atualizar variável de ambiente PATH para executável do gerenciador de pacotes em Windows (#25847)
  • Atualizar Get-Service para ignorar erros comuns ao recuperar propriedades não críticas para um serviço (nº 24245) (Obrigado @jborean93!)
  • Adicionar suporte para aspas simples/duplas no Join-String Argument Completer (nº 25283). Obrigado, @ArmaanMcleod!).
  • Remover IsScreenReaderActive() verificação de ConsoleHost (nº 26118)
  • Melhorar o suporte a expressões em $using (Invoke-Command) (Obrigado
  • Alterar o tempo limite do provedor de comentários padrão de 300ms para 1000ms (nº 25910)
  • Adicionar suporte para milhares de separadores na [bigint] conversão (nº 25396) (Obrigado @AbishekPonmudi!)
  • Adicionar MethodInvocation rastreamento para rastreamento de sobrecarga (nº 21320) (Obrigado @jborean93!)
  • Correção ConvertFrom-Json para ignorar comentários dentro de literais de matriz (nº 14553) (nº 26050) (Obrigado @MatejKafka!)
  • Corrigir -Debug para não acionar o ShouldProcess prompt (nº 26081)
  • Corrigir Write-Host para respeitar OutputRendering = PlainText (nº 21188)
  • Corrigir o erro de rastreamento de depuração com extensões mágicas (nº 25726) (Obrigado @jborean93!)
  • Corrigir a inserção de aspas na conclusão se o caminho incluir um caractere de aspas duplas (#25631). Obrigado @MartinGC94!)
  • Corrigir o parâmetro -ProgressAction comum para funções avançadas (nº 24591) (Obrigado @cmkb3!)
  • Corrigir o NullReferenceException ao gravar registros de progresso no console a partir de múltiplos threads (#25440) (Obrigado @kborowinski!)
  • Usar o caminho absoluto em FileSystemProvider.CreateDirectory (número #24615) (Obrigado @Tadas!))
  • Tornar os membros de instância protegidos internos herdados acessíveis no escopo de classes do PowerShell (nº 25245) (Obrigado @mawosoft!)
  • Adicionar métodos internos para verificar preferências (nº 25514) (Obrigado @iSazonov!)
  • Adicionar -ExcludeModule parâmetro a Get-Command (nº 18955) (Obrigado @MartinGC94!)
  • Retorne a propriedade FileName correta para Get-Item ao listar fluxos de dados alternativos (#18019) (Obrigado a @kilasuit!)
  • Corrigir Get-ItemProperty para relatar erro não fatal para exceção de tipo (nº 21115) (Obrigado @ArmaanMcleod!)
  • Corrigir um bug em como q manipula o objeto XmlNode (nº 24669) (Obrigado @brendandburns!)
  • Erro quando New-Item -Force é passado um nome de diretório inválido (nº 24936) (Obrigado @kborowinski!)
  • Permitir que Start-Transcript use $Transcript, que é uma string encapsulada PSObject, para especificar o caminho da transcrição (nº 24963) (Obrigado @kborowinski!)
  • Melhorar Start-Process -Wait a eficiência da sondagem (nº 24711) (Obrigado @jborean93!)
  • Adicionar a conclusão de módulos por seu nome abreviado (#20330) (Obrigado @MartinGC94!))

Melhorias no motor

  • Corrige verificações dos caminhos dos arquivos de configuração do usuário local (#27432)
  • Atualize a telemetria do PowerShell para respeitar a configuração de diagnóstico e comentários em Windows (#27438)
  • Habilitar uso em AppContainers (#27423)
  • Atrasar a notificação de atualização por uma semana para garantir que todos os pacotes fiquem disponíveis (nº 27220)
  • Corrigir uma regressão na API CompletionCompleters.CompleteFilename() que causa exceção de referência nula (nº 26487)
  • Fechar identificadores de cliente de pipe após a criação do processo ssh filho (nº 26564)
  • Atualizar o módulo PSDiagnostics para gerenciar o provedor do PowerShellCore no PowerShell 7 (nº 25590)
  • Permitir a recusa do ouvinte de pipe nomeado usando a variável POWERSHELL_DIAGNOSTICS_OPTOUT de ambiente (nº 26086)
  • Verifique se os tempos limite do soquete são definidos somente durante a validação do token (nº 26066)
  • Corrigir stderr a saída do host do console para respeitar NO_COLOR (nº 24391)
  • Atualizar o protocolo PSRP para preterir a troca de chaves de sessão entre o cliente e o servidor mais recentes (nº 25774)
  • Corrigir a verificação do ssh PATH em SSHConnectionInfo quando o Runspace padrão não está disponível (#25780) (Obrigado @jborean93!)
  • Adicionando o formato hex para códigos de saída de comando nativos (nº 21067) (Obrigado @sba923!)
  • Corrigir erro de loop infinito na inferência de tipos de variáveis (número 25696) (Obrigado
  • Adicionar PSForEach e PSWhere como aliases para os métodos intrínsecos Where do PowerShell e Foreach (nº 25511) (Obrigado @powercode!)
  • Adicionado o módulo AIShell à lista de coleções de telemetria (#24747)
  • Adicionado auxiliar em EnumSingleTypeConverter para obter os nomes de enumeração como uma matriz (nº 17785) (Obrigado @fflaten!)
  • Atualizar DnsNameList para X509Certificate2 para usar o método X509SubjectAlternativeNameExtension.EnumerateDnsNames() (nº 24714) (Obrigado @ArmaanMcleod!)
  • Transformar ErrorRecord com mensagem de exceção vazia em uma cadeia de caracteres vazia (nº 24949) (Obrigado @MatejKafka!)
  • Adicionar PipelineStopToken a Cmdlet, que será sinalizado quando o pipeline estiver em processo de parada (nº 24620) (Obrigado @jborean93!)
  • Reversão para AppLocker após WldpCanExecuteFile (nº 24912)
  • Mover o log de invocação do método .NET para depois que a conversão de tipo necessária for feita para argumentos de método (#25022)
  • Corrigir loop infinito na inferência de tipo variável (nº 25206) (Obrigado @MartinGC94!)
  • Remova a sugestão difusa antiga e corrija a sugestão de nome do arquivo de script local (nº 25177)
  • Tornar as APIs públicas SystemPolicy visíveis, mas inativas em plataformas Unix, para que possam ser incluídas no PowerShellStandard.Library (#25051)
  • Definir manipuladores padrão explicitamente ao iniciar um processo com -NoNewWindow (nº 25061)
  • Corrigir dica de ferramenta para expansão de variável e incluir descrição (nº 25112) (Obrigado @jborean93!)
  • Usar o caminho de arquivo de script ao completar caminhos relativos de instruções (nº 20017) (Obrigado @MartinGC94!)
  • Permitir a análise de DSC por meio de camadas de tradução de arquitetura do sistema operacional (nº 24852) (Obrigado @bdeb1337!)

Recursos experimentais

O PowerShell 7.6 inclui as seguintes alterações nos recursos experimentais.

Os seguintes recursos foram convertidos em recursos principais:

Esta versão inclui os seguintes recursos experimentais: