Novidades no PowerShell 7.0What's New in PowerShell 7.0

O PowerShell 7.0 é uma edição do PowerShell que é open-source, multiplataforma (Windows, macOS e Linux) e criada para ambientes heterogêneos e nuvem híbrida.PowerShell 7.0 is an open-source, cross-platform (Windows, macOS, and Linux) edition of PowerShell, built to manage heterogeneous environments and hybrid cloud.

Nessa versão, apresentamos uma série de novos recursos, incluindo:In this release, we're introducing a number of new features, including:

  • Paralelização de pipeline com ForEach-Object -ParallelPipeline parallelization with ForEach-Object -Parallel
  • Novos operadores:New operators:
    • Operador ternário: a ? b : cTernary operator: a ? b : c
    • Operadores de cadeia de pipeline: || e &&Pipeline chain operators: || and &&
    • Operadores condicionais nulos: ?? e ??=Null conditional operators: ?? and ??=
  • Uma exibição de erro simplificada e dinâmica e cmdlet Get-Error para facilitar a investigação de errosA simplified and dynamic error view and Get-Error cmdlet for easier investigation of errors
  • Uma camada de compatibilidade que permite aos usuários importar módulos em uma sessão implícita do Windows PowerShellA compatibility layer that enables users to import modules in an implicit Windows PowerShell session
  • Notificações automáticas de nova versãoAutomatic new version notifications
  • A capacidade de invocar recursos de DSC diretamente do PowerShell 7 (experimental)The ability to invoke DSC resources directly from PowerShell 7 (experimental)

Para ver uma lista completa de recursos e correções, confira os logs de alterações.To see a full list of features and fixes, see the changelogs.

Onde posso instalar o PowerShell?Where can I install PowerShell?

Atualmente, o PowerShell 7 dá suporte aos seguintes sistemas operacionais em x64, incluindo:PowerShell 7 currently supports the following operating systems on x64, including:

  • Windows 8.1 e 10Windows 8.1, and 10
  • Windows Server 2012, 2012 R2, 2016 e 2019Windows Server 2012, 2012 R2, 2016, and 2019
  • macOS 10.13 ou posteriormacOS 10.13+
  • RHEL (Red Hat Enterprise Linux) / CentOS 7Red Hat Enterprise Linux (RHEL) / CentOS 7
  • Fedora 30 ou posteriorFedora 30+
  • Debian 9Debian 9
  • Ubuntu LTS 16.04 ou posteriorUbuntu LTS 16.04+
  • Alpine Linux 3.8 ou posteriorAlpine Linux 3.8+

Além disso, o PowerShell 7.0 oferece suporte às variantes ARM32 e ARM64 do Debian, Ubuntu e ARM64 Alpine Linux.Additionally, PowerShell 7.0 supports ARM32 and ARM64 flavors of Debian, Ubuntu, and ARM64 Alpine Linux.

Confira as instruções de instalação do seu sistema operacional preferencial Windows, macOS ou Linux.Check the installation instructions for your preferred operating system Windows, macOS, or Linux.

Embora não tenha suporte oficial, a comunidade também forneceu pacotes para o Arch e o Kali Linux.While not officially supported, the community has also provided packages for Arch and Kali Linux.

Observação

Atualmente, o Debian 10 e o CentOS 8 não dão suporte à comunicação remota do WinRM.Debian 10 and CentOS 8 currently do not support WinRM remoting. Para obter detalhes sobre como configurar a comunicação remota baseada em SSH, confira Comunicação remota do PowerShell por SSH.For details on setting up SSH-based remoting, see PowerShell Remoting over SSH.

Para obter informações mais atualizadas sobre os sistemas operacionais com suporte e o ciclo de vida de suporte, confira o Ciclo de vida de suporte do PowerShell.For more up-to-date information about supported operating systems and support lifecycle, see the PowerShell Support Lifecycle.

Executar o PowerShell 7Running PowerShell 7

O PowerShell 7 é instalado em um diretório separado do Windows PowerShell.PowerShell 7 installs to a directory seperately from Windows PowerShell. Isso permite a execução do PowerShell 7 lado a lado com o Windows PowerShell 5.1.This enables you to run PowerShell 7 side-by-side with Windows PowerShell 5.1. Para o PowerShell Core 6.x, o PowerShell 7 é uma atualização in-loco que remove o PowerShell Core 6.x.For PowerShell Core 6.x, PowerShell 7 is an in-place upgrade that removes PowerShell Core 6.x.

  • O PowerShell 7 é instalado em %programfiles%\PowerShell\7PowerShell 7 is installed to %programfiles%\PowerShell\7
  • A pasta %programfiles%\PowerShell\7 é adicionada ao $env:PATHThe %programfiles%\PowerShell\7 folder is added to $env:PATH

O pacote do instalador do PowerShell 7 atualiza as versões anteriores do PowerShell Core 6.x:The PowerShell 7 installer package upgrades previous versions of PowerShell Core 6.x:

  • PowerShell Core 6.x no Windows: %programfiles%\PowerShell\6 é substituído por %programfiles%\PowerShell\7PowerShell Core 6.x on Windows: %programfiles%\PowerShell\6 is replaced by %programfiles%\PowerShell\7
  • Linux: /opt/microsoft/powershell/6 é substituído por /opt/microsoft/powershell/7Linux: /opt/microsoft/powershell/6 is replaced by /opt/microsoft/powershell/7
  • macOS: /usr/local/microsoft/powershell/6 é substituído por /usr/local/microsoft/powershell/7macOS: /usr/local/microsoft/powershell/6 is replaced by /usr/local/microsoft/powershell/7

Observação

No Windows PowerShell, o executável para iniciar o PowerShell é denominado powershell.exe.In Windows PowerShell, the executable to launch PowerShell is named powershell.exe. Da versão 6 em diante, o nome do executável é alterado para dar suporte à execução lado a lado.In version 6 and above, the executable name is changed to support side-by-side execution. O novo nome do executável para iniciar o PowerShell 7 é pwsh.exe.The new executable name to launch PowerShell 7 is pwsh.exe. Os builds de versão prévia permanecem no local como pwsh-preview em vez de pwsh no diretório da versão prévia da versão 7.Preview builds remain in-place as pwsh-preview instead of pwsh under the 7-preview directory.

Melhor compatibilidade com versões anteriores do Windows PowerShellImproved backwards compatibility with Windows PowerShell

O PowerShell 7.0 marca uma mudança para o .NET Core 3.1, permitindo significativamente mais compatibilidade com os módulos existentes do Windows PowerShell.PowerShell 7.0 marks a move a to .NET Core 3.1, enabling significantly more backwards compatibility with existing Windows PowerShell modules. Isso inclui muitos módulos no Windows que exigem funcionalidade da GUI, como Out-GridView e Show-Command, bem como muitos módulos de gerenciamento de funções fornecidos como parte do Windows.This includes many modules on Windows that require GUI functionality like Out-GridView and Show-Command, as well as many role management modules that ship as part of Windows.

Para o Windows, um novo parâmetro de opção UseWindowsPowerShell é adicionado ao Import-Module.For Windows, a new switch parameter UseWindowsPowerShell is added to Import-Module. Essa opção cria um módulo proxy no PowerShell 7 que usa um processo local do Windows PowerShell para executar implicitamente todos os cmdlets contidos nesse módulo.This switch creates a proxy module in PowerShell 7 that uses a local Windows PowerShell process to implicitly run any cmdlets contained in that module. Saiba mais informações sobre Import-Module.For more information on Import-Module.

Para obter mais informações sobre quais módulos da Microsoft funcionam com o PowerShell 7.0, confira a Tabela de Compatibilidade de Módulos.For more information on which Microsoft modules work with PowerShell 7.0, see the Module Compatibility Table.

Execução paralela adicionada ao ForEach-ObjectParallel execution added to ForEach-Object

O cmdlet ForEach-Object, que itera itens em uma coleção, agora possui paralelismo interno com o novo parâmetro Parallel.The ForEach-Object cmdlet, which iterates items in a collection, now has built-in parallelism with the new Parallel parameter.

Por padrão, os blocos de script paralelos usam o diretório de trabalho atual do chamador que iniciou as tarefas paralelas.By default, parallel script blocks use the current working directory of the caller that started the parallel tasks.

Este exemplo recupera 50.000 entradas de log de 5 logs do sistema em um computador Windows local:This example retrieves 50,000 log entries from 5 system logs on a local Windows machine:

$logNames = 'Security','Application','System','Windows PowerShell','Microsoft-Windows-Store/Operational'

$logEntries = $logNames | ForEach-Object -Parallel {
    Get-WinEvent -LogName $_ -MaxEvents 10000
} -ThrottleLimit 5

$logEntries.Count

50000

O parâmetro Parallel especifica o bloco de script que é executado em paralelo para cada nome de log de entrada.The Parallel parameter specifies the script block that is run in parallel for each input log name.

O novo parâmetro ThrottleLimit limita o número de blocos de script em execução paralelamente em determinado momento.The new ThrottleLimit parameter limits the number of script blocks running in parallel at a given time. O padrão é 5.The default is 5.

Use a variável $_ para representar o objeto de entrada atual no bloco de script.Use the $_ variable to represent the current input object in the script block. Use o escopo $using: para passar referências de variáveis ao bloco de script em execução.Use the $using: scope to pass variable references to the running script block.

Saiba mais informações sobre ForEach-Object.For more information about ForEach-Object.

Operador ternárioTernary operator

O PowerShell 7.0 apresenta um operador ternário que se comporta como uma instrução simplificada if-else.PowerShell 7.0 introduces a ternary operator which behaves like a simplified if-else statement. O operador ternário do PowerShell é modelado de perto a partir da sintaxe do operador ternário em C#:PowerShell's ternary operator is closely modeled from the C# ternary operator syntax:

<condition> ? <if-true> : <if-false>

A expressão de condição é sempre avaliada, e seu resultado é convertido em um booliano para determinar qual branch é avaliado a seguir:The condition-expression is always evaluated and its result converted to a Boolean to determine which branch is evaluated next:

  • A expressão <if-true> será executada se a expressão <condition> for verdadeiraThe <if-true> expression is executed if the <condition> expression is true
  • A expressão <if-false> será executada se a expressão <condition> for falsaThe <if-false> expression is executed if the <condition> expression is false

Por exemplo:For example:

$message = (Test-Path $path) ? "Path exists" : "Path not found"

Nesse exemplo, se o caminho existir, Caminho existente será exibido.In this example, if the path exists, then Path exists is displayed. Se o caminho não existir, Caminho não encontrado será exibido.If the path does not exist, then Path not found is displayed.

Saiba mais informações sobre About If.For more information About If.

Operadores de cadeia de pipelinePipeline chain operators

O PowerShell 7 implementa os operadores && e || para encadear pipelines condicionalmente.PowerShell 7 implements the && and || operators to conditionally chain pipelines. Esses operadores são conhecidos no PowerShell como "operadores de cadeia de pipeline" e são semelhantes às listas AND e OR em shells como Bash e Zsh , além de símbolos de processamento condicional no Shell de Comando do Windows ( cmd.exe ).These operators are known in PowerShell as "pipeline chain operators", and are similar to AND and OR lists in shells like Bash and Zsh , as well as conditional processing symbols in the Windows Command Shell ( cmd.exe ).

O operador && executa o pipeline à direita, se o pipeline à esquerda foi bem-sucedido.The && operator executes the right-hand pipeline, if the left-hand pipeline succeeded. Por outro lado, o operador || executa o pipeline à direita, se o pipeline à esquerda falhou.Conversely, the || operator executes the right-hand pipeline if the left-hand pipeline failed.

Observação

Esses operadores usam as variáveis $? e $LASTEXITCODE para determinar se um pipeline falhou.These operators use the $? and $LASTEXITCODE variables to determine if a pipeline failed. Isso permite que você os utilize com comandos nativos, e não apenas com cmdlets ou funções.This allows you to use them with native commands and not just with cmdlets or functions.

Aqui, o primeiro comando é bem-sucedido, e o segundo comando é executado:Here, the first command succeeds and the second command is executed:

Write-Output 'First' && Write-Output 'Second'
First
Second

Aqui, o primeiro comando falha, o segundo não é executado:Here, the first command fails, the second is not executed:

Write-Error 'Bad' && Write-Output 'Second'
Write-Error: Bad

Aqui, o primeiro comando é bem-sucedido, o segundo comando não é executado:Here, the first command succeeds, the second command is not executed:

Write-Output 'First' || Write-Output 'Second'
First

Aqui, o primeiro comando falha, então o segundo comando é executado:Here, the first command fails, so the second command is executed:

Write-Error 'Bad' || Write-Output 'Second'
Write-Error 'Bad'
Second

Saiba mais informações Sobre operadores de cadeia de pipeline.For more information About Pipeline Chain Operators.

Operadores de avaliação de nulo, de atribuição e condicionaisNull-coalescing, assignment, and conditional operators

O PowerShell 7 inclui o operador de avaliação de nulo ??, atribuição condicional nula ??= e operadores de acesso de membro condicional nulo ?. e ?[].PowerShell 7 includes Null coalescing operator ??, Null conditional assignment ??=, and Null conditional member access operators ?. and ?[].

Operador de avaliação de nulo??Null-coalescing Operator ??

O operador de avaliação de nulo ?? retorna o valor do seu operando esquerdo caso não seja nulo.The null-coalescing operator ?? returns the value of its left-hand operand if it isn't null. Caso contrário, ele avalia o operando do lado direito e retorna seu resultado.Otherwise, it evaluates the right-hand operand and returns its result. O operador ?? não avaliará o operando do lado direito se o operando esquerdo for avaliado como não nulo.The ?? operator doesn't evaluate its right-hand operand if the left-hand operand evaluates to non-null.

$x = $null
$x ?? 100
100

No seguinte exemplo, o operando à direita não será avaliado:In the following example, the right-hand operand won't be evaluated:

[string] $todaysDate = '1/10/2020'
$todaysDate ?? (Get-Date).ToShortDateString()
1/10/2020

Operador de atribuição condicional nula ?? =Null conditional assignment operator ??=

O operador de atribuição condicional nula ??= atribuirá o valor de seu operando do lado direito para seu operando esquerdo somente se o operando esquerdo for avaliado como nulo.The null conditional assignment operator ??= assigns the value of its right-hand operand to its left-hand operand only if the left-hand operand evaluates to null. O operador ??= não avaliará o operando do lado direito se o operando esquerdo for avaliado como não nulo.The ??= operator doesn't evaluate its right-hand operand if the left-hand operand evaluates to non-null.

$x = $null
$x ??= 100
$x
100

No seguinte exemplo, o operando à direita não é avaliado:In the following example, the right-hand operand is not evaluated:

[string] $todaysDate = '1/10/2020'
$todaysDate ??= (Get-Date).ToShortDateString()
1/10/2020

Operadores de acesso de membro condicional nulo ?.Null conditional member access operators ?. e ?[] (Experimental)and ?[] (Experimental)

Observação

Este é um recurso experimental chamado PSNullConditionalOperators.This is an experimental feature named PSNullConditionalOperators. Para mais informações, confira Usar recursos experimentais.For more information, see Using Experimental Features.

Um operador condicional nulo permitirá acesso de membro ?. ou acesso de elemento ?[] ao seu operando somente se esse operando for avaliado como não nulo; caso contrário, ele retornará nulo.A null conditional operator permits member access, ?., or element access, ?[], to its operand only if that operand evaluates to non-null; otherwise, it returns null.

Observação

Como o PowerShell permite que ? faça parte do nome da variável, é necessária uma especificação formal do nome da variável para usar esses operadores.Since PowerShell allows ? to be part of the variable name, formal specification of the variable name is required for using these operators. Portanto, é necessário usar {} em torno dos nomes de variáveis, como ${a} ou quando ? faz parte do nome da variável ${a?}.So it is required to use {} around the variable names like ${a} or when ? is part of the variable name ${a?}.

No seguinte exemplo, o valor da propriedade membro Status é retornado:In the following example, the value of the member property Status is returned:

$Service = Get-Service -Name 'bits'
${Service}?.status
Stopped

O seguinte exemplo retorna nulo sem tentar acessar o nome do membro Status :The following example returns null, without trying to access the member name Status :

$service = $Null
${Service}?.status

Da mesma forma, usando ?[], o valor do elemento é retornado:Similarly, using ?[], the value of the element is returned:

$a = 1..10
${a}?[0]
1

Quando o operando é nulo, o elemento não é acessado, e nulo é retornado:And when the operand is null, the element isn't accessed and null is returned:

$a = $null
${a}?[0]

Saiba mais informações Sobre operadores.For more information About_Operators.

Novo modo de exibição ConciseView e cmdlet Get-ErrorNew view ConciseView and cmdlet Get-Error

O PowerShell 7.0 aprimora a exibição de mensagens de erro para aumentar a legibilidade dos erros interativos e de script com um novo modo de exibição padrão ConciseView.PowerShell 7.0 enhances the display of error messages to improve the readability of interactive and script errors with a new default view ConciseView. Os modos de exibição são selecionáveis pelo usuário por meio da variável de preferência $ErrorView.The views are user-selectable through the preference variable $ErrorView.

Com ConciseView , se um erro não for de script ou do analisador, será exibida uma mensagem de erro de linha única:With ConciseView , if an error is not from a script or parser error, then it's a single line error message:

Get-Childitem -Path c:\NotReal
Get-ChildItem: Cannot find path 'C:\NotReal' because it does not exist

Se o erro ocorrer durante a execução do script ou for um erro de análise, o PowerShell retornará uma mensagem de erro de várias linhas que contém o erro, um ponteiro e uma mensagem mostrando onde o erro está nessa linha.If the error occurs during script execution or is a parsing error, PowerShell returns a multiline error message that contains the error, a pointer and error message showing where the error is in that line. Se o terminal não oferecer suporte a sequências de escape de cor ANSI (VT100), as cores não serão exibidas.If the terminal doesn't support ANSI color escape sequences (VT100), then colors are not displayed.

Exibição de erro de um script

O modo de exibição padrão no PowerShell 7 é ConciseView.The default view in PowerShell 7 is ConciseView. O modo de exibição padrão anterior era NormalView , que você pode selecionar ao definir a variável de preferência $ErrorView.The previous default view was NormalView and you can select thisby setting the preference variable $ErrorView.

$ErrorView = 'NormalView' # Sets the error view to NormalView
$ErrorView = 'ConciseView' # Sets the error view to ConciseView

Observação

Uma nova propriedade ErrorAccentColor é adicionada a $Host.PrivateData para dar suporte à alteração da cor de destaque da mensagem de erro.A new property ErrorAccentColor is added to $Host.PrivateData to support changing the accent color of the error message.

Quando desejado, um novo cmdlet Get-Error fornece um modo de exibição detalhado e completo do erro totalmente qualificado.A new cmdlet Get-Error provides a complete detailed view of the fully qualified error when desired. Por padrão, o cmdlet exibe os detalhes completos, incluindo as exceções internas, do último erro que ocorreu.By default the cmdlet displays the full details, including inner exceptions, of the last error that occurred.

Exibir de Get-Error

O cmdlet Get-Error dá suporte à entrada do pipeline usando a variável interna $Error.The Get-Error cmdlet supports input from the pipeline using the built-in variable $Error. Get-Error exibe todos os erros direcionados.Get-Error displays all piped errors.

$Error | Get-Error

O cmdlet Get-Error dá suporte ao parâmetro Newest , permitindo especificar quantos erros da sessão atual você deseja exibir.The Get-Error cmdlet supports the Newest parameter, allowing you to specify how many errors from the current session you wish displayed.

Get-Error -Newest 3 # Displays the lst three errors that occurred in the session

Saiba mais informações sobre Get-Error.For more information about Get-Error.

Notificação de nova versãoNew version notification

O PowerShell 7 usa notificações de atualização para alertar os usuários sobre a existência de atualizações no PowerShell.PowerShell 7 uses update notifications to alert users to the existence of updates to PowerShell. Uma vez por dia, o PowerShell consulta um serviço online para determinar se uma versão mais recente está disponível.Once per day, PowerShell queries an online service to determine if a newer version is available.

Observação

A verificação de atualização ocorre durante a primeira sessão em determinado período de 24 horas.The update check happens during the first session in a given 24-hour period. Por motivos de desempenho, a verificação de atualização é iniciada três segundos após o início da sessão.For performance reasons, the update check starts 3 seconds after the session begins. A notificação é mostrada apenas no início das sessões subsequentes.The notification is shown only on the start of subsequent sessions.

Por padrão, o PowerShell assina um dos dois canais de notificação diferentes dependendo de sua versão/branch.By default, PowerShell subscribes to one of two different notification channels depending on its version/branch. As versões GA (em disponibilidade geral) com suporte do PowerShell retornam apenas notificações para versões GA atualizadas.Supported, Generally Available (GA) versions of PowerShell only return notifications for updated GA releases. As versões RC (Release Candidate) e Versão prévia notificam atualizações para RC, GA e versão prévia.Preview and Release Candidate (RC) releases notify of updates to preview, RC, and GA releases.

O comportamento da notificação de atualização pode ser alterado usando a variável de ambiente $Env:POWERSHELL_UPDATECHECK.The update notification behavior can be changed using the $Env:POWERSHELL_UPDATECHECK environment variable. Os seguintes valores têm suporte:The following values are supported:

  • Padrão é o mesmo que não definir $Env:POWERSHELL_UPDATECHECKDefault is the same as not defining $Env:POWERSHELL_UPDATECHECK
    • As versões GA notificam atualizações de versões GAGA releases notify of updates to GA releases
    • As versões RC/Versão prévia notificam atualizações de GA e versão préviaPreview/RC releases notify of updates to GA and preview releases
  • Desativar desativa o recurso de notificação de atualizaçãoOff turns off the update notification feature
  • LTS notifica apenas sobre atualizações de versões GA de LTS (manutenção em longo prazo)LTS only notifies of updates to long-term-servicing (LTS) GA releases

Observação

A variável de ambiente $Env:POWERSHELL_UPDATECHECK não existe até que seja definida pela primeira vez.The environment variable $Env:POWERSHELL_UPDATECHECK does not exist until it is set for the first time.

Para definir a notificação de versão apenas para versões LTS:To set the version notification for LTS releases only:

$Env:POWERSHELL_UPDATECHECK = 'LTS'

Para definir a notificação de versão para o comportamento Default:To set the version notification to the Default behavior:

$Env:POWERSHELL_UPDATECHECK = 'Default'

Saiba mais informações Sobre notificações de atualização.For more information About Update Notifications.

Novo suporte a recursos DSC com Invoke-DSCResource (experimental)New DSC Resource support with Invoke-DSCResource (Experimental)

Observação

Este é um recurso experimental chamado PSDesiredStateConfiguration.InvokeDscResource.This is an experimental feature named PSDesiredStateConfiguration.InvokeDscResource. Para mais informações, confira Usar recursos experimentais.For more information, see Using Experimental Features.

O cmdlet Invoke-DscResource executa um método de um recurso de DSC (Desired State Configuration) do PowerShell especificado.The Invoke-DscResource cmdlet runs a method of a specified PowerShell Desired State Configuration (DSC) resource.

Esse cmdlet invoca um recurso de DSC diretamente, sem criar um documento de configuração.This cmdlet invokes a DSC resource directly, without creating a configuration document. Usando esse cmdlet, os produtos de gerenciamento de configuração podem gerenciar o Windows ou o Linux usando recursos de DSC.Using this cmdlet, configuration management products can manage Windows or Linux by using DSC resources. Esse cmdlet também habilita a depuração de recursos quando o mecanismo de DSC está em execução com a depuração habilitada.This cmdlet also enables debugging of resources when the DSC engine is running with debugging enabled.

Esse comando invoca o método Set de um recurso chamado WindowsProcess e fornece propriedades obrigatórias de Caminho e Argumentos para iniciar o processo especificado do Windows.This command invokes the Set method of a resource named WindowsProcess and provides the mandatory Path and Arguments properties to start the specified Windows process.

Invoke-DscResource -Name WindowsProcess -Method Set -ModuleName PSDesiredStateConfiguration -Property @{
  Path = 'C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe'
  Arguments = ''
}

Saiba mais informações sobre Invoke-DSCResource.For more information about Invoke-DSCResource.

Alterações de falha e melhoriasBreaking Changes and Improvements

Alterações de quebraBreaking Changes

  • Dar suporte à notificação de atualização para canais padrão e LTS (nº 11132)Make update notification support LTS and default channels (#11132)
  • Atualizar Test-Connection para funcionar mais como a do Windows PowerShell (nº 10697) (Obrigado, @vexx32!)Update Test-Connection to work more like the one in Windows PowerShell (#10697) (Thanks @vexx32!)
  • Preservar $?Preserve $? para ParenExpression, SubExpression e ArrayExpression (nº 11040)for ParenExpression, SubExpression and ArrayExpression (#11040)
  • Definir o diretório de trabalho para o diretório atual em Start-Job (nº 10920) (Obrigado, @iSazonov!)Set working directory to current directory in Start-Job (#10920) (Thanks @iSazonov!)
  • Fazer $PSCulture refletir consistentemente as alterações de cultura na sessão (nº 10138) (Obrigado, @iSazonov!)Make $PSCulture consistently reflect in-session culture changes (#10138) (Thanks @iSazonov!)

Atualizações e correções do mecanismoEngine Updates and Fixes

  • Melhorias nas APIs de ponto de interrupção para cenários remotos (nº 11312)Improvements in breakpoint APIs for remote scenarios (#11312)
  • Corrigir vazamento de definição de classe do PowerShell em outro Runspace (nº 11273)Fix PowerShell class definition leaking into another Runspace (#11273)
  • Corrigir uma regressão na formatação causada pelo primitivo FirstOrDefault adicionado em 7.0.0-Preview1 (nº 11258)Fix a regression in formatting caused by the FirstOrDefault primitive added in 7.0.0-Preview1 (#11258)
  • Módulos adicionais da Microsoft para acompanhar na Telemetria PS7 (nº 10751)Additional Microsoft Modules to track in PS7 Telemetry (#10751)
  • Tornar os recursos aprovados não experimentais (nº 11303)Make approved features non-experimental (#11303)
  • Atualizar ConciseView para usar TargetObject se aplicável (nº 11075)Update ConciseView to use TargetObject if applicable (#11075)
  • Corrigir NullReferenceException em métodos públicos CompletionCompleters (nº 11274)Fix NullReferenceException in CompletionCompleters public methods (#11274)
  • Corrigir verificação do estado do thread apartment em plataformas não Windows (nº 11301)Fix apartment thread state check on non-Windows platforms (#11301)
  • Atualizar a configuração PSModulePath para concatenar as variáveis de ambiente de processo e computador (nº 11276)Update setting PSModulePath to concatenate the process and machine environment variables (#11276)
  • Elevar o .NET Core para 3.1.0 (nº 11260)Bump .NET Core to 3.1.0 (#11260)
  • Corrigir a detecção de $PSHOME na frente de $env:PATH (nº 11141)Fix detection of $PSHOME in front of $env:PATH (#11141)
  • Permitir que pwsh herde $env:P SModulePath e habilite powerShell.exe para ser iniciado corretamente (nº 11057)Allow pwsh to inherit $env:PSModulePath and enable powershell.exe to start correctly (#11057)
  • Mover para a versão prévia 1 do .NET Core 3.1 (nº 10798)Move to .NET Core 3.1 preview 1 (#10798)
  • Refatorar verificações de marcas de nova análise no provedor do sistema de arquivos (nº 10431) (Obrigado, @iSazonov!)Refactor reparse tag checks in file system provider (#10431) (Thanks @iSazonov!)
  • Substituir CR e nova linha por um caractere 0x23CE no registro em log de scripts (nº 10616)Replace CR and new line with a 0x23CE character in script logging (#10616)
  • Corrigir um vazamento de recurso ao cancelar o registro do manipulador de eventos de AppDomain.CurrentDomain.ProcessExit (nº 10626)Fix a resource leak by unregistering the event handler from AppDomain.CurrentDomain.ProcessExit (#10626)
  • Adicionar suporte a ActionPreference.Break para entrar no depurador quando forem geradas mensagens de depuração, erro, informações, progresso, detalhadas ou de aviso (nº 8205) (Obrigado, @KirkMunro!)Add support to ActionPreference.Break to break into debugger when Debug, Error, Information, Progress, Verbose or Warning messages are generated (#8205) (Thanks @KirkMunro!)
  • Habilitar os suplementos iniciais do painel de controle no PowerShell Core sem especificar a extensão .CPL.Enable starting control panel add-ins within PowerShell Core without specifying .CPL extension. (nº 9828)(#9828)
  • Suporte a números negativos no operador -split (#8960) (obrigado, @ece-jacob-scott!)Support negative numbers in -split operator (#8960) (Thanks @ece-jacob-scott!)

Atualizações e correções gerais do CmdletGeneral Cmdlet Updates and Fixes

  • Correção do problema no Raspbian para definir a data das alterações de arquivo no recurso experimental do UnixStat (nº 11313)Fix for issue on Raspbian for setting date of file changes in UnixStat Experimental Feature (#11313)
  • Adicionar -AsPlainText a ConvertFrom-SecureString (nº 11142)Add -AsPlainText to ConvertFrom-SecureString (#11142)
  • Adicionada verificação de versão do WindowsPS para WinCompat (nº 11148)Added WindowsPS version check for WinCompat (#11148)
  • Corrigir relatório de erros em alguns cenários do WinCompat (nº 11259)Fix error-reporting in some WinCompat scenarios (#11259)
  • Adicionar resolvedor binário nativo (nº 11032) (Obrigado, @iSazonov!)Add native binary resolver (#11032) (Thanks @iSazonov!)
  • Atualizar o cálculo da largura de caractere para respeitar caracteres CJK corretamente (nº 11262)Update calculation of char width to respect CJK chars correctly (#11262)
  • Adicionar arquivo de desbloqueio para macOS (nº 11137)Add Unblock-File for macOS (#11137)
  • Corrigir regressão no Get-PSCallStack (nº 11210) (Obrigado, @iSazonov!)Fix regression in Get-PSCallStack (#11210) (Thanks @iSazonov!)
  • Remover o carregamento automático do módulo ScheduledJob ao usar cmdlets Job (nº 11194)Remove autoloading of the ScheduledJob module when using Job cmdlets (#11194)
  • Adicionar OutputType ao cmdlet Get-Error e preservar os nomes de tipos originais (nº 10856)Add OutputType to Get-Error cmdlet and preserve original typenames (#10856)
  • Corrigir a referência nula na propriedade SupportsVirtualTerminal (nº 11105)Fix null reference in SupportsVirtualTerminal property (#11105)
  • Adicionar verificação de limite em Get-WinEvent (nº 10648) (Obrigado, @iSazonov!)Add limit check in Get-WinEvent (#10648) (Thanks @iSazonov!)
  • Corrigir o runtime do comando para que StopUpstreamCommandsException não seja preenchido em ErrorVariable (nº 10840)Fix command runtime so StopUpstreamCommandsException doesn't get populated in -ErrorVariable (#10840)
  • Definir a codificação de saída como [Console]::OutputEncoding para comandos nativos (nº 10824)Set the output encoding to [Console]::OutputEncoding for native commands (#10824)
  • Suporte a blocos de código de várias linhas nos exemplos (nº 10776) (Obrigado, @Greg-Smulko!)Support multi-line code blocks in examples (#10776) (Thanks @Greg-Smulko!)
  • Adicionar o parâmetro Culture ao cmdlet Select-String (nº 10943) (Obrigado, @iSazonov!)Add Culture parameter to Select-String cmdlet (#10943) (Thanks @iSazonov!)
  • Corrigir o caminho do diretório de trabalho Start-Job com barra invertida (nº 11041)Fix Start-Job working directory path with trailing backslash (#11041)
  • ConvertFrom-Json: Desencapsular coleções por padrão (nº 10861) (Obrigado, @danstur!)ConvertFrom-Json: Unwrap collections by default (#10861) (Thanks @danstur!)
  • Usar Hashtable que diferencia maiúsculas de minúsculas para o cmdlet Group-Object com opções -CaseSensitive e -AsHashTable (nº 11030) (Obrigado, @vexx32!)Use case-sensitive Hashtable for Group-Object cmdlet with -CaseSensitive and -AsHashtable switches (#11030) (Thanks @vexx32!)
  • Tratar exceção se a enumeração de arquivos falhar ao recompilar o caminho para ter a capitalização correta (nº 11014)Handle exception if enumerating files fails when rebuilding path to have correct casing (#11014)
  • Corrigir ConciseView para mostrar Activity em vez de myCommand (nº 11007)Fix ConciseView to show Activity instead of myCommand (#11007)
  • Permitir que cmdlets da Web ignorem status de erro HTTP (nº 10466) (Obrigado, @vdamewood!)Allow web cmdlets to ignore HTTP error statuses (#10466) (Thanks @vdamewood!)
  • Corrigir o direcionamento de mais de um CommandInfo para Get-Command (nº 10929)Fix piping of more than one CommandInfo to Get-Command (#10929)
  • Adicionar novamente o cmdlet Get-Counter para Windows (nº 10933)Add back Get-Counter cmdlet for Windows (#10933)
  • Fazer ConvertTo-JSON tratar [AutomationNull]::Value e [NullString]::Value como $null (nº 10957)Make ConvertTo-Json treat [AutomationNull]::Value and [NullString]::Value as $null (#10957)
  • Remover os colchetes do endereço ipv6 para a comunicação remota SSH (nº 10968)Remove brackets from ipv6 address for SSH remoting (#10968)
  • Corrigir a falha se o comando enviado ao pwsh for apenas espaço em branco (nº 10977)Fix crash if command sent to pwsh is just whitespace (#10977)
  • Adicionar Get-Clipboard e Set-Clipboard de plataforma cruzada (nº 10340)Added cross-platform Get-Clipboard and Set-Clipboard (#10340)
  • Corrigir a configuração do caminho original do objeto do sistema de arquivos para não ter barra final (nº 10959)Fix setting original path of filesystem object to not have extra trailing slash (#10959)
  • Suporte a $null para ConvertTo-Json (nº 10947)Support $null for ConvertTo-Json (#10947)
  • Adicionar novamente o comando Out-Printer no Windows (nº 10906)Add back Out-Printer command on Windows (#10906)
  • Corrigir Start-Job-WorkingDirectory com espaço em branco (nº 10951)Fix Start-Job -WorkingDirectory with whitespace (#10951)
  • Retornar o valor padrão ao obter nulo para uma configuração em PSConfiguration.cs (nº 10963) (Obrigado, @iSazonov!)Return default value when getting null for a setting in PSConfiguration.cs (#10963) (Thanks @iSazonov!)
  • Manipular a exceção de E/S como não finalizável (nº 10950)Handle IO exception as non-terminating (#10950)
  • Adicionar o assembly GraphicalHost para habilitar Out-GridView, Show-Command e Get-Help -ShowWindow (nº 10899)Add GraphicalHost assembly to enable Out-GridView, Show-Command, and Get-Help -ShowWindow (#10899)
  • Colocar ComputerName via pipeline em Get-HotFix (nº 10852) (Obrigado, @kvprasoon!)Take ComputerName via pipeline in Get-HotFix (#10852) (Thanks @kvprasoon!)
  • Corrigir o preenchimento da guia para parâmetros para que ele mostre parâmetros comuns conforme disponíveis (nº 10850)Fix tab completion for parameters so that it shows common parameters as available (#10850)
  • Corrigir GetCorrectCasedPath() para primeiro verificar se alguma entrada de arquivo do sistema é retornada antes de chamar First() (nº 10930)Fix GetCorrectCasedPath() to first check if any system file entries is returned before calling First() (#10930)
  • Definir o diretório de trabalho para o diretório atual em Start-Job (nº 10920) (Obrigado, @iSazonov!)Set working directory to current directory in Start-Job (#10920) (Thanks @iSazonov!)
  • Alterar TabExpansion2 para não exigir -CursorColumn e tratar como $InputScript.Length (nº 10849)Change TabExpansion2 to not require -CursorColumn and treat as $InputScript.Length (#10849)
  • Manipular caso em que o host não pode retornar linhas ou colunas de tela (nº 10938)Handle case where Host may not return Rows or Columns of screen (#10938)
  • Corrigir o uso de cores de destaque para hosts que não dão suporte a elas (nº 10937)Fix use of accent colors for hosts that don't support them (#10937)
  • Adicionar novamente o comando Update-List (nº 10922)Add back Update-List command (#10922)
  • Atualizar FWLink Id para Clear-RecycleBin (nº 10925)Update FWLink Id for Clear-RecycleBin (#10925)
  • Durante o preenchimento da guia, ignorar arquivo se não for possível ler atributos de arquivo (nº 10910)During tab completion, skip file if can't read file attributes (#10910)
  • Adicionar novamente Clear-RecycleBin para Windows (nº 10909)Add back Clear-RecycleBin for Windows (#10909)
  • Adicionar $env:__SuppressAnsiEscapeSequences para controlar se a sequência de escape VT deve ser adicionada na saída (nº 10814)Add $env:__SuppressAnsiEscapeSequences to control whether to have VT escape sequence in output (#10814)
  • Adicionar parâmetro -NoEmphasize para colorir a saída de Select-String (nº 8963) (Obrigado, @derek-xia!)Add -NoEmphasize parameter to colorize Select-String output (#8963) (Thanks @derek-xia!)
  • Adicionar novamente o cmdlet Get-HotFix (nº 10740)Add back Get-HotFix cmdlet (#10740)
  • Tornar Add-Type utilizável em aplicativos que hospedam o PowerShell (nº 10587)Make Add-Type usable in applications that host PowerShell (#10587)
  • Usar uma ordem de avaliação mais efetiva em LanguagePrimitives.IsNullLike () (nº 10781) (Obrigado, @vexx32!)Use more effective evaluation order in LanguagePrimitives.IsNullLike() (#10781) (Thanks @vexx32!)
  • Melhorar o tratamento de entrada direcionada de coleção mista e fluxos de entrada direcionados de entradas em Format-Hex (nº 8674) (Obrigado, @vexx32!)Improve handling of mixed-collection piped input and piped streams of input in Format-Hex (#8674) (Thanks @vexx32!)
  • Usar a conversão de tipo nas hashtables SSHConnection quando o valor não corresponder ao tipo esperado (nº 10720) (Obrigado, @SeeminglyScience!)Use type conversion in SSHConnection hashtables when value doesn't match expected type (#10720) (Thanks @SeeminglyScience!)
  • Corrigir o comportamento de Get-Content-ReadCount 0 quando -TotalCount for definido (nº 10749) (Obrigado, @eugenesmlv!)Fix Get-Content -ReadCount 0 behavior when -TotalCount is set (#10749) (Thanks @eugenesmlv!)
  • Reescrever mensagem de erro de acesso negado em Get-WinEvent (nº 10639) (Obrigado, @iSazonov!)Reword access denied error message in Get-WinEvent (#10639) (Thanks @iSazonov!)
  • Ativar preenchimento de guia para atribuição de variável com enumeração ou tipo restrito (nº 10646)Enable tab completion for variable assignment that is enum or type constrained (#10646)
  • Remover a propriedade de comunicação remota do SourceLength não utilizada que causa problemas de formatação (nº 10765)Remove unused SourceLength remoting property causing formatting issues (#10765)
  • Adicionar parâmetro -Delimiter a ConvertFrom-StringData (nº 10665) (Obrigado, @steviecoaster!)Add -Delimiter parameter to ConvertFrom-StringData (#10665) (Thanks @steviecoaster!)
  • Adicionar parâmetro posicional para ScriptBlock ao usar Invoke-Command com SSH (nº 10721) (Obrigado, @machgo!)Add positional parameter for ScriptBlock when using Invoke-Command with SSH (#10721) (Thanks @machgo!)
  • Mostrar informações de contexto de linha se houver várias linhas, mas nenhum nome de script para ConciseView (nº 10746)Show line context information if multiple lines but no script name for ConciseView (#10746)
  • Adicionar suporte aos caminhos \wsl$\ para o provedor do sistema de arquivos (nº 10674)Add support for \wsl$\ paths to file system provider (#10674)
  • Adicionar o texto do token ausente a TokenKind.Question Mark no analisador (nº 10706)Add the missing token text for TokenKind.QuestionMark in parser (#10706)
  • Definir o diretório de trabalho atual de cada script ForEach-Object-Parallel em execução no mesmo local que o script de chamada.Set current working directory of each ForEach-Object -Parallel running script to the same location as the calling script. (nº 10672)(#10672)
  • Substituir api-ms-win-core-file-l1-2-2.dll por Kernel32.dll em APIs FindFirst Stream e FindNextStreamW (nº 10680) (Obrigado, @iSazonov!)Replace api-ms-win-core-file-l1-2-2.dll with Kernell32.dll for FindFirstStreamW and FindNextStreamW APIs (#10680) (Thanks @iSazonov!)
  • Ajustar o script de formatação de ajuda para ser mais tolerante ao StrictMode (nº 10563)Tweak help formatting script to be more StrictMode tolerant (#10563)
  • Adicionar parâmetro -SecurityDescriptorSDDL a New-Service (nº 10483) (Obrigado, @kvprasoon!)Add -SecurityDescriptorSDDL parameter to New-Service (#10483) (Thanks @kvprasoon!)
  • Remover saída informativa, consolidar o uso de ping em Test-Connection (nº 10478) (Obrigado, @vexx32!)Remove informational output, consolidate ping usage in Test-Connection (#10478) (Thanks @vexx32!)
  • Ler pontos de nova análise especiais sem acessá-los (nº 10662) (Obrigado, @iSazonov!)Read special reparse points without accessing them (#10662) (Thanks @iSazonov!)
  • Direcionar saída Clear-Host para terminal (nº 10681) (Obrigado, @iSazonov!)Direct Clear-Host output to terminal (#10681) (Thanks @iSazonov!)
  • Adicionar nova linha de volta para agrupar com Format-Table e -Property (nº 10653)Add back newline for grouping with Format-Table and -Property (#10653)
  • Remover [ValidateNotNullOrEmpty] de -InputObject em Get-Random para permitir cadeia de caracteres vazia (nº 10644)Remove [ValidateNotNullOrEmpty] from -InputObject on Get-Random to allow empty string (#10644)
  • Fazer com que o algoritmo de distância da string do sistema de sugestões não diferencie maiúsculas de minúsculas (nº 10549) (Obrigado, @iSazonov!)Make suggestion system string distance algorithm case-insensitive (#10549) (Thanks @iSazonov!)
  • Corrigir exceção de referência nula no processamento de entrada de ForEach-Object -Parallel (nº 10577)Fix null reference exception in ForEach-Object -Parallel input processing (#10577)
  • Adicionar definições de política de grupo do PowerShell Core (nº 10468)Add PowerShell Core group policy definitions (#10468)
  • Atualizar o host do console para dar suporte às sequências de controle XTPUSHSGR/XTPOPSGR VT usadas em cenários de composição.Update console host to support XTPUSHSGR/XTPOPSGR VT control sequences that are used in composability scenarios. (nº 10208)(#10208)
  • Adicionar o parâmetro WorkingDirectory a Start-Job (nº 10324) (Obrigado, @davinci26!)Add WorkingDirectory parameter to Start-Job (#10324) (Thanks @davinci26!)
  • Remover o manipulador de eventos que estava fazendo com que as alterações no ponto de interrupção fossem replicadas erroneamente no depurador de runtime do host (nº 10503) (Obrigado, @KirkMunro!)Remove the event handler that was causing breakpoint changes to be erroneously replicated to the host runspace debugger (#10503) (Thanks @KirkMunro!)
  • Substituir api-ms-win-core-job-12-1-0.dll por Kernell32.dll na API Microsoft.PowerShell.Commands.NativeMethods P/Invoke (nº 10417) (Obrigado, @iSazonov!)Replace api-ms-win-core-job-12-1-0.dll with Kernell32.dll in Microsoft.PowerShell.Commands.NativeMethods P/Invoke API(#10417) (Thanks @iSazonov!)
  • Corrigir a saída errada para New-Service em atribuição de variável e -OutVariable (nº 10444) (Obrigado, @kvprasoon!)Fix wrong output for New-Service in variable assignment and -OutVariable (#10444) (Thanks @kvprasoon!)
  • Corrigir problemas de ferramenta global em torno do código de saída, parâmetros de linha de comando e caminho com espaços (nº 10461)Fix global tool issues around exit code, command line parameters and path with spaces (#10461)
  • Corrigir recursão no OneDrive -change FindFirstFileEx() para usar o tipo SafeFindHandle (nº 10405)Fix recursion into OneDrive - change FindFirstFileEx() to use SafeFindHandle type (#10405)
  • Ignorar o PSReadLine de carregamento automático no Windows se o leitor de tela NVDA estiver ativo (nº 10385)Skip auto-loading PSReadLine on Windows if the NVDA screen reader is active (#10385)
  • Elevar as versões de módulos feitos com PowerShell para 7.0.0.0 (nº 10356)Increase built-with-PowerShell module versions to 7.0.0.0 (#10356)
  • Adicionar um erro no Add-Type se já existir um tipo com o mesmo nome (nº 9609) (Obrigado, @iSazonov!)Add throwing an error in Add-Type if a type with the same name already exists (#9609) (Thanks @iSazonov!)

DesempenhoPerformance

  • Evitar o uso de fechamento em Parser.SaveError (nº 11006)Avoid using closure in Parser.SaveError (#11006)
  • Melhorar o cache ao criar novas instâncias de Regex (nº 10657) (Obrigado, @iSazonov!)Improve the caching when creating new Regex instances (#10657) (Thanks @iSazonov!)
  • Melhorar o processamento dos dados de tipo interno do PowerShell de types.ps1xml, typesV3.ps1xml e GetEvent.types.ps1xml (nº 10898)Improve processing of the PowerShell built-in type data from types.ps1xml, typesV3.ps1xml and GetEvent.types.ps1xml (#10898)
  • Atualizar o PSConfiguration.ReadValueFromFile para torná-lo mais rápido e mais eficiente no uso de memória (nº 10839)Update PSConfiguration.ReadValueFromFile to make it faster and more memory efficient (#10839)
  • Adicionar pequenas melhorias de desempenho para a inicialização do runspace (nº 10569) (Obrigado, @iSazonov!)Add minor performance improvements for runspace initialization (#10569) (Thanks @iSazonov!)
  • Tornar ForEach-Object mais rápido em seus cenários mais usados (nº 10454) e corrigir o problema de desempenho de ForEach-Object-Parallel com muitos runspaces (nº 10455)Make ForEach-Object faster for its commonly used scenarios (#10454) and fix ForEach-Object -Parallel performance problem with many runspaces (#10455)

Limpeza de códigoCode Cleanup

  • Alterar o comentário e o texto do elemento para atender aos padrões da Microsoft (nº 11304)Change comment and element text to meet Microsoft standards (#11304)
  • Limpar problemas de estilo no Compiler.cs (nº 10368) (Obrigado, @iSazonov!)Cleanup style issues in Compiler.cs (#10368) (Thanks @iSazonov!)
  • Remover o conversor de tipo não utilizado para CommaDelimitedStringCollection (nº 11000) (Obrigado, @iSazonov!)Remove the unused type converter for CommaDelimitedStringCollection (#11000) (Thanks @iSazonov!)
  • Limpar o estilo em InitialSessionState.cs (nº 10865) (Obrigado, @iSazonov!)Cleanup style in InitialSessionState.cs (#10865) (Thanks @iSazonov!)
  • Limpeza de código para classe PSSession (nº 11001)Code clean up for PSSession class (#11001)
  • Remover o recurso "executar Update-Help de Get-Help quando Get-Help for executado pela primera vez", que não funciona (nº 10974)Remove the not-working 'run Update-Help from Get-Help when Get-Help runs for the first time' feature (#10974)
  • Corrigir problemas de estilo (nº 10998) (Obrigado, @iSazonov!)Fix style issues (#10998) (Thanks @iSazonov!)
  • Limpeza: usar o alias de tipo interno (nº 10882) (Obrigado, @iSazonov!)Cleanup: use the built-in type alias (#10882) (Thanks @iSazonov!)
  • Remover a chave de configuração não utilizada ConsolePrompting e evitar a criação desnecessária de cadeia de caracteres ao consultar a configuração ExecutionPolicy (nº 10985)Remove the unused setting key ConsolePrompting and avoid unnecessary string creation when querying ExecutionPolicy setting (#10985)
  • Desabilitar a verificação de notificação de atualização para builds diários (nº 10903) (Obrigado, @bergmeister!)Disable update notification check for daily builds (#10903) (Thanks @bergmeister!)
  • Restabelecer API de depuração perdida em nº 10338 (nº 10808)Reinstate debugging API lost in #10338 (#10808)
  • Remover a referência de WorkflowJobSourceAdapter que não é mais usada (nº 10326) (Obrigado, @KirkMunro!)Remove WorkflowJobSourceAdapter reference that is no longer used (#10326) (Thanks @KirkMunro!)
  • Limpar interfaces COM no código de lista de atalhos corrigindo atributos PreserveSig (nº 9899) (Obrigado, @weltkante!)Cleanup COM interfaces in jump list code by fixing PreserveSig attributes (#9899) (Thanks @weltkante!)
  • Adicionar um comentário que descreve por que -ia não é o alias para o parâmetro comum -Informationaction (nº 10703) (Obrigado, @KirkMunro!)Add a comment describing why -ia is not the alias for -InformationAction common parameter (#10703) (Thanks @KirkMunro!)
  • Renomear InvokeCommandCmdlet.cs para InvokeExpressionCommand.cs (nº 10659) (Obrigado, @kilasuit!)Rename InvokeCommandCmdlet.cs to InvokeExpressionCommand.cs (#10659) (Thanks @kilasuit!)
  • Adicionar limpezas de código secundárias relacionadas às notificações de atualização (nº 10698)Add minor code cleanups related to update notifications (#10698)
  • Remover a lógica de fluxo de trabalho preterida dos scripts de configuração de comunicação remota (nº 10320) (Obrigado, @KirkMunro!)Remove deprecated workflow logic from the remoting setup scripts (#10320) (Thanks @KirkMunro!)
  • Atualizar o formato de ajuda para usar maiúsculas e minúsculas corretamente (nº 10678) (Obrigado, @tnieto88!)Update help format to use proper case (#10678) (Thanks @tnieto88!)
  • Limpar problemas de estilo de CodeFactor provenientes de commits no último mês (nº 10591) (Obrigado, @iSazonov!)Clean up CodeFactor style issues coming in commits for the last month (#10591) (Thanks @iSazonov!)
  • Corrigir erro de digitação na descrição do recurso experimental PSTernaryOperator (nº 10586) (Obrigado, @bergmeister!)Fix typo in description of PSTernaryOperator experimental feature (#10586) (Thanks @bergmeister!)
  • Converter o valor de enumeração ActionPreference.Suspend em um estado reservado sem suporte e remover a restrição do uso de ActionPreference.Ignore nas variáveis de preferência (nº 10317) (Obrigado, @KirkMunro!)Convert ActionPreference.Suspend enumeration value into a non-supported, reserved state, and remove restriction on using ActionPreference.Ignore in preference variables (#10317) (Thanks @KirkMunro!)
  • Substituir ArrayList por List<T> para obter um código mais legível e confiável sem alterar a funcionalidade (nº 10333) (Obrigado, @iSazonov!)Replace ArrayList with List<T> to get more readable and reliable code without changing functionality (#10333) (Thanks @iSazonov!)
  • Fazer correções de estilo de código em TestConnectionCommand (nº 10439) (Obrigado, @vexx32!)Make code style fixes to TestConnectionCommand (#10439) (Thanks @vexx32!)
  • Limpar AutomationEngine e remover a chamada de método extra SetSessionStateDrive (nº 10416) (Obrigado, @iSazonov!)Cleanup AutomationEngine and remove extra SetSessionStateDrive method call (#10416) (Thanks @iSazonov!)
  • Renomear ParameterSetName padrão de volta para Delimiter em ConvertTo-Csv e ConvertFrom-Csv (nº 10425)Rename default ParameterSetName back to Delimiter for ConvertTo-Csv and ConvertFrom-Csv (#10425)

FerramentasTools

  • Adicionar a configuração padrão à propriedade SDKToUse para que ela seja criada no VS (nº 11085)Add default setting for the SDKToUse property so that it builds in VS (#11085)
  • Install-Powershell.ps1: Adicionar parâmetro para usar a instalação do MSI (nº 10921) (Obrigado, @MJECloud!)Install-Powershell.ps1: Add parameter to use MSI installation (#10921) (Thanks @MJECloud!)
  • Adicionar exemplos básicos para install-powershell.ps1 (nº 10914) (Obrigado, @kilasuit!)Add basic examples for install-powershell.ps1 (#10914) (Thanks @kilasuit!)
  • Fazer Install-PowerShellRemoting. ps1 manipular uma cadeia de caracteres vazia no parâmetro PowerShellHome (nº 10526) (Obrigado, @Orca88!)Make Install-PowerShellRemoting.ps1 handle empty string in PowerShellHome parameter (#10526) (Thanks @Orca88!)
  • Alternar de /etc/lsb-release para /etc/os-release em install-powershell.sh (nº 10773) (Obrigado, @Himura2la!)Switch from /etc/lsb-release to /etc/os-release in install-powershell.sh (#10773) (Thanks @Himura2la!)
  • Verificar pwsh. exe e pwsh na versão diária no Windows (nº 10738) (Obrigado, @centreboard!)Check pwsh.exe and pwsh in daily version on Windows (#10738) (Thanks @centreboard!)
  • Remover toque desnecessário em installpsh-osx.sh (nº 10752)Remove unneeded tap in installpsh-osx.sh (#10752)
  • Atualize install-powershell.ps1 para verificar build diário já instalado (nº 10489)Update install-powershell.ps1 to check for already installed daily build (#10489)

TestesTests

  • Tornar o teste de DSC não confiável pendente (nº 11131)Make unreliable DSC test pending (#11131)
  • Corrigir o teste de stringdata para validar corretamente as chaves das hashtables (nº 10810)Fix stringdata test to correctly validate keys of hashtables (#10810)
  • Descarregar módulos de teste (nº 11061) (Obrigado, @iSazonov!)Unload test modules (#11061) (Thanks @iSazonov!)
  • Aumentar o tempo entre novas tentativas de teste de URL (nº 11015)Increase time between retries of testing URL (#11015)
  • Atualizar testes para descrever as ações de teste com precisão.Update tests to accurately describe test actions. (nº 10928) (Obrigado, @romero126!)(#10928) (Thanks @romero126!)
  • Pular temporariamente o teste instável TestAppDomainProcessExitEvenHandlerNotLeaking (nº 10827)Temporary skip the flaky test TestAppDomainProcessExitEvenHandlerNotLeaking (#10827)
  • Tornar estável o teste de vazamento do manipulador de eventos (nº 10790)Make the event handler leaking test stable (#10790)
  • Sincronizar o uso de maiúsculas no CI YAML (nº 10767) (Obrigado, @RDIL!)Sync capitalization in CI YAML (#10767) (Thanks @RDIL!)
  • Adicionar teste para a correção de vazamento do manipulador de eventos (nº 10768)Add test for the event handler leaking fix (#10768)
  • Adicionar teste Get-ChildItem (nº 10507) (Obrigado, @iSazonov!)Add Get-ChildItem test (#10507) (Thanks @iSazonov!)
  • Substituir linguagem ambígua nos testes de opção para parâmetro para fins de precisão (nº 10666) (Obrigado, @romero126!)Replace ambiguous language for tests from switch to parameter for accuracy (#10666) (Thanks @romero126!)
  • Adicionar verificação experimental a testes ForEach-Object -Parallel (nº 10354) (Obrigado, @KirkMunro!)Add experimental check to ForEach-Object -Parallel tests (#10354) (Thanks @KirkMunro!)
  • Atualizar testes para a validação Alpine (nº 10428)Update tests for Alpine validation (#10428)

Melhorias de build e pacoteBuild and Package Improvements

  • Corrigir assinatura de pacote Nuget para build de Pacote Coordenado (nº 11316)Fix Nuget package signing for Coordinated Package build (#11316)
  • Atualizar dependências da Galeria do PowerShell e NuGet (nº 11323)Update dependencies from PowerShell Gallery and NuGet (#11323)
  • Elevar Microsoft.ApplicationInsights de 2.11.0 para 2.12.0 (nº 11305)Bump Microsoft.ApplicationInsights from 2.11.0 to 2.12.0 (#11305)
  • Elevar Microsoft.CodeAnalysis.CSharp de 3.3.1 para 3.4.0 (nº 11265)Bump Microsoft.CodeAnalysis.CSharp from 3.3.1 to 3.4.0 (#11265)
  • Atualizar pacotes para Debian 10 e 11 (nº 11236)Updates packages for Debian 10 and 11 (#11236)
  • Habilitar apenas os recursos experimentais anteriores à versão RC (nº 11162)Only enable experimental features prior to RC (#11162)
  • Atualizar a versão mínima do macOS (nº 11163)Update macOS minimum version (#11163)
  • Elevar NJsonSchema de 10.0.27 para 10.0.28 (nº 11170)Bump NJsonSchema from 10.0.27 to 10.0.28 (#11170)
  • Atualizar links em README.md e metadata.json para Preview.5 (nº 10854)Updating links in README.md and metadata.json for Preview.5 (#10854)
  • Selecionar os arquivos para testes de conformidade que são de propriedade do PowerShell (nº 10837)Select the files for compliance tests which are owned by PowerShell (#10837)
  • Permitir que o pacote win7x86 msix seja compilado.Allow win7x86 msix package to build. (interno 10515)(Internal 10515)
  • Permitir que versões semânticas sejam passadas para a função NormalizeVersion (nº 11087)Allow semantic versions to be passed to NormalizeVersion function (#11087)
  • Elevar a estrutura do .NET Core para 3.1-preview.3 (nº 11079)Bump .NET core framework to 3.1-preview.3 (#11079)
  • Elevar PSReadLine de 2.0.0-beta5 para 2.0.0-beta6 in /src/Modules (nº 11078)Bump PSReadLine from 2.0.0-beta5 to 2.0.0-beta6 in /src/Modules (#11078)
  • Elevar Newparansoft.Json de 12.0.2 para 12.0.3 (nº 11037) (nº 11038)Bump Newtonsoft.Json from 12.0.2 to 12.0.3 (#11037) (#11038)
  • Adicionar pacotes Debian 10, 11 e CentOS 8 (nº 11028)Add Debian 10, 11 and CentOS 8 packages (#11028)
  • Carregar arquivo JSON Build-Info com o campo ReleaseDate (nº 10986)Upload Build-Info Json file with the ReleaseDate field (#10986)
  • Elevar estrutura do .NET Core para 3.1-preview.2 (nº 10993)Bump .NET core framework to 3.1-preview.2 (#10993)
  • Habilitar build do pacote MSIX x86 (nº 10934)Enable build of x86 MSIX package (#10934)
  • Atualizar a URL do script de instalação do dotnet SDK em build.psm1 (nº 10927)Update the dotnet SDK install script URL in build.psm1 (#10927)
  • Elevar Markdig.Signed de 0.17.1 para 0.18.0 (nº 10887)Bump Markdig.Signed from 0.17.1 to 0.18.0 (#10887)
  • Elevar ThreadJob de 2.0.1 para 2.0.2 (nº 10886)Bump ThreadJob from 2.0.1 to 2.0.2 (#10886)
  • Atualizar o módulo AppX Manifest and Packaging para ficar em conformidade com os requisitos da MS Store (nº 10878)Update AppX Manifest and Packaging module to conform to MS Store requirements (#10878)
  • Atualizar referência do pacote do PowerShell SDK para preview.5 (interno 10295)Update package reference for PowerShell SDK to preview.5 (Internal 10295)
  • Atualizar ThirdPartyNotices.txt (nº 10834)Update ThirdPartyNotices.txt (#10834)
  • Elevar Microsoft.PowerShell.Native para 7.0.0-preview.3 (nº 10826)Bump Microsoft.PowerShell.Native to 7.0.0-preview.3 (#10826)
  • Elevar Microsoft.ApplicationInsights de 2.10.0 para 2.11.0 (nº 10608)Bump Microsoft.ApplicationInsights from 2.10.0 to 2.11.0 (#10608)
  • Elevar NJsonSchema de 10.0.24 para 10.0.27 (nº 10756)Bump NJsonSchema from 10.0.24 to 10.0.27 (#10756)
  • Adicionar suporte a MacPorts ao sistema de build (nº 10736) (Obrigado, @Lucius-Q-User!)Add MacPorts support to the build system (#10736) (Thanks @Lucius-Q-User!)
  • Elevar PackageManagement de 1.4.4 para 1.4.5 (nº 10728)Bump PackageManagement from 1.4.4 to 1.4.5 (#10728)
  • Elevar NJsonSchema de 10.0.23 para 10.0.24 (nº 10635)Bump NJsonSchema from 10.0.23 to 10.0.24 (#10635)
  • Adicionar variável de ambiente para diferenciar a telemetria de cliente/servidor no MSI (nº 10612)Add environment variable to differentiate client/server telemetry in MSI (#10612)
  • Elevar PSDesiredStateConfiguration de 2.0.3 para 2.0.4 (nº 10603)Bump PSDesiredStateConfiguration from 2.0.3 to 2.0.4 (#10603)
  • Elevar Microsoft.CodeAnalysis.CSharp de 3.2.1 para 3.3.1 (nº 10607)Bump Microsoft.CodeAnalysis.CSharp from 3.2.1 to 3.3.1 (#10607)
  • Atualizar para .Net Core 3.0 RTM (nº 10604) (Obrigado, @bergmeister!)Update to .Net Core 3.0 RTM (#10604) (Thanks @bergmeister!)
  • Atualizar o pacote MSIX para que a versão atenda aos requisitos da Windows Store (nº 10588)Update MSIX packaging so the version to Windows Store requirements (#10588)
  • Elevar PowerShellGet de 2.2 para 2.2.1 (nº 10382)Bump PowerShellGet version from 2.2 to 2.2.1 (#10382)
  • Elevar PackageManagement de 1.4.3 para 1.4.4 (nº 10383)Bump PackageManagement version from 1.4.3 to 1.4.4 (#10383)
  • Atualizar README.md e metadata.json para 7.0.0-preview.4 (nº 10011)Update README.md and metadata.json for 7.0.0-preview.4 (Internal 10011)
  • Atualizar .Net Core versão 3.0 da Versão prévia 9 para a RC1 (nº 10552) (Obrigado, @bergmeister!)Upgrade .Net Core 3.0 version from Preview 9 to RC1 (#10552) (Thanks @bergmeister!)
  • Corrigir a geração da lista ExperimentalFeature (Internal 9996)Fix ExperimentalFeature list generation (Internal 9996)
  • Elevar PSReadLine de 2.0.0-beta4 para 2.0.0-beta5 (nº 10536)Bump PSReadLine version from 2.0.0-beta4 to 2.0.0-beta5 (#10536)
  • Corrigir script de build da versão para definir a marca de versãoFix release build script to set release tag
  • Atualizar versão do Microsoft.PowerShell.Native para 7.0.0-preview.2 (nº 10519)Update version of Microsoft.PowerShell.Native to 7.0.0-preview.2 (#10519)
  • Atualizar para Netcoreapp 3.0 versão prévia 9 (nº 10484) (Obrigado, @bergmeister!)Upgrade to Netcoreapp3.0 preview9 (#10484) (Thanks @bergmeister!)
  • Verificar se o build coordenado diário sabe que é um build diário (nº 10464)Make sure the daily coordinated build, knows it is a daily build (#10464)
  • Atualizar o build do pacote combinado para liberar os builds diários (nº 10449)Update the combined package build to release the daily builds (#10449)
  • Remover referência de appveyor (nº 10445) (Obrigado, @RDIL!)Remove appveyor reference (#10445) (Thanks @RDIL!)
  • Elevar NJsonSchema de 10.0.22 para 10.0.23 (nº 10421)Bump NJsonSchema version from 10.0.22 to 10.0.23 (#10421)
  • Remover a exclusão da pasta de builds do Linux-x64 porque algumas dependências do Alpine precisam dela (nº 10407)Remove the deletion of linux-x64 build folder because some dependencies for Alpine need it (#10407)

Documentação e conteúdo da ajudaDocumentation and Help Content

  • Refatorar logs de alterações em um log por versão (nº 11165)Refactor change logs into one log per release (#11165)
  • Corrigir os documentos de ajuda online do FWLinks para PowerShell 7 (nº 11071)Fix FWLinks for PowerShell 7 online help documents (#11071)
  • Atualizar CONTRIBUTING.md (nº 11096) (Obrigado, @mklement0!)Update CONTRIBUTING.md (#11096) (Thanks @mklement0!)
  • Corrigir os links do documento de instalação no README.md (nº 11083)Fix installation doc links in README.md (#11083)
  • Adicionar exemplos ao script install-powershell.ps1 (nº 11024) (Obrigado, @kilasuit!)Adds examples to install-powershell.ps1 script (#11024) (Thanks @kilasuit!)
  • Corrigir a ênfase de Select-String e Import-DscResource em CHANGELOG.md (nº 10890)Fix to Select-String emphasis and Import-DscResource in CHANGELOG.md (#10890)
  • Remover o link obsoleto de powershell-beginners-guide.md (nº 10926)Remove the stale link from powershell-beginners-guide.md (#10926)
  • Mesclar logs de alterações estáveis e de manutenção (nº 10527)Merge stable and servicing change logs (#10527)
  • Atualizar versão .NET usada em documentos de build (nº 10775) (Obrigado, @Greg-Smulko!)Update used .NET version in build docs (#10775) (Thanks @Greg-Smulko!)
  • Substituir os links do MSDN para docs.microsoft.com em powershell-beginners-guide.md (nº 10778) (Obrigado, @iSazonov!)Replace links from MSDN to docs.microsoft.com in powershell-beginners-guide.md (#10778) (Thanks @iSazonov!)
  • Corrigir link desfeito da visão geral do DSC (nº 10702)Fix broken DSC overview link (#10702)
  • Atualizar Support_Question.md para vincular ao Stack Overflow como outro recurso da comunidade (nº 10638) (Obrigado, @mklement0!)Update Support_Question.md to link to Stack Overflow as another community resource (#10638) (Thanks @mklement0!)
  • Adicionar arquitetura de processador ao modelo de solicitação de distribuição (nº 10661)Add processor architecture to distribution request template (#10661)
  • Adicionar novo livro sobre MoL do PowerShell a documentos de aprendizagem do PowerShell (nº 10602)Add new PowerShell MoL book to learning PowerShell docs (#10602)
  • Atualizar README.md e metadados para as versões v6.1.6 e v6.2.3 (nº 10523)Update README.md and metadata for v6.1.6 and v6.2.3 releases (#10523)
  • Corrigir um erro de digitação no arquivo README.md (nº 10465) (Obrigado, @vedhasp!)Fix a typo in README.md (#10465) (Thanks @vedhasp!)
  • Adicionar uma referência ao módulo PSKoans à documentação de Recursos de aprendizagem (nº 10369) (Obrigado, @vexx32!)Add a reference to PSKoans module to Learning Resources documentation (#10369) (Thanks @vexx32!)
  • Atualizar README.md e metadata.json para 7.0.0-preview.3 (nº 10393)Update README.md and metadata.json for 7.0.0-preview.3 (#10393)