Partilhar via


O que há de novo no PowerShell 7.6

O PowerShell 7.6-preview.6 inclui as seguintes funcionalidades, atualizações e alterações urgentes. O PowerShell 7.6 é construído sobre a versão .NET 10.0.0 GA.

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

Módulos atualizados

O PowerShell 7.6-preview.6 inclui os seguintes módulos atualizados:

  • Microsoft.PowerShell.PSResourceGet v1.2.0-preview5
  • PSReadLine v2.4.4-beta4
  • Microsoft.PowerShell.ThreadJob v2.2.0
  • ThreadJob v2.1.0

O ThreadJob foi renomeado para o módulo Microsoft.PowerShell.ThreadJob . Não há diferença na funcionalidade do módulo. Para garantir compatibilidade com versões anteriores para scripts que usam o nome antigo, o módulo ThreadJob v2.1.0 é um módulo proxy que aponta para o Microsoft.PowerShell.ThreadJob v2.2.0.

Alterações Disruptivas

  • Corrigir WildcardPattern.Escape para escapar backticks solitários corretamente (#25211) (Obrigado @ArmaanMcleod!))
  • Converter -ChildPath parâmetro em string[] para Join-Path cmdlet (#24677) (Obrigado @ArmaanMcleod!)
  • Remover espaço à direita do nome de origem do evento (#24192) (Obrigado @MartinGC94!)

Melhorias na completação de tabulação

  • Expandir corretamente os Aliases para o seu verdadeiro ResolvedCommand (#26571) (Obrigado @kilasuit!)
  • Use parâmetro HelpMessage para dica de ferramenta no preenchimento de parâmetros (#25108) (Obrigado @jborean93!)
  • Remover módulos duplicados dos resultados de conclusão (#25538) (Obrigado @MartinGC94!)
  • Adicionar conclusão para variáveis atribuídas em ArrayLiteralAst e ParenExpressionAst (#25303) (Obrigado @MartinGC94!)
  • Corrigir conclusão da guia para variáveis env/function (#25346) (Obrigado @jborean93!)
  • Atualizar a inferência do tipo de bloco Named e Statement para não considerar os AssignmentStatements e os operadores de Incremento/decremento como parte da sua saída (#21137) (Obrigado @MartinGC94!)
  • Adicionar -PropertyType argumento completer para New-ItemProperty (#21117) (Obrigado @ArmaanMcleod!)
  • Adicionar suporte para aspas simples/duplas para o parâmetro -Noun no contexto de Get-Command (#24977) (Obrigado @ArmaanMcleod!)
  • Adicionar suporte para completar aspas simples/duplas para o parâmetro -PSEdition para Get-Module (#24971) (Obrigado @ArmaanMcleod!)
  • Converter InvalidCommandNameCharacters em AnalysisCache para SearchValues<char>, visando uma pesquisa de caracteres mais eficiente (#24880) (Obrigado @ArmaanMcleod!)
  • Converter s_charactersRequiringQuotes nos Completadores de Conclusão para SearchValues<char> para uma pesquisa mais eficiente de caracteres (#24879) (Obrigado @ArmaanMcleod!))
  • Atualize as chamadas IndexOfAny() com caminho/nome de ficheiro inválido para SearchValues<char> para tornar a pesquisa de caracteres mais eficiente ([#24896][24896]) (Obrigado @ArmaanMcleod!)
  • Substituir char[] array em CompletionRequiresQuotes por SearchValues<char> em cache (#24907) (Obrigado @ArmaanMcleod!))
  • Adicionar manipulação de cotações em Verb, StrictModeVersionScopee PropertyType Preenchimento de Argumentos com método auxiliar único (#24839) (Obrigado@ArmaanMcleod!)
  • Corrigir a conclusão do compartilhamento com provedor e espaços (#19440) (Obrigado @MartinGC94!)
  • Melhorar a inferência de tipo variável (#19830) (Obrigado @MartinGC94!)
  • Adicionar dicas de ferramentas para preenchimento de chaves hashtable (#17864) (Obrigado @MartinGC94!)
  • Corrigir inferência de tipo de parâmetros em funções clássicas (#25172) (Obrigado @MartinGC94!)
  • Melhorar a inferência do tipo de atribuição (#21143) (Obrigado @MartinGC94!)
  • Excluir atribuições OutVariable dentro do mesmo CommandAst ao inferir variáveis (#25224) (Obrigado @MartinGC94!)
  • Corrigir conclusão de parâmetros quando os requisitos de script falharem (#17687) (Obrigado @MartinGC94!)
  • Melhorar a conclusão de argumentos de atributo (#25129) (Obrigado @MartinGC94!)
  • Correção da conclusão que depende de ligação fictícia em blocos de script (#25122) (Obrigado @MartinGC94!))
  • Não complete nomes de comandos duplicados (#21113) (Obrigado @MartinGC94!)
  • Adicionar conclusão para variáveis atribuídas pelo redirecionamento de comando (#25104) (Obrigado @MartinGC94!)
  • Corrigir TypeName.GetReflectionType() para funcionar quando a instância TypeName representa uma definição de tipo genérica dentro de um GenericTypeName (#24985)
  • Atualizar a conclusão da atribuição de variáveis/propriedades para que possa recorrer a inferência de tipo (#21134) (Obrigado @MartinGC94!))
  • Manipular inferência de tipo para comandos redirecionados (#21131) (Obrigado @MartinGC94!)
  • Utilize a abordagem Get-Help para encontrar about_*.help.txt ficheiros com a localidade correta para compilações (#24194) (Obrigado @MartinGC94!)
  • Correção de conclusão de variáveis atribuídas dentro de loops Do (#25076) (Obrigado @MartinGC94!)
  • Corrigir a conclusão dos percursos do provedor quando um percurso retorna a si mesmo em vez dos seus descendentes (#24755) (Obrigado @MartinGC94!)
  • Permitir a conclusão de variáveis de escopo sem especificar o escopo (#20340) (Obrigado @MartinGC94!))
  • corrigir problema com resultados incompletos ao completar caminhos com caracteres universais em provedores não relacionados ao sistema de ficheiros (#24757) (Obrigado @MartinGC94!)

Melhorias no cmdlet

  • Adicionar -Delimiter parâmetro a Get-Clipboard (#26572) (Obrigado @MartinGC94!)
  • Corrija Out-GridView substituindo o uso de BinaryFormatter obsoleto pela implementação personalizada (#25497) (Obrigado @mawosoft!)
  • Aprimorar as mensagens de nível detalhado e de depuração de registo em cmdlets da Web (#25510) (Obrigado @JustinGrote!)
  • Melhorar o log de depuração da solicitação e resposta do cmdlet da Web (#25479) (Obrigado @JustinGrote!)
  • Adicione o parâmetro Register-ArgumentCompleter -NativeFallback para suportar o registo de um completer abrangente para comandos nativos (#25230)
  • Trate -Target como literal em New-Item (#25186) (Obrigado @GameMicrowave!))
  • Atualizar variável de ambiente PATH para executável do gerenciador de pacotes no Windows (#25847)
  • Atualização Get-Service para ignorar erros comuns ao recuperar propriedades não críticas para um serviço (#24245) (Obrigado @jborean93!)
  • Adicionar suporte de aspas simples/duplas para Join-String Argument Completer (#25283) (Obrigado @ArmaanMcleod!)
  • Remover IsScreenReaderActive() verificação em ConsoleHost (#26118)
  • Melhorar o suporte à $using expressão em Invoke-Command (#24025) (Obrigado @jborean93!)
  • Altere o tempo limite padrão do provedor de feedback de 300ms para 1000ms (#25910)
  • Adicionar suporte para milhares de separadores na [bigint] fundição (#25396) (Obrigado @AbishekPonmudi!)
  • Adicionar MethodInvocation rastreamento de sobrecarga (#21320) (Obrigado @jborean93!)
  • Correção ConvertFrom-Json para ignorar comentários dentro de literais de matriz (#14553) (#26050) (Obrigado @MatejKafka!)
  • Corrigir -Debug para não acionar o prompt de comando ShouldProcess (#26081)
  • Corrigir Write-Host para respeitar OutputRendering = PlainText (#21188)
  • Corrigir erro de rastreamento de depuração com extensões mágicas (#25726) (Obrigado @jborean93!)
  • Corrija a citação 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 (#24591) (Obrigado @cmkb3!)
  • Corrigir o NullReferenceException ao gravar registros de progresso no console a partir de vários threads (#25440) (Obrigado @kborowinski!)
  • Use o caminho absoluto em FileSystemProvider.CreateDirectory (#24615) (Obrigado @Tadas!)
  • Tornar os membros herdados da instância interna protegida acessíveis no escopo da classe PowerShell (#25245) (Obrigado @mawosoft!)
  • Adicionar métodos internos para verificar Preferências (#25514) (Obrigado @iSazonov!)
  • Adicionar -ExcludeModule parâmetro a Get-Command (#18955) (Obrigado @MartinGC94!)
  • Retornar a propriedade FileName correta para Get-Item ao listar fluxos de dados alternativos (#18019) (Obrigado @kilasuit!)
  • Corrigir Get-ItemProperty para relatar erro não finalizador para exceção de conversão (#21115) (Obrigado @ArmaanMcleod!)
  • Corrigir um bug em como q lida com o objeto XmlNode (#24669) (Obrigado @brendandburns!)
  • Erro quando New-Item -Force é passado um nome de diretório inválido (#24936) (Obrigado @kborowinski!)
  • Permitir que Start-Transcript use $Transcript, que é uma string PSObject embrulhada, para especificar o caminho da transcrição (#24963) (Obrigado @kborowinski!))
  • Melhorar a Start-Process -Wait eficiência da sondagem (#24711) (Obrigado @jborean93!)
  • Adicionar conclusão de módulos pelo seu nome abreviado (#20330) (Obrigado @MartinGC94!))

Melhorias no motor

  • Corrigir uma regressão na API CompletionCompleters.CompleteFilename() que causa exceção de referência nula (#26487)
  • Fechar os manipuladores de cliente de pipe após criar o processo filho ssh (#26564)
  • Atualize o módulo PSDiagnostics para gerenciar o provedor PowerShellCore no PowerShell 7 (#25590)
  • Permitir desativação do ouvinte nomeado do pipe usando a variável de ambiente POWERSHELL_DIAGNOSTICS_OPTOUT (#26086)
  • Verifique se os tempos limite do soquete estão definidos somente durante a validação do token (#26066)
  • Corrigir stderr a saída do host do console para respeitar NO_COLOR (#24391)
  • Atualizar o protocolo PSRP para substituir a troca de chaves de sessão entre o cliente e o servidor mais recentes (#25774)
  • Corrigir a ssh verificação SSHConnectionInfo PATH quando o Runspace padrão não está disponível (#25780) (Obrigado @jborean93!)
  • Adicionando formato hexadecimal para códigos de saída de comando nativos (#21067) (Obrigado @sba923!)
  • Corrigir falha de loop infinito na inferência de tipo variável (#25696) (Obrigado @MartinGC94!)
  • Adicionar PSForEach e PSWhere como aliases para os métodos Where intrínsecos do PowerShell e Foreach (#25511) (Obrigado @powercode!)
  • Adicionado o módulo AIShell à lista de coleta de telemetria (#24747)
  • Adicionado ajudante em EnumSingleTypeConverter para obter nomes de enum como array (#17785) (Obrigado @fflaten!))
  • Atualizar DnsNameList para X509Certificate2 para usar o X509SubjectAlternativeNameExtension.EnumerateDnsNames() método (#24714) (Obrigado @ArmaanMcleod!)
  • Stringificar ErrorRecord com uma mensagem de exceção vazia para uma string vazia (#24949) (Obrigado @MatejKafka!))
  • Adicionar PipelineStopToken ao Cmdlet qual será sinalizado quando o pipeline estiver parando (#24620) (Obrigado @jborean93!)
  • Regresso para o AppLocker após WldpCanExecuteFile (#24912)
  • Mover o registo de invocação de métodos .NET para depois de concluída a conversão de tipo necessária nos argumentos do método (#25022)
  • Corrige loop infinito na inferência de tipos de variáveis (#25206) (Obrigado @MartinGC94!))
  • Remova a sugestão difusa antiga e corrija a sugestão de nome de arquivo de script local (#25177)
  • Torne SystemPolicy as APIs públicas visíveis, mas não operacionais em plataformas Unix para que possam ser incluídas em PowerShellStandard.Library (#25051)
  • Definir manipuladores padrão explicitamente ao iniciar um processo com -NoNewWindow (#25061)
  • Corrigir dica de ferramenta para expansão variável e incluir desc (#25112) (Obrigado @jborean93!)
  • Use o caminho do arquivo de script ao completar os caminhos relativos para utilizar instruções (#20017) (Obrigado @MartinGC94!)
  • Permitir a análise DSC através das camadas de tradução da arquitetura do SO (#24852) (Obrigado @bdeb1337!))

Características experimentais

O PowerShell 7.6-preview.6 inclui as seguintes alterações às funcionalidades experimentais.

As seguintes funcionalidades foram convertidas em funcionalidades mainstream:

Esta versão inclui as seguintes funcionalidades experimentais: