Bem-vindos à primeira aula do nosso curso de PowerShell! Nesta aula, vamos explorar a história dessa poderosa ferramenta de automação, desde sua concepção até os dias atuais. Entender sua origem e evolução é fundamental para apreciar suas capacidades e seu papel no ecossistema de TI.

Introdução

PowerShell é um shell de linha de comando e uma linguagem de script desenvolvida pela Microsoft. Diferente de shells tradicionais como o cmd ou bash, o PowerShell é construído sobre o .NET Framework (e posteriormente .NET Core), permitindo manipular objetos, não apenas texto. Isso revolucionou a administração de sistemas Windows, oferecendo uma maneira mais consistente e poderosa de automatizar tarefas.

Cronologia (Monad, Jeffrey Snover, Windows PowerShell ao PowerShell Core)

A história começa em 2002, quando Jeffrey Snover, então engenheiro da Microsoft, percebeu que a administração de sistemas Windows era fragmentada e ineficiente. Ele propôs um novo shell baseado em objetos, chamado Monad (codinome). Em 2005, o Monad foi lançado como um beta público. Em 2006, foi renomeado para Windows PowerShell e lançado oficialmente. A versão 1.0 era apenas para Windows, mas já trazia cmdlets, pipeline de objetos e acesso a APIs .NET.

# Exemplo de cmdlet no PowerShell 1.0
Get-Process

Com o tempo, novas versões foram lançadas: PowerShell 2.0 (com remoting, módulos e ISE), 3.0, 4.0 e 5.0. Em 2016, a Microsoft anunciou o PowerShell Core, uma versão multiplataforma baseada em .NET Core, tornando o PowerShell disponível para Linux e macOS. O PowerShell Core 6.0 foi lançado em 2018, e o 7.0 em 2020. Em 2022, o PowerShell 7.2 tornou-se a versão LTS (Long-Term Servicing).

# Verificar versão do PowerShell
$PSVersionTable.PSVersion

Multiplataforma

Uma das mudanças mais significativas foi a adoção do .NET Core, permitindo que o PowerShell rodasse em Linux e macOS. Isso abriu portas para administradores que gerenciam ambientes heterogêneos. Hoje, o PowerShell 7 é uma ferramenta unificada, com cmdlets específicos para cada plataforma, mas com uma base comum.

# Comando válido em Windows, Linux e macOS
Get-ChildItem

A instalação em diferentes sistemas pode ser feita via pacotes nativos (apt, yum, brew) ou manualmente. A Microsoft também disponibiliza imagens Docker.

Futuro

O PowerShell continua evoluindo. A versão 7.4 é a atual estável, com melhorias de desempenho e novos cmdlets. O foco está em manter a compatibilidade com módulos existentes e expandir o suporte a APIs modernas. A comunidade contribui ativamente com módulos no PowerShell Gallery. O futuro inclui maior integração com serviços em nuvem, como Azure, e possivelmente uma linguagem ainda mais simplificada para automação.

Referências

Exercícios

  1. Qual era o codinome original do PowerShell?

    Monad
  2. Quem é considerado o criador do PowerShell?

    Jeffrey Snover
  3. Em que ano foi lançado o PowerShell Core 6.0?

    2018
  4. Qual a principal diferença entre Windows PowerShell e PowerShell Core?

    O Windows PowerShell é baseado no .NET Framework e roda apenas no Windows, enquanto o PowerShell Core é baseado no .NET Core e é multiplataforma (Windows, Linux, macOS).
  5. Cite uma vantagem de usar PowerShell em ambientes multiplataforma.

    Permite gerenciar servidores Windows, Linux e macOS com uma única linguagem de script, simplificando a automação em ambientes heterogêneos.