O PowerShell é uma linguagem de script fenomenalmente robusta. Mas, para desbloquear seu potencial, você deve saber como importar os módulos certos.
Neste tutorial, você aprenderá tudo o que precisa saber para importar módulos do PowerShell como um profissional. Com uma compreensão profunda de cmdlets, parâmetros e módulos, você pode criar scripts mais rápidos, eficientes e eficazes do que nunca.
Continue lendo para aprimorar suas habilidades no PowerShell e elevar seu jogo de scripts a novos patamares!
Pré-requisitos
Este tutorial será uma demonstração prática. Para acompanhar, certifique-se de ter um sistema com o PowerShell instalado. Este tutorial usa o Windows 10 e o PowerShell 5.1 como exemplo, mas os mesmos comandos devem funcionar com a maioria das versões do Windows e do PowerShell.
Importando um Único Módulo
Os módulos do PowerShell contêm código pré-construído que você pode usar em seus scripts do PowerShell, economizando tempo e esforço. Ao importar módulos do PowerShell, você aproveita códigos pré-construídos em vez de começar do zero.
Mas como importar módulos do PowerShell? O Import-Module
cmdlet é a maneira principal de importar módulos no PowerShell. Importar um único módulo é um dos usos mais básicos do Import-Module
cmdlet, que é a primeira coisa que você aprenderá neste tutorial.
Abra o PowerShell como administrador e execute o comando Import-Module
abaixo para pesquisar o módulo PSDiagnostics
e carregá-lo na memória. Se for bem-sucedido, o módulo será importado, mas o comando não produzirá saída.
Importar módulos de repositórios online via cmdlet Install-Module é altamente recomendado sempre que possível. Este cmdlet cuida das dependências e do gerenciamento de versões para você.
Depois de ter importado o módulo, você pode usar qualquer um dos cmdlets ou funções do módulo para ajudar a diagnosticar e solucionar problemas. O cmdlet Enable-PSTrace
é apenas um exemplo dos cmdlets fornecidos pelo módulo PSDiagnostics, que permite rastreamento de diagnóstico no PowerShell.
Agora, execute o seguinte comando Enable-PSTrace
para realizar o rastreamento de diagnóstico e salvar os resultados no caminho especificado -TraceFilePath
(C:\\MyTrace.log
). Este comando não fornece saída para o console, pois os resultados são registrados em um arquivo.
Alguns módulos podem exigir configuração ou preparação adicionais antes de serem utilizados. Certifique-se de ler a documentação fornecida com o módulo para entender quaisquer pré-requisitos ou requisitos.
Importando Múltiplos Módulos de uma Vez
Importar um único módulo funciona bem. Mas quando você precisa importar frequentemente vários módulos de uma vez, a tarefa também está ao alcance do cmdlet Import-Module
.
Importar vários módulos é uma ótima maneira de economizar tempo e esforço no PowerShell. Mas como exatamente? Você irá especificar os nomes dos módulos separados por vírgulas.
Execute o comando abaixo para pesquisar vários módulos (Dism, PowerShellGet, PSReadline) e carregá-los na memória. Assim como importar um único módulo, este comando não fornece saída.
Exibindo Detalhes da Importação do Módulo
Como mencionado anteriormente, a importação bem-sucedida do módulo não fornece saída. Mas admita. Você ficaria cético se o módulo foi realmente importado ou não.
O parâmetro -Verbose
é uma opção útil que você pode usar com muitos cmdlets e funções do PowerShell, incluindo o cmdlet Import-Module
. Esse parâmetro diz ao PowerShell para exibir informações detalhadas sobre o comando conforme ele está sendo executado. Por sua vez, você obtém o valioso feedback que pode ser usado para solução de problemas e depuração.
Execute o seguinte comando para importar o módulo SmbShare
, adicionando o parâmetro -Verbose
para imprimir os detalhes da importação do módulo.
Como você pode ver abaixo, o parâmetro -Verbose
fornece informações detalhadas sobre o arquivo do módulo sendo carregado e várias funções sendo importadas do módulo. Essas informações podem ajudar a entender o funcionamento interno do módulo.
Neste caso, o módulo SmbShare
fornece cmdlets para gerenciar compartilhamentos SMB em máquinas Windows. Esses cmdlets incluem, mas não se limitam a New-SmbShare
(criando novos compartilhamentos) e Remove-SmbShare
(removendo compartilhamentos existentes).

Reimportando um Módulo na Mesma Sessão
Seja porque seu módulo está agindo de forma estranha ou simplesmente porque você quer garantir que está usando a versão mais atualizada do seu módulo, reimportar um PowerShell é benéfico. Como? Ao adicionar o parâmetro -Force
ao comando Import-Module
.
Este parâmetro -Force
permite que você continue usando os cmdlets e funções fornecidos pelo módulo sem precisar fechar e reabrir sua sessão do PowerShell.
Um caso de uso comum para reinspeção de um módulo é quando você está desenvolvendo e fazendo alterações em um módulo. Você pode reinspecionar o módulo em sua sessão atual para testar essas alterações antes de finalizá-las.
Execute o seguinte comando para -Force
o PowerShell remover e reinspecionar o módulo SmbShare
de sua localização original.
O parâmetro -Prefix
permite que você especifique um prefixo para os cmdlets e funções importados do módulo. Neste caso, todos os cmdlets e funções importados serão precedidos por New
. Este parâmetro pode ser útil para evitar conflitos com cmdlets ou funções existentes em sua sessão.
Por exemplo, o cmdlet Get-SmbShare
no módulo original se tornará Get-NewSmbShare
no módulo reinspecionado.
Agora, execute o Get-Command abaixo para recuperar uma lista de todos os cmdlets e funções fornecidos pelo módulo SmbShare selecionados (Select-Object) por Nome.
Abaixo, você pode ver que os cmdlets do módulo SmbShare agora têm o prefixo New adicionado aos seus nomes. Esta saída confirma que o módulo foi reimportado com sucesso.

Usando Pacotes NuGet para Importar Manualmente Módulos do PowerShell
Até agora, você importou com sucesso módulos da PowerShell Gallery. Mas e se o módulo que você procura não estiver lá?
Você pode instalar e importar manualmente módulos do PowerShell a partir de um pacote NuGet. No contexto do PowerShell, um pacote NuGet é uma coleção de arquivos que inclui um módulo do PowerShell juntamente com quaisquer módulos ou bibliotecas dependentes necessários para o funcionamento do módulo.
Para importar um módulo de um pacote NuGet, você precisa baixar, extrair e instalar manualmente o pacote NuGet com as seguintes etapas:
1. Acesse a página do Azure PowerShell Gallery do módulo Az.Automation.
2. Em seguida, clique na guia Download Manual → Baixar o arquivo nupkg cru para baixar o pacote. Este tutorial utiliza o módulo Az.Automation 1.9.1 da galeria Azure PowerShell como exemplo, mas os mesmos passos se aplicam a outros pacotes NuGet.

3. Após o download, execute o comando Unblock-File
abaixo, que não fornece saída, mas desbloqueia o arquivo .nupkg baixado. Certifique-se de alterar o caminho do arquivo para o local onde você baixou o pacote.
Desbloquear o pacote é necessário. Por quê? O PowerShell pode não permitir a execução de arquivos baixados da internet como medida de segurança para evitar a execução de scripts potencialmente prejudiciais
4. Agora, descompacte o arquivo .nupkg baixado em uma pasta em sua máquina local. Você pode precisar de uma ferramenta de compressão/descompressão como 7-zip ou WinRAR para descompactar o pacote. Um pacote NuGet é um arquivo ZIP contendo uma coleção de arquivos que compõem um módulo.
5. Exclua o seguinte conteúdo da pasta extraída.
O conteúdo extraído de um pacote NuGet inclui metadados e arquivos que não são necessários para a instalação manual do módulo.
Name | Type |
---|---|
_rels | Folder |
Package | Folder |
[Content_Types].xml | XML File |
Az.Automation.nuspec | XML Manifest File |

6. Renomeie sua pasta extraída com um nome mais descritivo, como az.automation, para evitar quaisquer erros que possam surgir. Lembre-se de manter todas as letras minúsculas e abster-se de usar caracteres especiais em seu nome.
7. Em seguida, execute o comando $env:PSModulePath
abaixo para encontrar os caminhos atuais do módulo do seu shell. Este comando retorna uma lista de todos os caminhos de módulo padrão em seu sistema. O PowerShell pesquisa esses caminhos para carregar módulos automaticamente quando o nome do módulo é especificado em um script ou comando.
Anote os caminhos, pois você precisará deles na etapa seguinte.

8. Copie a pasta recém-nomeada (az.automation) para um dos diretórios que você anotou no passo sete. Fazê-lo define o escopo do módulo (específico ou todos os usuários).
Path | Function |
---|---|
C:\Users\admin\Documents\WindowsPowerShell\Modules | Makes the module available for the specific user account (admin). This tutorial uses this location as an example. |
C:\Program Files\WindowsPowerShell\Modules | Makes the module available for all user accounts on your local machine. |
9. Agora, execute o comando abaixo para instalar e importar o módulo (az.automation) em sua sessão do PowerShell. Certifique-se de substituir az.automation pelo nome real do seu módulo.

10. Por fim, execute o seguinte comando Get-Module para verificar se o módulo (az.automation) foi importado com sucesso.

Talvez você não queira depender da descoberta automática. Se for o caso, especifique o local exato do arquivo (C:\az.automation) ao importar o módulo.

Conclusão
Com funções conjugadas ou código agrupado, os módulos do PowerShell são revolucionários. E neste tutorial, você aprendeu várias maneiras de importar módulos do PowerShell em suas sessões, incluindo a importação manual de módulos de um pacote NuGet. Você também explorou diferentes parâmetros que controlam o processo de importação.
Ao dominar essas técnicas, você pode facilmente importar e usar módulos para aprimorar seus scripts de automação. Mas o aprendizado não precisa parar por aí. Por que não levar suas habilidades de gerenciamento de módulos do PowerShell para o próximo nível aprendendo a exportar membros do módulo?
Source:
https://adamtheautomator.com/import-powershell-modules/