Seu Guia de Introdução para Verbos Aprovados do PowerShell

Quando se trata de scripts em PowerShell, convenções de nomenclatura consistentes tornam a tarefa de construir soluções robustas muito mais fácil. A boa notícia é que existem verbos aprovados pelo PowerShell que você pode usar ao escrever scripts e comandos.

Neste tutorial, você aprenderá quais verbos aprovados usar no PowerShell por meio de uma série de exemplos.

Comece agora e aprimore seus scripts no PowerShell!

Pré-requisitos

Este tutorial inclui demonstrações práticas. Se deseja acompanhar, certifique-se de ter um sistema executando o PowerShell 5.1 ou posterior. Este tutorial usa o Windows 11 com o PowerShell 7.

Obtendo uma Lista de Verbos Aprovados pelo PowerShell

No PowerShell, cmdlets são comandos pequenos e de única função que executam ações específicas no ambiente do PowerShell.

Cada cmdlet em PowerShell tem um nome único que segue o formato de par verbo-substantivo, onde:

  • A parte do verbo do nome descreve a ação que o cmdlet realiza. Alguns verbos comuns usados no PowerShell são os seguintes:
Verb Function
Get Retrieves information.
Set Changes or updates settings.
New Creates something new.
Remove Deletes or removes something.
  • A parte do substantivo do nome identifica a entidade ou objeto sobre o qual a ação é realizada, o alvo para a ação. O substantivo geralmente descreve a categoria ou tipo de objeto com o qual o cmdlet interage, como comando, processo, serviço ou arquivo.

Para ver todos os verbos aprovados que você pode usar para o seu script:

Execute o seguinte cmdlet Get-Verb para obter uma lista completa de verbos aprovados pelo PowerShell.

Get-Verb

A saída abaixo mostra apenas alguns verbos que você pode usar para o seu script.

Retrieving a complete list of approved verbs

Agora, execute o mesmo comando como abaixo, mas desta vez, você listará todos os verbos aprovados que começam com re através de uma pesquisa com caracteres curinga. Fazendo isso reduz a lista de verbos para aqueles associados a resetar, redimensionar, refazer, e assim por diante.

Get-Verb re*

Como mostrado abaixo, reduzir a lista de verbos pode ser útil quando você tem uma ação específica em mente e deseja encontrar um verbo que corresponda de perto a essa ação.

Narrowing down the list of approved verbs

Criando Novos Recursos via o Verbo New

Você acabou de recuperar uma lista de verbos aprovados no PowerShell, mas como você usa esses verbos em seu script ou ao executar comandos? Você irá colocar o verbo New antes de um substantivo que represente o tipo de recurso que você deseja criar (ou seja, usuário, arquivo, serviço).

Mas neste exemplo, você irá criar um novo recurso, especificamente um novo usuário, da seguinte maneira:

Execute o seguinte comando New-LocalUser para criar um novo usuário chamado John Smith com uma senha (Password123) e definir a conta para nunca expirar (-AccountNeverExpires).

New-LocalUser -Name "John Smith" -AccountNeverExpires -Password (ConvertTo-SecureString -AsPlainText "Password123" -Force
Creating a new resource (user account) via the New verb

Recuperando Informações de Recursos via o Verbo Get

Além de criar novos recursos, o PowerShell também possui um verbo que permite que você recupere informações sobre quaisquer dos seus recursos existentes. No PowerShell, o verbo Get é comumente usado para recuperar informações sobre um recurso específico, como o sistema operacional, serviços, arquivos e outros objetos.

Para recuperar informações do recurso via o verbo Get:

Execute o comando Get-LocalUser abaixo para obter informações sobre um usuário local específico (John Smith).

Get-LocalUser -Name "John Smith"

Abaixo, a saída mostra que a conta de usuário John Smith está Ativada (ativa).

Retrieving resource information via the Get verb

Modificando Recursos Existente via o Verbo Set

Imagine que você percebeu algo errado após ver as informações de um dos seus recursos. Como você pode modificar um recurso existente? Não se preocupe! Um verbo aprovado pelo PowerShell, o verbo Set, permite que você faça alterações nos recursos existentes.

Em vez de recriar recursos, o verbo Set permite que você ajuste, modificando suas propriedades ou configurações.

Para modificar recursos existentes via o verbo Set:

Execute os seguintes comandos para definir o valor de `$myVariable` como `Hello` e modificar o valor de `$myVariable` para `Hello, World!`. Esses comandos não fornecem saída, mas você verificará as mudanças na etapa seguinte.

# Definir um recurso de variável
$myVariable = "Hello"

# Modificar o valor de um recurso de variável existente
Set-Variable -Name myVariable -Value "Hello, World!"

Agora, execute o comando `Get-Variable` abaixo para recuperar informações sobre seu recurso (`$myVariable`).

Get-Variable -Name myVariable

Como mostrado abaixo, a saída exibe o nome e o valor da variável.

Retrieving information about a resource

Desencadeando Ações ou Invocando Comandos via o Verbo `Invoke`

Em vez de executar comandos manualmente, como fez nos exemplos anteriores, por que não automatizá-los em um script do PowerShell? Como? O verbo `Invoke` permite que você inicie ações ou invoque comandos programaticamente.

Com um script do PowerShell e o verbo `Invoke`, você pode executar vários comandos do PowerShell de uma vez sem digitá-los todos no console.

Para ver como funcionam as ações de desencadeamento via o verbo `Invoke`:

1. Execute o seguinte comando `Invoke-Expression` para invocar o comando `Get-Date`, que permite que você recupere a data e hora atuais.

Invoke-Expression -Command "Get-Date"

A saída abaixo mostra uma execução bem-sucedida do comando Get-Date via o verbo Invoke.

Triggering a command via the Invoke verb

2. Em seguida, crie um arquivo de script do PowerShell (ou seja, InvokeVerbDemo.ps1) com seu editor de código preferido e preencha o seguinte código.

Esse código exibe (Write-Host) uma mensagem de boas-vindas e invoca o cmdlet Get-Service para listar todos os serviços em seu sistema.

# Exibir uma mensagem de boas-vindas calorosa
Write-Host "Welcome to the Invoke Example!"

# Invocar o cmdlet Get-Service
Invoke-Command -ScriptBlock { Get-Service }

3. Agora, execute os seguintes comandos para invocar (Invoke-Expression) seu script do PowerShell (InvokeVerbDemo.ps1). Substitua o valor da variável $scriptPath com o caminho do seu arquivo de script.

$scriptPath = "C:\PowerShellScripts\InvokeVerbDemo.ps1"
Invoke-Expression -Command $scriptPath

A saída abaixo mostra uma mensagem de boas-vindas e uma lista de todos os serviços em seu sistema, o que confirma uma execução bem-sucedida do seu script.

Invoking a script via the Invoke verb

4. Em vez de apenas comandos, escreva uma função reutilizável (ou seja, Invoke-MyTask) que você pode chamar a qualquer momento, conforme mostrado abaixo. Essencialmente, as funções melhoram a manutenibilidade e reutilização de seus scripts do PowerShell.

Neste exemplo, a função Invoke-MyTask encapsula comandos para realizar o seguinte quando invocada:

  • Exibe (Write-Host) a string Executando MyTask... no console.
  • Recupera a lista de todos os processos (Get-Process) e seleciona apenas (Select-Object) as propriedades Name e CPU para cada processo.
# Defina uma função personalizada usando o verbo Invoke
function Invoke-MyTask {
    # Sua tarefa personalizada vai aqui
    Write-Host "Executing MyTask..."
    Get-Process | Select-Object Name, CPU
}
Defining a PowerShell function

5. Por fim, execute o comando abaixo para invocar sua função (Invoke-MyTask).

Invoke-Expression -Command Invoke-MyTask

Você verá uma lista de todos os processos em execução em seu sistema com seus nomes e uso da CPU, conforme mostrado abaixo.

Invoking a function

Validando Recursos via o Verbo Teste

Garantir a precisão dos valores de entrada e das condições é primordial ao elaborar scripts do PowerShell robustos e resistentes a erros. Uma ferramenta poderosa à sua disposição para esse fim é o verbo Teste.

Ao empregar o verbo Teste, você pode verificar rapidamente se uma determinada condição mantém um valor verdadeiro ou falso, permitindo que você execute diferentes ações com base no resultado. Neste exemplo, você validará se um arquivo existe via o verbo Teste.

Execute o código abaixo para testar (Test-Path) se um arquivo existe (C:\MinhaPasta\exemplo.txt) no caminho especificado $caminhoArquivo, e imprima uma mensagem dependendo do resultado.

# Defina um caminho de arquivo.
$filePath = "C:\MyFolder\example.txt"

# Teste se o arquivo existe e imprima uma mensagem dependendo do resultado
if (Test-Path $filePath) {
    Write-Host "The file exists at $filePath."
}
else {
    Write-Host "The file does not exist at $filePath."
}
Validating a resource via the Test verb

Conclusão

Agora você tem um entendimento básico dos verbos aprovados pelo PowerShell e como usá-los efetivamente em seus scripts e comandos. Ao aproveitar esses verbos, você pode criar soluções do PowerShell robustas, eficientes e consistentes para várias tarefas e cenários.

Este tutorial é apenas o início da sua jornada para se tornar um usuário proficiente do PowerShell. Que tal aprender outros verbos aprovados, como verbos de manipulação de dados (ou seja, Export, Import, Sort) e verbos de ciclo de vida (ou seja, Start, Stop)? Eleve suas habilidades no PowerShell para o próximo nível hoje!

Source:
https://adamtheautomator.com/powershell-approved-verbs/