O PowerShell é uma linguagem de script robusta fenomenal. Mas para desbloquear seu potencial, você deve saber como importar os módulos corretos.
Neste tutorial, você aprenderá tudo o que precisa saber para importar módulos do PowerShell como um profissional. Com um entendimento profundo dos cmdlets, parâmetros e módulos, você pode criar scripts mais rápidos, eficientes e eficazes do que nunca.
Continue lendo para potencializar suas habilidades no PowerShell e elevar seu jogo de script a novos patamares!
Pré-requisitos
Este tutorial será uma demonstração prática. Para acompanhar, certifique-se de ter um sistema com 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é-criado que você pode usar em seus scripts do PowerShell, economizando tempo e esforço. Quando você importa módulos do PowerShell, você aproveita códigos pré-criados em vez de começar do zero.
Mas como você importa 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 procurar o módulo PSDiagnostics
e carregá-lo na memória. Se bem-sucedido, o módulo é importado, mas o comando não produz saída.
Importar módulos de repositórios online via cmdlet Install-Module é altamente recomendado sempre que possível. Este cmdlet cuida de dependências e gerenciamento de versões para você.
Assim que você tiver importado o módulo, você pode usar qualquer um dos cmdlets ou funções do módulo para ajudar a diagnosticar e resolver problemas. O cmdlet Enable-PSTrace
é apenas um exemplo dos cmdlets fornecidos pelo módulo PSDiagnostics, que habilita o 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 gravados em um arquivo.
Alguns módulos podem exigir configuração ou setup adicional 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.
Executa o comando abaixo para pesquisar vários módulos (Dism, PowerShellGet, PSReadline
) e carregá-los na memória. Assim como a importação de 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 realmente foi 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
. Este parâmetro diz ao PowerShell para exibir informações detalhadas sobre o comando enquanto está sendo executado. Como resultado, você obtém um feedback valioso 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 diversas 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
(criação de novos compartilhamentos) e Remove-SmbShare
(remoção de compartilhamentos existentes).

Reimportando um Módulo na Mesma Sessão
Seja porque o seu módulo está agindo de forma estranha ou você apenas quer garantir que está usando a versão mais atualizada do seu módulo, reintegrar um PowerShell é propício. Como? Adicionando 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 ter que fechar e reabrir sua sessão do PowerShell.
Um caso de uso comum para reinportar um módulo é quando você está desenvolvendo e fazendo alterações em um módulo. Você pode reinportar 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 reinportar 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
. Esse 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 reinportado.
Agora, execute o Get-Command abaixo para obter uma lista de todos os cmdlets e funções fornecidos pelo módulo SmbShare selecionado (Select-Object) por Nome.
Abaixo, você pode ver que os cmdlets do módulo SmbShare agora têm o prefixo Novo adicionado aos seus nomes. Esta saída confirma que o módulo foi reimporado com sucesso.

Usando Pacotes NuGet para Importar Manualmente Módulos do PowerShell
Até agora, você importou com sucesso módulos da Galeria do PowerShell. Mas e se o módulo que você está procurando não estiver lá?
Você pode instalar e importar manualmente módulos do PowerShell de um pacote NuGet. No contexto do PowerShell, um pacote NuGet é uma coleção de arquivos que incluem 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. Navegue até a página da Galeria do PowerShell do Azure PowerShell Gallery do módulo Az.Automation.
2. Em seguida, clique na aba Download Manual → Baixar o arquivo nupkg bruto para baixar o pacote. Este tutorial utiliza o módulo Az.Automation 1.9.1 da galeria do PowerShell do Azure como exemplo. Mas os mesmos passos se aplicam a outros pacotes NuGet.

3. Depois de baixado, 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 pelo caminho 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 uma medida de segurança para evitar a execução de scripts potencialmente prejudiciais
4. Agora, descompacte o arquivo baixado .nupkg para 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.
Os conteúdos extraídos de um pacote NuGet incluem alguns 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 em 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 dos módulos do shell atuais. Este comando retorna uma lista de todos os caminhos de módulos padrão em seu sistema. O PowerShell pesquisa esses caminhos para carregar automaticamente os módulos quando o nome do módulo é especificado em um script ou comando.
Anota 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 para 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 agentes de mudança. E neste tutorial, você aprendeu amplas 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 abordou 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 a aprendizagem não precisa parar por aí. Que tal 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/