Scripts Avançados com PowerShell Automatizando o Gerenciamento de Serviços no Windows

🤖 Scripts Avançados com PowerShell: Automatizando o Gerenciamento de Serviços no Windows


Para quem gerencia múltiplos computadores ou precisa manter serviços essenciais do Windows funcionando corretamente, automatizar tarefas com PowerShell é uma solução poderosa e eficiente.

Neste artigo, você vai encontrar exemplos práticos de scripts automatizados para parar, iniciar, reiniciar e monitorar serviços, além de dicas para agendar execuções periódicas.


📁 Estrutura Básica de um Script PowerShell

Um script PowerShell é salvo com a extensão .ps1. Você pode criar e editar usando o Bloco de Notas, VS Code, ou diretamente no PowerShell ISE.

Exemplo básico:

# Exemplo.ps1
Stop-Service -Name spooler
Start-Sleep -Seconds 10
Start-Service -Name spooler

🧠 Script Avançado: Reiniciar Serviços com Log

# ReiniciaServicos.ps1
$servicos = @("spooler", "wuauserv", "bits")
$logPath = "C:\Logs\log_servicos.txt"
$data = Get-Date -Format "dd/MM/yyyy HH:mm:ss"

foreach ($s in $servicos) {
    try {
        Stop-Service -Name $s -Force -ErrorAction Stop
        Start-Sleep -Seconds 3
        Start-Service -Name $s -ErrorAction Stop
        "$data - Serviço '$s' reiniciado com sucesso." | Out-File -Append $logPath
    } catch {
        "$data - Erro ao reiniciar '$s': $_" | Out-File -Append $logPath
    }
}

Esse script:

  • Reinicia os serviços listados
  • Cria um log com data e horário de cada operação
  • Trata erros com try/catch

⏰ Automação com Agendador de Tarefas (Task Scheduler)

Para executar o script automaticamente, siga este passo a passo:

  1. Abra o Agendador de Tarefas (Task Scheduler).
  2. Clique em Criar Tarefa.
  3. Na aba Gatilho, defina o horário (ex: diariamente às 2h).
  4. Na aba Ações, use:
Program/script: powershell.exe  
Add arguments: -ExecutionPolicy Bypass -File "C:\Scripts\ReiniciaServicos.ps1"
  1. Salve e pronto!

🛡 Dica de segurança

Evite permitir scripts desconhecidos. Para executar seus próprios scripts:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

📊 Script com Interface Gráfica Básica

Quer algo mais interativo? Você pode usar o módulo Windows Forms para criar janelas simples:

Add-Type -AssemblyName System.Windows.Forms
$form = New-Object Windows.Forms.Form
$form.Text = "Gerenciar Serviços"
$form.Size = New-Object Drawing.Size(300,150)

$button = New-Object Windows.Forms.Button
$button.Text = "Reiniciar Spooler"
$button.Dock = "Fill"
$button.Add_Click({
    Stop-Service spooler -Force
    Start-Service spooler
    [System.Windows.Forms.MessageBox]::Show("Serviço reiniciado com sucesso.")
})
$form.Controls.Add($button)
$form.ShowDialog()

🧰 Outros exemplos úteis

Desativar temporariamente atualizações automáticas:

Stop-Service wuauserv -Force
Set-Service wuauserv -StartupType Disabled

Habilitar novamente:

Set-Service wuauserv -StartupType Manual
Start-Service wuauserv

✅ Conclusão

A automação com PowerShell permite que você controle totalmente os serviços do Windows, ganhando tempo e evitando erros operacionais. Seja em servidores, computadores de uma rede ou até mesmo em sua máquina pessoal, esses scripts facilitam o gerenciamento e aumentam a produtividade.


Gostou do conteúdo?
Deixe nos comentários qual script você gostaria de ver por aqui!

Publicar comentário