Automatizando tarefas no Windows com scripts em PowerShell

A automação de tarefas no Windows é uma poderosa ferramenta de automação que permite executar scripts para gerenciar arquivos, processos, redes e muito mais. Neste artigo, deixe o Windows mais esperto automatizando tarefas no Windows com scripts em PowerShell.

O que é o PowerShell?

powershell windows

O PowerShell é uma linguagem de script e uma linha de comando desenvolvida pela Microsoft, projetada para administração do sistema. Diferente do Prompt de Comando, o PowerShell permite interagir com o Windows de maneira programática, utilizando comandos chamados cmdlets.

Como criar um script em PowerShell

Para criar um script em PowerShell, siga os seguintes passos:

  1. Abra o Bloco de Notas ou um editor como o Visual Studio Code.
  2. Escreva os comandos do PowerShell no arquivo.
  3. Salve o arquivo com a extensão .ps1 (exemplo: meuscript.ps1).
  4. Execute o script no PowerShell.

Executando scripts no PowerShell

Por padrão, o Windows pode bloquear a execução de scripts. Para permitir, abra o PowerShell como administrador e digite:

Set-ExecutionPolicy RemoteSigned

Agora, você pode executar seu script usando o seguinte comando:

.\meuscript.ps1

Exemplos de scripts de automação

1. Criando um backup de arquivos

Este script copia arquivos de uma pasta para outra:

$origem = "C:\Usuarios\SeuNome\Documentos"
$destino = "D:\Backup"
Copy-Item -Path $origem -Destination $destino -Recurse

2. Encerrando processos em execução

Se você quer automatizar o encerramento de um programa específico:

Stop-Process -Name "notepad" -Force

3. Renomeando múltiplos arquivos

Renomeia todos os arquivos .txt de uma pasta adicionando a data atual ao nome:

Get-ChildItem "C:\Relatorios" -Filter "*.txt" | ForEach-Object {
    Rename-Item $_.FullName -NewName ("$($_.BaseName)_$(Get-Date -Format yyyyMMdd).txt")
}

4. Monitorando uso de memória

Exibe os processos que estão consumindo mais memória RAM:

Get-Process | Sort-Object -Property WS -Descending | Select-Object -First 10

5. Excluindo arquivos antigos

Este script remove arquivos com mais de 30 dias de uma pasta específica:

Get-ChildItem "C:\Logs" -Recurse | Where-Object {$_.LastWriteTime -lt (Get-Date).AddDays(-30)} | Remove-Item -Force

Veja também: Domine o Windows com os principais comandos

6. Enviando um email automático

Para enviar um e-mail automaticamente usando SMTP:

$SmtpServer = "smtp.seuprovedor.com"
$SmtpFrom = "seuemail@dominio.com"
$SmtpTo = "destinatario@dominio.com"
$Subject = "Teste de Email"
$Body = "Este é um email enviado via PowerShell"
$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)
$SMTPClient.EnableSsl = $true
$SMTPClient.Credentials = New-Object System.Net.NetworkCredential("seuemail@dominio.com", "suasenha")
$SMTPClient.Send($SmtpFrom, $SmtpTo, $Subject, $Body)

7. Criando um relatório de espaço em disco

Gera um relatório do espaço livre em disco e salva em um arquivo:

Get-PSDrive -PSProvider FileSystem | Select-Object Name, @{Name='EspacoLivreGB';Expression={[math]::round($_.Free/1GB,2)}} | Export-Csv -Path "C:\RelatorioDisco.csv" -NoTypeInformation

8. Listando usuários do sistema

Este script exibe todos os usuários locais do computador:

Get-WmiObject -Class Win32_UserAccount | Select-Object Name, FullName, Status

9. Alterando senha de usuário

Altera a senha de um usuário específico:

$Username = "SeuUsuario"
$Password = ConvertTo-SecureString "NovaSenha" -AsPlainText -Force
Set-LocalUser -Name $Username -Password $Password

10. Limpando arquivos temporários

Remove arquivos temporários do sistema automaticamente:

Remove-Item -Path "C:\Windows\Temp\*" -Recurse -Force
Remove-Item -Path "$env:TEMP\*" -Recurse -Force

11. Verificando conectividade com a Internet

Este script testa a conexão com a internet enviando pacotes para o Google:

Test-Connection -ComputerName google.com -Count 4

12. Desligando o computador automaticamente

Este script desliga o computador após um determinado tempo (exemplo: 60 segundos):

Start-Sleep -Seconds 60
Stop-Computer -Force

Agendando scripts para execução automática

Para executar scripts automaticamente, você pode usar o Agendador de Tarefas do Windows:

  1. Abra o Agendador de Tarefas e clique em Criar Tarefa.
  2. Dê um nome à tarefa e selecione Executar com privilégios mais altos.
  3. Na aba Disparadores, escolha quando o script deve rodar.
  4. Na aba Ações, selecione Iniciar um programa e digite: powershell.exe -File "C:\caminho\para\meuscript.ps1"
  5. Salve e teste a tarefa.

Conclusão

Os scripts em PowerShell são uma ferramenta poderosa para automatizar tarefas no Windows. Com um pouco de prática, você pode criar soluções personalizadas para otimizar seu fluxo de trabalho e aumentar sua produtividade.

Experimente os exemplos acima e explore mais comandos para tornar sua rotina no Windows ainda mais eficiente!

Gostou das nossas dicas sobre automatizando tarefas no Windows com scripts em PowerShell? Deixem nos comentários! Para mais dicas, acesse o nosso canal no YouTube:
 https://youtube.com/criandobits

Tags: |

Sobre o Autor

Benedito Silva Júnior
Benedito Silva Júnior

Bacharel em Sistemas de Informação pelo Instituto Paulista de Pesquisa e Ensino IPEP. Apaixonado por tecnologias e games do tempo da vovó!

0 Comentários

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *