Microsoft PowerShell é uma grande plataforma de scripting. A Microsoft fornece suporte ao PowerShell para quase todas as funções e funcionalidades do Windows Server. Você pode usar o PowerShell para automatizar tarefas repetidas, bem como executar tarefas facilmente usando a linha de comando que você normalmente executa usando as ferramentas GUI. Por exemplo, em um ambiente de produção, se você precisar verificar o status da aplicação de patches em servidores Windows, usar a abordagem de script do PowerShell é muito mais fácil do que conectar-se a cada servidor individualmente e, em seguida, verificar o status da aplicação de patches. Eu sou um utilizador regular do PowerShell e desenhei milhares de scripts PowerShell nos meus 18 anos de experiência em TI.

Antes do PowerShell, a linguagem de script principal para executar tarefas operacionais do Windows era o Visual Basic Scripting. Embora o Visual Basic Scripting ainda exista e muitos administradores de TI ainda preferem usar o VB scripting, vale a pena mencionar que o PowerShell reduz a complexidade do código. Por exemplo, para verificar os serviços em um computador Windows, você precisará escrever o código VBScript em um bloco de notas, salvar o arquivo como .VBS e depois executá-lo usando o arquivo de execução do host CSCript. Mas usando o PowerShell você pode usar um simples cmdlet Get-Service que pode ajudá-lo a listar serviços de um computador Windows rapidamente. Se você precisou salvar a saída em um arquivo usando o script VB, você precisará novamente escrever um monte de código no script VB, o que envolve abrir o arquivo, e então escrever o conteúdo para o arquivo. O PowerShell apenas não requer que você abra o arquivo antes que o conteúdo recuperado por um PowerShell cmdlet possa ser escrito em um arquivo. Tudo o que você precisa fazer é usar “Export-CSV” ou “Add-Content” cmdlets.

Cmdlets: Os blocos de construção dos scripts PowerShell

PowerShell oferece cmdlets (pronunciados “command-lets”), às vezes chamados de ferramentas de linha de comando, que você pode usar para obter informações sobre o sistema operacional, aplicativos instalados em um computador Windows, informações de rede, estado dos patches no computador Windows, e muito mais. É importante notar que os cmdlets do PowerShell são escritos em .NET e usam classes .NET para executar as tarefas necessárias. Se deseja descobrir quais os cmdlets PowerShell disponíveis no computador local, execute este comando:

Get-Command

Get-Command é um cmdlet PowerShell que recupera cmdlets, funções, filtros e scripts PowerShell instalados no computador local. O comando acima consulta todos os módulos PowerShell instalados no computador local. Se precisar de ver todos os comandos instalados no computador local numa ordem, execute este comando:

Get-Command -Type cmdlet | Sort-Object -Property Noun |FT -GroupBy Noun

Três tipos de operações PowerShell

PowerShell scripts
Utilizando o PowerShell pode executar três tipos de operações. Elas são Get, Set, e Remove. Qualquer PowerShell cmdlet que começa com “Get” é tipicamente usado para recuperar informações de componentes do Windows. Por exemplo, Get-ADUser executa uma operação de leitura contra a base de dados do Active Directory para recuperar a informação do utilizador. Alguns exemplos de utilização do Get-ADUser PowerShell cmdlet são mostrados abaixo:

Get-ADUser -Filter * -SearchBase “OU=TestUsers,DC=TechGenix,DC=Com”

O comando acima recupera todas as contas de utilizador localizadas numa unidade organizacional enquanto que o comando abaixo recupera propriedades associadas a um único utilizador do Active Directory:

Get-ADUser -Identity JohnThomas -Properties *

PowerShell cmdlets que começam com “Set” são usados para editar informações de componentes do Windows. Por exemplo, ao usar Set-ADUser você pode várias tarefas operacionais como mostrado nos comandos abaixo:

Set-ADUser -Identity JohnThomas -HomeFolder \\\Server1\%UserName%

Os comandos abaixo definem a propriedade de e-mail para o usuário JohnThomas.

$ThisUser = Get-ADUser -Identity JohnThomas -Properties Mail
$ThisUser.Mail = [email protected]
Set-ADUser -Instance $ThisUser

powershell scripts

Any PowerShell cmdlets que começam com “Remove” são usados para executar operações de exclusão. Por exemplo, Remove-ADUser pode ser usado para remover um usuário do Active Directory como mostrado abaixo:

Remover-ADUser -Identity JohnThomas

Combinando PowerShell cmdlets

Uma das melhores características que o PowerShell fornece é a capacidade de combinar dois ou mais cmdlets PowerShell em um único comando PowerShell. Tais comandos são às vezes chamados de comandos PowerShell de uma linha. Por exemplo, se precisar de remover todas as contas de utilizador desactivadas do Active Directory, pode combinar Search-ADAccount e Remove-ADUser PowerShell cmdlets como mostrado no comando abaixo:

Search-ADAccount -AccountDisabled | Where {$_.ObjectClass -eq “User”} | Remove-ADUser

Como pode ver no comando acima, Search-ADAccount PowerShell cmdlet executa uma pesquisa em todo o directório activo para procurar contas desactivadas e depois, usando o operador de pipe (|) está a instruir o utilizador Remove-ADUser para executar uma operação de eliminação apenas nos utilizadores que são recuperados pela Search-ADAccount.

PowerShell aliases

Embora muitos cmdlets PowerShell sejam fáceis de ler e usar, PowerShell também fornece uma funcionalidade chamada PowerShell alias. A PowerShell é suficientemente inteligente para completar o nome de uma PowerShell cmdlet com um toque na tecla Tab. Caso tenha dificuldade em lembrar o nome da PowerShell cmdlets, você pode criar apelidos PowerShell. Por exemplo, você pode criar um alias para o PowerShell cmdlet Get-MailBoxStatistics usando o comando abaixo:

New-Alias ShowMB Get-MailBoxStatistics

Quando você digita “ShowMB” na janela do PowerShell, o PowerShell procura o cmdlet associado ao alias ShowMB e depois executa-o.

Guardar informação num ficheiro CSV

Quando se trata de guardar informação num ficheiro CSV, o PowerShell guarda muito trabalho de scripting. PowerShell fornece “Export-CSV” cmdlet que você pode usar com qualquer outro PowerShell cmdlets. Por padrão, qualquer comando PowerShell que você executar mostra as informações resultantes na janela de comando do PowerShell, a menos que você adicione Export-CSV ao final do comando como mostrado no comando abaixo:

Get-ADUser -Filter * -SearchBase “OU=TestUsers,DC=TechGenix,DC=Com”. | Export-CSV C:\Temp\AllUsersInAnOU.CSV

Note que no comando acima, você está apenas adicionando “Export-CSV” no final do comando para ter a saída exportada em um arquivo CSV.

Como você pode ver, os scripts PowerShell reduzem o tempo que leva para executar tarefas operacionais diárias. PowerShell é capaz de executar três tarefas operacionais; Obter, Definir e Remover e 97% dos cmdlets do PowerShell começam com estas três palavras para identificar facilmente a função de um cmdlet PowerShell. Também explicamos como é fácil combinar duas cmdlets em um único comando para tornar seus scripts PowerShell mais eficientes.

Deixe uma resposta

O seu endereço de email não será publicado.