Não deixe de ler os artigos anteriores da série:
- Aprenda a automatizar o Windows com o PowerShell
- Aprendendo a usar cmdlets no PowerShell
- Aprendendo a usar objetos no PowerShell
- Aprendendo a formatar, filtrar e comparar no PowerShell
- Aprenda a usar o Remoting no PowerShell
- Usando o PowerShell para obter informações do computador
- Trabalhando com coleções no PowerShell
E fique ligado para o resto da série durante toda a semana.
Snapins
Snapins são tão no ano passado. Todas as piadas à parte, os snap-in nunca foram realmente percebidos na comunidade do PowerShell porque a maioria dos criadores de scripts não são desenvolvedores e você só pode escrever snap-ins em um idioma como C #. No entanto, ainda existem alguns produtos que usam snapins, como o Web Deploy, por exemplo. Para ver quais snapins estão disponíveis para você usar no shell, use o seguinte comando:
Get-PSSnapin –Registered
Add-PSSnapin -Name WDeploySnapin3.0
Nesse ponto, você receberá um erro se não tiver o snap-in do Web Deploy instalado. Se você o tiver instalado, como eu faço, ele será importado para a sua sessão. Para obter uma lista de comandos disponíveis no snap-in, você pode simplesmente usar o cmdlet Get-Command:
Get-Command –Module WDeploy*
Nota: tecnicamente, este não é um módulo, mas, por algum motivo, você ainda precisa usar o parâmetro Module.
Módulos
Os módulos são mais recentes e são o caminho a seguir. Eles podem ser roteirizados usando o PowerShell, bem como codificados em uma linguagem como o C #. A maioria dos comandos internos também é organizada em módulos. Para ver uma lista de módulos no seu sistema, você pode usar o seguinte comando:
Get-Module –ListAvailable
Como os produtos são atualizados, suas contrapartes do PowerShell estão sendo migradas para módulos. Por exemplo, o SQL costumava ter um snapin, mas agora é composto de módulos.
Import-Module -Name SQLASCMDLETS
Você pode usar o mesmo truque que usamos com snapins para visualizar todos os comandos que o módulo adicionou ao shell.
($env:PSModulePath).Split(“;”)
Isso vai cuspir o conteúdo da variável. Observe que, se você tiver um módulo como o SQL instalado, como ele modificou a variável para incluir a localização do módulo SQL.
Carregamento Automático do Módulo
O PowerShell 3 introduziu um novo recurso incrível que passa por alguns nomes. Nenhum deles é oficial, mas “Module Auto Loading” é a melhor descrição dele. Basicamente, ele permite que você use cmdlets que pertencem a um módulo externo sem importá-lo explicitamente usando o cmdlet Import-Module. Para ver isso, primeiro remova todos os módulos do seu shell usando o seguinte comando:
Get-Module | Remove-Module
Você pode verificar se você não tem módulos carregados usando o seguinte:
Get-Module
Test-Connection localhost