Apresentando o PowerShell 7.0

Hoje, temos o prazer de anunciar o lançamento da versão pública (GA)  do PowerShell 7.0 ! Antes de mais, gostaríamos de agradecer aos  muitos colaboradores por tornar possível esta versão compartilhando código, testes, documentação e comentários sobre problemas. O PowerShell 7 não teria sido possível sem a sua ajuda.



O que é o PowerShell 7?


Para iniciantes, o PowerShell 7 é a mais recente atualização importante do PowerShell, uma ferramenta de automação de plataforma cruzada (Windows, Linux e macOS) e infraestrutura de configuração otimizada para trabalhar com dados estruturados (por exemplo, JSON, CSV, XML, etc.), uma API REST e modelos de objetos. O PowerShell inclui um shell de linha de comando, uma linguagem de script orientada a objetos e um conjunto de ferramentas para executar scripts / cmdlets e gerenciar módulos.

Há três anos, anunciamos o PowerShell Core 6 como uma nova versão do PowerShell. Baseado no .NET Core, o PowerShell Core introduziu suporte multiplataforma para Windows, macOS e Linux, PowerShell Remoting baseado em SSH, suporte REST e JSON significativamente aprimorado, contêineres oficiais do Docker e muito mais. Além disso, esta foi a primeira versão do PowerShell, criada sob uma licença de código aberto (MIT), incentivando entusiastas e iniciantes de longa data do PowerShell a contribuir diretamente para o código-fonte, testes e documentação.

Após três lançamentos bem-sucedidos do PowerShell Core, estamos animados em ver o PowerShell 7, o próximo capítulo no desenvolvimento contínuo do PowerShell. No PowerShell 7, além dos habituais muitos novos cmdlets / APIs e correções de bugs, apresentamos vários novos recursos, incluindo:

  • Paralelização de pipeline com ForEach-Object-Parallel
  • Novos operadores:
    • Operador ternário: a? b: c
    • Operadores da cadeia de gasodutos: || e &&
    • Declarações coalescentes nulas: ?? e ?? =
  • Visualização de erros dinâmica e simplificada e o cmdlet Get-Error para investigar mais facilmente os erros
  • Um nível de compatibilidade que permite aos usuários importar módulos em uma sessão implícita do Windows PowerShell
  • Notificações de atualização automática
  • Capacidade de chamar recursos DSC diretamente do PowerShell 7 (experimental)

Para uma lista mais completa de recursos e correções, consulte  aqui .

Atualizar do PowerShell Core 6.x para 7.0 também significa atualizar do .NET Core 2.x para 3.1. O .NET Core 3.1 retorna muitas APIs do .NET Framework (especialmente no Windows), fornecendo uma compatibilidade retroativa significativamente maior com os módulos existentes do Windows PowerShell. 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. Para obter mais informações, consulte nossa tabela de compatibilidade de módulos , que demonstra como você pode usar os módulos mais recentes e modernos que funcionam com o PowerShell 7.

Se você não conseguiu usar o PowerShell Core 6.x no passado devido a problemas de compatibilidade do módulo, talvez seja essa a situação em que você aproveita alguns dos recursos que já fornecemos desde o início do projeto Core!

Legal! Como obter o PowerShell 7?


Para começar, consulte a documentação de instalação para  WindowsmacOS ou  Linux . Pode haver vários métodos de instalação, dependendo da versão do sistema operacional e do formato de pacote preferido.

Se você já sabe o que fazer e está apenas procurando um pacote binário (seja MSI, ZIP, RPM ou qualquer outra coisa), acesse a tag da versão mais recente no GitHub .

Como alternativa, você pode usar uma de nossas muitas imagens do Docker . Para obter mais informações sobre como usá-los, consulte nosso repositório do PowerShell-Docker .

Quais sistemas operacionais o PowerShell 7 suporta?


O PowerShell 7 suporta os  seguintes sistemas operacionais  x64, incluindo:

  • Windows 7, 8.1 e 10
  • Windows Server 2008 R2, 2012, 2012 R2, 2016 e 2019
  • macOS 10.13+
  • Red Hat Enterprise Linux (RHEL) / CentOS 7+
  • Fedora 29+
  • Debian 9+
  • Ubuntu 16.04+
  • openSUSE 15+
  • Alpine Linux 3.8 ou superior

Além disso, suportamos as versões ARM32 e ARM64 do Debian e Ubuntu, bem como o ARM64 Alpine Linux.

Embora não seja oficialmente suportada, a comunidade também forneceu pacotes para o Arch e o Kali Linux .

Se você precisar de suporte para uma plataforma que não esteja nessa lista, envie uma solicitação de distribuição ao GitHub (embora seja importante observar que, no final, estamos limitados ao fato de o .NET Core 3.1 ser suportado ).

Espere, o que aconteceu com o PowerShell "Core"?


Assim como o .NET com .NET 5 , acreditamos que o PowerShell 7 marca o fim de nosso caminho para a máxima compatibilidade com versões anteriores do Windows PowerShell. Nesse sentido, acreditamos que o PowerShell 7 e posterior seja o único PowerShell suportado no futuro.

O PowerShell 7 continuará sendo apresentado na edição Core para distinguir o 6.x / 7.x do Windows PowerShell, mas no geral, você verá que no futuro será chamado de "PowerShell 7".

Quais produtos da Microsoft já oferecem suporte ao PowerShell 7?


Qualquer módulo que já seja suportado pelo PowerShell Core 6.x também é suportado no PowerShell 7, incluindo:


No Windows, também adicionamos o parâmetro -UseWindowsPowerShell ao módulo de importação para simplificar a transição para o PowerShell 7 para aqueles que usam módulos incompatíveis. Essa opção cria um módulo proxy no PowerShell 7 que usa o processo local do Windows PowerShell para executar implicitamente todos os cmdlets contidos neste módulo. Para obter mais informações sobre esse recurso, consulte a documentação do módulo de importação .

Para os módulos que ainda são incompatíveis, estamos trabalhando com vários colegas para adicionar suporte interno ao PowerShell 7, incluindo Microsoft Graph, Office 365 e outros.

O Azure Cloud Shell já foi atualizado para usar o PowerShell 7, enquanto outros, como imagens de contêiner do .NET Core SDK Docker eOs recursos do Azure serão atualizados em breve.

Qual é o próximo?


Já estamos trabalhando duro no PowerShell 7.1 e você pode esperar sua primeira visualização no futuro próximo, cheia de novos recursos e correções que não estão incluídas no 7.0. Fique atento a um blog de roteiro mais detalhado que descreve nossas pesquisas e desejos atuais para o 7.1.

Conforme observado acima, também estamos migrando para uma frequência de lançamento anual para corresponder melhor às versões do .NET e seu ciclo de vida de suporte (os lançamentos de pré-lançamento continuam a ser lançados aproximadamente a cada mês).

All Articles