Cenário: Será uma tarefa comum dos Administradores utilizar o Powershell. Seja uma exigência de configuração ou automatizando processos, é necessário conhecer como utilizar as Cmdlets e suas peculiaridades. Entender como o Powershell se comunica será o diferencial para extrair o verdadeiro potencial criativo do Time de Suporte.
Requisitos: Aptidão para tradução literal de palavras em Inglês.
O Powershell é um Prompt de linha de comando. Sim! Mas também é uma linguagem de script formada por Cmdlets adaptadas para tarefas de administração do sistema.
- Como se trata de linguagem de script o Powershell é constituído de operadores, pipelines, objetos, atributos, variáveis, vetores e ainda todas as regras do seu código fonte para criação de Scripts.
A Cmdlet, que se pronuncia "Command let", implementa funções específicas (executa um comando, uma ação). Uma Cmdlet segue uma regra de verbo e substantivo para se formar uma frase que se torna uma ação, uma função a ser executada. Como por exemplo Restart-Computer (Reiniciar Computador).
- A disponibilidade dos verbos depende do substantivo de cada Cmdlet.
- A disponibilidade dos substantivos depende do verbo da Cmdlet.
Entendendo a Sintaxe de Cmdlets no Powershell - Verbo e Substantivo
Para uma ideia clara do significado de verbo, observe os verbos mais comuns como Adicionar, Conectar, Converter, Limpar, Habilitar, Obter,... na imagem abaixo.
Os Verbos das Cmdlets são:
- Add, Backup, Block, Checkpoint, Clear, Close, Compare, Complete, Configuration, Confirm, Connect, Convert, ConvertFrom, ConvertTo, Copy, Debug, Disable, Disconnect, Dismount, Enable, Enter, Exit, Expand, Export, Find, ForEach, Format, Get, Grant, Group, Help, Hide, Import, Initialize, Install, Invoke, Join, Limit, Lock, Measure, Merge, Mkdir, Mount, Move, New, Open, Otimize, Oss, Out, Pause, Pop, PsEdit, Publish, Push, Read, Receive, Register, Remove, Rename, Repair, Reset, Resize, Resolve, Restart, Restore, Resume, Revoke, Save, Select, Send, Set, Show, Sort, Split, Start, Stop, Suspend, Switch, Sync, Tee, Test, Trace, Unblock, Undo, Unistall, Unlock, Unresgister, Update, Use, Wait, Where, Write.
- Get-Command -Noun NomedoVerbo
- Get-Command -Verb NomedoVerbo
Os Cmdlets disponíveis dependem dos módulos carregados.
Os parâmetros do Powershell começam com traço (-), para definir os parâmetros os seus valores e a sintaxe na Cmdlet execute Help NomedaCmdlet.
Exemplos das Cmdlets de serviço, log de eventos e processo:
- Get-Service Exibir as propriedades de um serviço.
- New-Service Criar um novo serviço.
- Restart-Service Reiniciar um serviço existente.
- Resume-Service Retoma um serviço suspenso.
- Set-Service Configura as proprieades de um serviço.
- Start-Service Inicia um serviço interrompido.
- Stop-Service Para de executar um serviço.
- Suspend-Service Suspende um serviço.
- Get-Eventlog Exibe eventos no log de eventos especificado.
- Clear-Eventlog Exclui todas as entradas do log de eventos especificado.
- Limit-Eventlog Define os limites de idade e tamanho do log de eventos.
- New-Eventlog Cria um novo log de eventos e uma nova fonte de eventos.
- Remove-Eventlog Remove um log de eventos personalizado.
- Show-Eventlog Mostra os logs de eventos de um computador.
- Write-Eventlog Permite gravar eventos em um log de eventos.
- Get-Process Fornece informações sobre um processo.
- Start-Process Inicia um processo.
- Stop-Process Para um processo.
- Wait-Process Aguarda a interrupção antes de aceitar uma entrada.
- Debug-Process Conecta um depurador a um ou mais processos.
Exemplos de Cmdlets encontradas nos Módulos Gerenciador do Servidor, Hyper-V e Dism.
- Get-WindowsFeature Exibe a lista de Funções e Recursos instalados.
- Add-WindowsFeature Instala uma Função ou Recurso.
- Uninstall-WindowsFeature Desinstala uma Função ou Recurso.
- New-VM Cria uma nova máquina virtual.
- Resize-VHD Redimensiona o espaço em disco do VHD.
- Set-VMMemory Configura a memória da maquina virtual.
- New-Windowsimage Cria uma nova Imagem.
- Set-WinodwsProductKey Define um Serial a Imagem.
- Update-WIMBootEntry Atualiza a opção de boot da imagem.
A criação de Script no Powershell merece destaque, mas tudo que se utiliza nesta linguagem de script permite diversos usos para sua Cmdlet e desperta a curiosidade e criatividade.
Operadores Comparativos
O Powershell compara para você dois números ou strings:
- -eq Igual a, utilizado para comparar números e textos.
- -lt Menor que, Utilizado para comparar números.
- -gt Maior que, utilizado para comparar números.
- -ge Maior ou igual a, utilizado para comparar números.
- -le Menor que, utilizado para comparar números.
- -ne Não igual a, utilizado para comparar números e textos.
- -contains Contém, utilizado para comparar vetores.
- -like Igual, utilizado para comparar textos ou números.
- -notlike Não igual a.
- -is É, utilizado para comparar tipos de objetos.
- -isnot Não é, utilizado para comparar tipos de objetos
Operadores Condicionais
O Powershell verifica para você se uma condição é verdadeira ou falsa:
- if Verifica se a condição for verdadeira.
- else Utilizado após o if, verifica se a condição não foi verdadeira.
- elseif Utilizado e a condição anterior não for verdadeira e uma nova condição for.
- while Utilizado para repetir um bloco enquanto uma condição for verdadeira.
- for Utilizado para repetir um bloco um predeterminado numero de vezes.
- foreach Utilizado para repetir um bloco uma vez para cada item em uma lista.
- where Utilizado para filtrar itens em uma lista.
- switch Utilizado para executar multiplas verificações substituindo uma cadeia de ifs.
Redirecionando Saída dos Cmdlets
Quando executamos um Cmdlet ele retorna um objeto ou um vetor de objetos, com a pipeline ( | ) podemos redirecionar a saída da Cmdlet para outro comando e assim sucessivamente.
Exemplos de Pipeline ( | )(ASCII 124):
- Command-1 | Command-2 | Command-3
- Get-Process notepad | Stop-Process
- Get-Service wmi | Start-Service
- Get-Process | Sort-Object -property handles
- Saiba tudo sobre Pipelines no about_Pipelines
Otimizando o Comando Help com verbo e Parâmetros.
O substantivo Help tem um verbo bem interessante, Get-Help.
- Get-Help NomedaCmdlet
- Get-Help Get-Process -Examples
- Get-Help Get-Process -Full
- Get-Help Get-Process -Parameter
- Get-Help Get-Process -Functionality
- Get-Help Get-Process -Online
Exibindo lista de módulos disponíveis para atualização:
- Get-Module -ListAvaliable | Updade-Help
Atualizando um módulo do Powershell:
- Update-Help NomedoModulo
Conclusão: Falar a linguagem do Powershell permite executar tarefas administrativas simples e também complexas configurações no ambiente de grande porte com a mesma versatilidade.
Esse artigo foi submetido por
Alexandre de Matos
MCSE - MCSA - MCTS
alexandremn@live.estacio.br
Conteúdo maravilhoso muito bom parabéns
ResponderExcluir