Módulos do PowerShell: Um Guia para Iniciantes sobre a Ampliação da Funcionalidade

Automatização de construção com PowerShell pode parecer inicialmente avassalador, mas como qualquer grande empreendimento, trata-se de avançar passo a passo. Imagine o PowerShell como uma coleção de blocos de construção, com módulos como a base que dá vida à sua funcionalidade.

Neste artigo, você descobrirá o que são os módulos do PowerShell, como encontrá-los e como usá-los para potencializar suas tarefas de automação. Desde a gestão de máquinas virtuais até a conexão com serviços em nuvem ou automação do Active Directory, os módulos tornam tudo isso possível.

Continue lendo para desbloquear todo o potencial do PowerShell e enfrentar suas tarefas com precisão!

Descobrindo os Módulos do PowerShell Disponíveis

Os módulos do PowerShell são blocos de construção essenciais que estendem sua funcionalidade. No entanto, nem todos os módulos são carregados automaticamente em sua sessão—muitas vezes eles permanecem em seu sistema, esperando ser descobertos.

Para explorar os módulos instalados em seu sistema, use o comando Get-Module:

Get-Module

Você pode notar uma lista curta de módulos. O motivo é que o Get-Module mostra apenas os módulos já importados em sua sessão.

Para ver todos os módulos disponíveis em seu sistema, incluindo aqueles ainda não carregados, adicione o parâmetro -ListAvailable:

Get-Module -ListAvailable

Este comando lista todos os módulos disponíveis em seu sistema, estejam eles carregados na memória ou não. O PowerShell importa automaticamente os módulos à medida que você usa comandos deles, então normalmente você não precisa carregá-los manualmente.

Os módulos podem ser de vários tipos—script, binário ou manifesto.

Para agrupar os módulos por tipo para facilitar a inspeção, experimente isto:

gmo -ListAvailable | group ModuleType

Aqui, você usa aliases por conveniência.

Por exemplo, gmo é uma abreviação para Get-Module, e group é um alias para Group-Object. Aliases economizam tempo ao executar comandos no console.

Descobrindo Versões de Módulo e Detalhes de Comando

Cada módulo tem uma versão que representa seu conjunto de recursos ou alterações ao longo do tempo. O versionamento permite gerenciar atualizações ou reverter para uma versão anterior, se necessário.

Módulos também contêm comandos que são acessíveis através da propriedade ExportedCommands.

Para ver os comandos no módulo Microsoft.PowerShell.Management, execute:

gmo Microsoft.PowerShell.Management | Select-ExpandProperty ExportedCommands

Este comando exibe uma lista de comandos disponíveis no módulo.

Localizando Diretórios de Módulo

Módulos não funcionam magicamente no PowerShell—eles estão em diretórios específicos no seu sistema, e o PowerShell precisa saber onde encontrá-los.

Para mostrar as localizações dos módulos PowerShell disponíveis:

gmo -list

Locais comuns incluem:

  • C:\Program Files\PowerShell\7\Modules
  • C:\Program Files\WindowsPowerShell\Modules
  • C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules

Mesmo ao executar o PowerShell Core, módulos dos diretórios do Windows PowerShell podem ainda aparecer porque o PowerShell Core pode usá-los.

Módulos têm categorias dedicadas pela propriedade PSEdition, que indica compatibilidade:

  • Core – Construído para PowerShell Core.
  • Desk – Projetado para o Windows PowerShell.
  • Ambos – Compatível com ambas as edições.

Gerenciando a Variável PSModulePath

O PowerShell não pesquisa automaticamente todo o sistema em busca de módulos – ele depende de caminhos específicos definidos pela variável de ambiente PSModulePath. Se um módulo não estiver em um desses caminhos, o PowerShell não o encontrará, mesmo que o sistema/você o tenha instalado em outro lugar.

Para visualizar a variável de ambiente PSModulePath:

$env:PSModulePath

A variável contém uma lista separada por ponto e vírgula de diretórios.

Para facilitar a leitura, divida-a em uma matriz:

$env:PSModulePath -split ';'

O PowerShell pesquisa por módulos em:

  • Diretórios de nível de usuário (por exemplo, a pasta Documentos do seu perfil de usuário).
  • Diretórios compartilhados em Program Files.
  • Diretórios de nível de sistema, como C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules.

Você também pode adicionar diretórios personalizados ao caminho de pesquisa:

$env:PSModulePath + ';C:\MyNewModulePath'
$env:PSModulePath

Essa alteração se aplica à sessão atual, direcionando o PowerShell a procurar módulos no caminho especificado.

Conclusão

Neste artigo, você explorou como descobrir módulos disponíveis, visualizar suas versões, inspecionar seus comandos e localizar seus diretórios de armazenamento. Você também aprendeu como aproveitar a variável de ambiente PSModulePath para personalizar onde o PowerShell procura módulos.

Essas habilidades fundamentais permitem que você desbloqueie todo o potencial do PowerShell para suas tarefas de automação. Continue colocando esse conhecimento em prática. Comece explorando os módulos já disponíveis em seu sistema e identificando aqueles que atendem às suas necessidades atuais.

Com um entendimento mais profundo dos módulos, você estará pronto para lidar com desafios complexos de automação com confiança e eficiência!

Source:
https://adamtheautomator.com/powershell-modules-guide/