🤖 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:
- Abra o Agendador de Tarefas (Task Scheduler).
- Clique em Criar Tarefa.
- Na aba Gatilho, defina o horário (ex: diariamente às 2h).
- Na aba Ações, use:
Program/script: powershell.exe
Add arguments: -ExecutionPolicy Bypass -File "C:\Scripts\ReiniciaServicos.ps1"
- 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