Cmdlets: o conceito
Esta aula explora o conceito de cmdlets no PowerShell, com foco na estrutura Verbo-Substantivo, sua importância para a consistência e descoberta de comandos, além de exemplos práticos e exercícios para fixação.
Cmdlets (pronuncia-se "command-lets") são os comandos nativos do PowerShell, implementados como classes .NET. Diferente de comandos tradicionais de shell, os cmdlets seguem uma convenção rigorosa de nomenclatura que os torna previsíveis e fáceis de descobrir. Nesta aula, vamos entender a estrutura Verbo-Substantivo, por que ela é importante, como descobrir cmdlets e ver exemplos práticos.
Dominar essa convenção é essencial para navegar no ecossistema do PowerShell, pois ela permite que você adivinhe comandos que ainda não conhece e entenda rapidamente o que cada cmdlet faz.
Estrutura Verbo-Substantivo (Get-, Set-)
Cada cmdlet é nomeado no formato Verbo-Substantivo, onde o verbo indica a ação (como Get, Set, New, Remove) e o substantivo indica o alvo da ação (como Process, Service, Item). Por exemplo, Get-Process obtém informações sobre processos, Set-Service altera as propriedades de um serviço.
Os verbos são padronizados e aprovados pela Microsoft para garantir consistência. Exemplos comuns incluem: Get (recuperar), Set (definir), New (criar), Remove (remover), Start (iniciar), Stop (parar), Test (testar), entre outros. O substantivo geralmente é singular, mesmo que o cmdlet possa retornar múltiplos objetos.
# Exemplos de cmdlets com estrutura Verbo-Substantivo
Get-Process # Obtém processos
Set-ExecutionPolicy # Define a política de execução
New-Item # Cria um novo item (arquivo, pasta, etc.)
Remove-Item # Remove um item
Start-Service # Inicia um serviço
Stop-Process # Para um processoPor que essa convenção
A convenção Verbo-Substantivo torna o PowerShell mais intuitivo e consistente. Ao saber o verbo, você já tem uma ideia da ação; ao saber o substantivo, sabe o alvo. Isso facilita a descoberta de comandos e a leitura de scripts.
Além disso, a padronização permite que ferramentas como o Get-Command filtrem cmdlets por verbo ou substantivo, ajudando na exploração. A Microsoft mantém uma lista de verbos aprovados para evitar duplicidade e ambiguidade, promovendo um ecossistema de módulos mais organizado.
# Filtrar cmdlets por verbo
Get-Command -Verb Get
# Filtrar cmdlets por substantivo
Get-Command -Noun ProcessDescobrindo cmdlets
O PowerShell oferece vários cmdlets para descobrir outros cmdlets. O principal é Get-Command, que lista todos os cmdlets disponíveis. Você pode usar parâmetros como -Verb, -Noun, -Name (com curingas) para refinar a busca.
Outro cmdlet útil é Get-Help, que exibe a ajuda de um cmdlet, incluindo sintaxe, parâmetros e exemplos. Para obter exemplos, use Get-Help -Examples. E para descobrir os parâmetros de um cmdlet, use Get-Command -Syntax ou consulte a ajuda completa.
# Listar todos os cmdlets
Get-Command -CommandType Cmdlet
# Descobrir cmdlets relacionados a serviço
Get-Command -Noun *Service*
# Obter ajuda sobre um cmdlet
Get-Help Get-Process
# Ver exemplos de uso
Get-Help Get-Process -ExamplesExemplos
Vamos ver alguns exemplos práticos que ilustram o uso de cmdlets com a estrutura Verbo-Substantivo.
# Listar processos com mais de 100 MB de memória
Get-Process | Where-Object { $_.WorkingSet64 -gt 100MB }
# Criar uma nova pasta
New-Item -Path "C:\Temp\NovaPasta" -ItemType Directory
# Alterar a política de execução para permitir scripts locais
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
# Parar um serviço específico
Stop-Service -Name Spooler -Force
# Testar se uma porta está aberta (usando Test-NetConnection, que segue a convenção)
Test-NetConnection -ComputerName localhost -Port 80Boas práticas
Ao criar seus próprios cmdlets (em módulos), siga a convenção: use verbos aprovados (consulte Get-Verb) e substantivos no singular. Evite verbos não padronizados para manter a consistência. Sempre forneça ajuda e exemplos para seus cmdlets.
Referências
- Visão geral de cmdlets (Microsoft Docs)
- Verbos aprovados para comandos do PowerShell
- Get-Command (Microsoft Docs)
- Get-Help (Microsoft Docs)
- Descobrindo comandos (PowerShell 101)
- Get-Verb (Microsoft Docs)
Exercícios
- Use o cmdlet apropriado para listar todos os cmdlets que começam com o verbo "Get".
- Qual cmdlet você usaria para obter ajuda detalhada sobre o cmdlet
Set-Service? Escreva o comando. - Liste todos os cmdlets que têm o substantivo "Item" (dica: use curinga).
- Escreva um comando que crie uma nova chave de registro chamada "MinhaChave" em HKCU:\Software\Teste.
- Qual verbo aprovado você usaria para um cmdlet que reinicia um serviço? (Consulte
Get-Verbse necessário).
Get-Command -Verb Get -CommandType CmdletGet-Help Set-Service -Detailed (ou apenas Get-Help Set-Service)Get-Command -Noun *Item* -CommandType CmdletNew-Item -Path "HKCU:\Software\Teste\MinhaChave"Restart, então Restart-Service.