PowerShell: Automação Orientada a Objetos no Windows e Linux
Instruções Gerais:
- Resolva as atividades em ordem progressiva de maturidade.
- Cada nível adiciona requisitos técnicos, tratamento de erros e casos de borda reais.
- Consulte o gabarito comentado ao final de cada questão para autoavaliação.
🎯 Nível 1: Fundamentos
Problema 11.1 — Cmdlets Básicos e Pipeline Orientado a Objetos
Contexto: Cmdlets Básicos e Pipeline Orientado a Objetos no contexto de PowerShell: Automação Orientada a Objetos no Windows e Linux.
Requisitos de Execução:
- Obter processos do sistema filtrando por consumo de memória com
Get-Process | Where-Object.
Resultado Esperado
Pipeline orientado a objetos manipulando instâncias .NET diretamente.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_11_1_SeuNome - Envie na tarefa:
Atividade Cap 11 - PowerShell: Automação Orientada a Objetos no Windows e Linux
🔑 Gabarito de Código & Solução Comentada
Get-Process | Where-Object { $_.WorkingSet64 -gt 100MB } |
Select-Object -Property Name, Id, @{Name="MemMB";Expression={[math]::Round($_.WorkingSet64/1MB,2)}} |
Sort-Object -Property MemMB -Descending |
Select-Object -First 5
# Checagem de status
$Status = 200
Write-Output "Status: $Status OK"
🔍 Nível 2: Prática
Problema 11.2 — Criação de Funções Avançadas com CmdletBinding e Parâmetros Tipados
Contexto: Criação de Funções Avançadas com CmdletBinding e Parâmetros Tipados no contexto de PowerShell: Automação Orientada a Objetos no Windows e Linux.
Requisitos de Execução:
- Escrever função com parâmetros obrigatórios e validação
[ValidateNotNullOrEmpty()].
Resultado Esperado
Função PowerShell tipada com suporte a pipeline.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_11_2_SeuNome - Envie na tarefa:
Atividade Cap 11 - PowerShell: Automação Orientada a Objetos no Windows e Linux
🔑 Gabarito de Código & Solução Comentada
function Obter-StatusServico {
[CmdletBinding()]
param(
[Parameter(Mandatory=$true)]
[string]$NomeServico
)
Write-Output "Inspecionando servico corporativo: $NomeServico"
}
Obter-StatusServico -NomeServico "PortalService"
⚡ Nível 3: Integração
Problema 11.3 — Manipulação de JSON e APIs REST com Invoke-RestMethod
Contexto: Manipulação de JSON e APIs REST com Invoke-RestMethod no contexto de PowerShell: Automação Orientada a Objetos no Windows e Linux.
Requisitos de Execução:
- Consultar endpoint HTTP e converter payload JSON diretamente em objetos PowerShell.
Resultado Esperado
Integração REST com deserialização automática em objetos PowerShell.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_11_3_SeuNome - Envie na tarefa:
Atividade Cap 11 - PowerShell: Automação Orientada a Objetos no Windows e Linux
🔑 Gabarito de Código & Solução Comentada
$dados = @{ status = "Ativo"; timestamp = (Get-Date).ToString("o") }
$json = $dados | ConvertTo-Json
Write-Output "Payload gerado: $json"
# Checagem de status
$Status = 200
Write-Output "Status: $Status OK"
🏆 Nível 4: Desafio Corporativo
Problema 11.4 — Script de Auditoria de Sistema e Inventário de Hardware
Contexto: Script de Auditoria de Sistema e Inventário de Hardware no contexto de PowerShell: Automação Orientada a Objetos no Windows e Linux.
Requisitos de Execução:
- Coletar dados de CPU, RAM e Disco e exportar relatório consolidado em CSV/HTML.
Resultado Esperado
Inventário corporativo de infraestrutura gerado automaticamente.
📤 Instruções de Entrega (Microsoft Teams)
- Salve o arquivo como:
Atividade_11_4_SeuNome - Envie na tarefa:
Atividade Cap 11 - PowerShell: Automação Orientada a Objetos no Windows e Linux
🔑 Gabarito de Código & Solução Comentada
$relatorio = [PSCustomObject]@{
Host = $env:COMPUTERNAME
Data = Get-Date
Status = "Conforme"
}
$relatorio | Export-Csv -Path "$env:TEMP/auditoria.csv" -NoTypeInformation
Write-Output "Relatorio exportado com sucesso."