Windows Server 2025 / Noções básicas de PowerShell: objetos, pipelines e consultas

O PowerShell trabalha com objetos que contêm propriedades, em vez de apenas texto na tela. Combine comandos de consulta com Where-Object, Select-Object e Sort-Object para inspecionar informações do servidor usando condições explícitas.

Identifique a versão do PowerShell e consulte a ajuda

Estes exemplos somente leitura têm como alvo o Windows PowerShell 5.1 no Windows Server 2025. Uma sessão do PowerShell 7 instalada separadamente pode ter compatibilidade de módulo diferente. Contas restritas podem ver menos informações, mesmo quando uma consulta normalmente não requer elevação.

$PSVersionTable
Get-Command Get-Service
Get-Help Get-Service -Examples

Get-Command verifica disponibilidade; Get-Help explica o uso e os parâmetros. Se a ajuda local estiver incompleta, consulte a referência oficial de Get-Service para a mesma versão em vez de executar um script auxiliar baixado. Nomes verbo-substantivo também indicam a intenção: Get e Set realizam tipos diferentes de trabalho.

Inspecione propriedades antes de processar a saída

Um objeto de serviço tem um nome, nome de exibição, status e outras propriedades. Trabalhe com esses campos em vez de cortar texto de acordo com as posições das colunas exibidas. Veja Objetos do PowerShell e suas propriedades.

Get-Service | Select-Object -First 5
Get-Service | Get-Member
Get-Service -Name WinRM | Select-Object Name,DisplayName,Status

Get-Member distingue propriedades de métodos. Métodos podem executar ações, então não invoque um apenas porque seu nome parece útil. Esta lição consulta e filtra; não inicia nem interrompe serviços.

Conecte condições com um pipeline

A barra vertical passa objetos de um comando para o próximo. Este pipeline seleciona serviços em execução, ordena por nome e retorna colunas escolhidas. $_ denota o objeto atual:

Get-Service |
    Where-Object { $_.Status -eq 'Running' } |
    Sort-Object Name |
    Select-Object Name,DisplayName,Status

Para comparação, mude apenas Running para Stopped, observe o conjunto de resultados diferente, e depois restaure Running. O filtro muda; os serviços reais não. -eq compara igualdade, -ne desigualdade, -gt verifica se um valor é maior que outro e -like compara com um padrão. Verifique os tipos de dados ao comparar valores numéricos em vez de assumir que o texto exibido se comporta como números.

Use variáveis e unidades explícitas

Esta consulta armazena objetos de disco fixo e calcula a capacidade e o espaço livre em gibibytes (GiB). A constante 1GB do PowerShell é 1.073.741.824 bytes; os nomes das colunas mostram essa unidade binária.

$labDisks = Get-CimInstance Win32_LogicalDisk -Filter 'DriveType=3'
$labDisks | Select-Object DeviceID,
    @{Name='SizeGiB';Expression={[math]::Round($_.Size / 1GB,1)}},
    @{Name='FreeGiB';Expression={[math]::Round($_.FreeSpace / 1GB,1)}}

A variável contém objetos de disco, não uma tabela formatada, e pode ser filtrada novamente. Reserve Format-Table para a exibição final destinada ao leitor. Usar esse cmdlet antes da exportação para CSV transforma os objetos em dados de formatação e perde a estrutura de coluna pretendida. Valores e contagem de linhas dependem dos discos reais.

Mantenha consultas e alterações distintas

  1. Use Get-Command e Get-Help para identificar o comando e os parâmetros.
  2. Registre os valores atuais com comandos de consulta.
  3. Para um comando de alteração que suporta -WhatIf, examine a ação proposta.
  4. Avalie os efeitos operacionais e a recuperação separadamente da visualização.
  5. Mantenha um arquivo .ps1 legível e registre onde ele deve ser executado.

Um comando ausente pode significar um erro de digitação, módulo ausente ou versão diferente do PowerShell; não é o mesmo que acesso negado. Não desative a política de execução e os recursos de segurança juntos para fazer um script rodar. Siga os requisitos de scripts e assinatura aprovados pela organização.