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:

  1. 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)

  1. Salve o arquivo como: Atividade_11_1_SeuNome
  2. 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:

  1. 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)

  1. Salve o arquivo como: Atividade_11_2_SeuNome
  2. 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:

  1. 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)

  1. Salve o arquivo como: Atividade_11_3_SeuNome
  2. 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:

  1. 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)

  1. Salve o arquivo como: Atividade_11_4_SeuNome
  2. 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."