Este repositório contém um conjunto de scripts e utilitários em PowerShell desenvolvidos para otimizar e facilitar a rotina diária de administradores de sistemas, analistas de suporte e engenheiros de infraestrutura.
Os scripts estão organizados por categorias em diretórios específicos, seguindo boas práticas de modularidade, tratamento de exceções, saída visual clara (com destaque de status por cores) e suporte a execução com parâmetros customizados ou valores padrão.
powershell-tools/
├── active directory/
│ ├── Audit-InactiveAccounts.ps1 # Auditoria de contas de usuários e computadores inativos (>90 dias)
│ ├── Audit-LocalAdministrators.ps1 # Auditoria de membros do grupo local de Administradores
│ └── Audit-LockedAccounts.ps1 # Consulta e desbloqueio de contas de usuário no AD
├── maintenance/
│ ├── Clean-ServerTempFiles.ps1 # Limpeza aprofundada de arquivos temporários e caches
│ ├── Find-LargeFiles.ps1 # Localizador rápido de grandes arquivos em disco
│ └── Sync-FileShareBackup.ps1 # Sincronização resiliente e réplica de compartilhamentos com Robocopy
├── network/
│ ├── Get-NetworkDiagnostics.ps1 # Diagnóstico de interfaces, IP, rotas e testes DNS/Internet
│ └── Test-PortConnectivity.ps1 # Teste de conectividade e portas TCP com latência
├── security/
│ ├── Audit-ServerSecurityBaseline.ps1 # Auditoria de hardening e conformidade (SMBv1, NLA, Firewall, UAC, PPL)
│ ├── Get-RecentEventErrors.ps1 # Varredura e sumarização de erros nos Logs de Eventos
│ └── Test-CertificateExpiration.ps1 # Validação de expiração de certificados SSL/TLS locais, IIS e remotos
├── system/
│ ├── Get-MultiServerDiskReport.ps1 # Monitoramento e consolidação de disco em múltiplos servidores (HTML/CSV)
│ ├── Get-ServerHealthReport.ps1 # Health check do servidor (CPU, RAM, Discos, Top Processos, HTML)
│ └── Manage-CriticalServices.ps1 # Monitoramento e recuperação automática de serviços essenciais
├── virtual machine/
│ ├── Get-HyperVSummary.ps1 # Resumo de VMs Hyper-V (Estado, CPU, RAM, Checkpoints)
│ └── Get-VirtualMachineTemplate.ps1 # Provisionamento de nova VM a partir de template VHDX
├── workstation/
│ ├── Backup-UserProfile.ps1 # Backup e migração de perfil (Desktop, Docs, Favoritos, Assinaturas, Wi-Fi)
│ ├── Get-InstalledSoftware.ps1 # Inventário detalhado de softwares instalados (32/64-bit, AppX, remoto)
│ ├── Get-WorkstationDiagnostics.ps1 # Diagnóstico rápido de hardware, SMART, bateria, BSOD e pendências
│ ├── Install-RemoteSoftware.ps1 # Instalação silenciosa e remota de softwares via Winget ou MSI/EXE
│ ├── Optimize-WorkstationPerformance.ps1 # Otimização de desempenho, limpeza de navegadores, TRIM e inicialização
│ ├── Repair-WindowsUpdate.ps1 # Correção e redefinição de componentes travados do Windows Update
│ └── Reset-NetworkStack.ps1 # Restauração e redefinição de pilha TCP/IP, Winsock, DNS e adaptadores
│
└── README.md
-
- Finalidade: Testa a conectividade TCP para portas essenciais (RDP, SMB, HTTP, HTTPS, SSH, DNS, etc.) ou portas personalizadas em servidores e IPs.
- Destaque: Usa sockets .NET assíncronos de alta performance com medição de latência em milissegundos.
- Exemplo de uso:
.\network\Test-PortConnectivity.ps1 -Destination "192.168.1.50" -Ports 3389, 445, 80 .\network\Test-PortConnectivity.ps1 -Destination "srv-sql-01", "srv-app-01" -Ports 1433, 443
-
- Finalidade: Fornece um panorama imediato da configuração de rede do host.
- Destaque: Lista adaptadores ativos, endereços IPv4, máscaras, gateways, DNS configurados, velocidade de link, testa o ping até o gateway e valida saída para a Internet e resolução externa.
- Exemplo de uso:
.\network\Get-NetworkDiagnostics.ps1
-
- Finalidade: Relatório completo de integridade e capacidade do servidor Windows.
- Destaque: Exibe versão do SO, Uptime (tempo de atividade), uso atual de CPU e contagem de núcleos, consumo detalhado de memória RAM, status de cada volume de disco com alertas visuais (Alerta se < 25% livre, Crítico se < 15% livre) e top 5 processos maiores consumidores.
- Recurso extra: Suporte a geração de relatório HTML profissional (
-ExportHtml). - Exemplo de uso:
.\system\Get-ServerHealthReport.ps1 .\system\Get-ServerHealthReport.ps1 -ExportHtml
-
- Finalidade: Audita o status de serviços fundamentais de infraestrutura (RDP, WinRM, Spooler, W32Time, Windows Update, Firewall, LanmanServer).
- Destaque: Identifica serviços configurados como Inicialização Automática que estão caídos e permite reiniciar com o switch
-AutoRestart. - Exemplo de uso:
.\system\Manage-CriticalServices.ps1 .\system\Manage-CriticalServices.ps1 -AutoRestart
-
- Finalidade: Coleta e consolida a capacidade e o espaço livre em disco de múltiplos servidores simultaneamente.
- Destaque: Suporta lista manual de servidores, arquivo de texto (
-ComputerList) ou descoberta automática via Active Directory (-FromAD). Alerta volumes com espaço crítico (<= 10%) e emite relatórios em CSV e Dashboard HTML responsivo com barras de preenchimento visual. - Exemplo de uso:
.\system\Get-MultiServerDiskReport.ps1 -ComputerName "SRV-DC01", "SRV-FS01", "SRV-SQL01" .\system\Get-MultiServerDiskReport.ps1 -ComputerList "C:\Scripts\servidores.txt" -ExportHtml "C:\Temp\Discos.html" .\system\Get-MultiServerDiskReport.ps1 -FromAD -ExportCsv "C:\Temp\Discos.csv"
-
- Finalidade: Limpeza aprofundada e segura de arquivos temporários em servidores.
- Destaque: Limpa Windows Temp, pastas Temp de todos os perfis de usuários em
C:\Users, cache do Windows Update (SoftwareDistribution\Download), dumps de erro de programas, lixeira e logs antigos do IIS (opcional). Calcula e exibe a quantidade exata de espaço liberado em MB/GB. - Exemplo de uso:
.\maintenance\Clean-ServerTempFiles.ps1 -DaysOld 3 .\maintenance\Clean-ServerTempFiles.ps1 -DaysOld 7 -CleanUpdateCache -CleanIISLogs
-
- Finalidade: Encontra rapidamente arquivos volumosos que estão lotando discos de servidores (arquivos .vmdk/.vhdx esquecidos, dumps de banco de dados .bak, logs gigantescos .log, ISOs).
- Destaque: Permite definir tamanho mínimo em MB, ordenar pelos maiores e exportar os resultados para CSV.
- Exemplo de uso:
.\maintenance\Find-LargeFiles.ps1 -Path "C:\" -MinSizeMB 500 -Top 20 .\maintenance\Find-LargeFiles.ps1 -Path "D:\Backups" -MinSizeMB 1024 -ExportCsv "C:\Temp\relatorio_arquivos.csv"
-
- Finalidade: Sincronização e réplica de alta velocidade entre diretórios e compartilhamentos de rede com motor Robocopy.
- Destaque: Cópia paralela multi-thread (
-Threads), preservação de permissões NTFS / ACLs (-CopyAcl), modo espelhamento (-Mirror), exclusão inteligente de arquivos temporários/lixeiras e geração de sumário analítico com tempo e arquivos transferidos. - Exemplo de uso:
.\maintenance\Sync-FileShareBackup.ps1 -SourcePath "D:\Dados" -DestinationPath "\\SRV-BACKUP\Replica_Dados" .\maintenance\Sync-FileShareBackup.ps1 -SourcePath "D:\Departamentos" -DestinationPath "E:\Backup" -Mirror -CopyAcl
-
[
Audit-LockedAccounts.ps1](./active directory/Audit-LockedAccounts.ps1)- Finalidade: Identifica contas de usuários bloqueadas no Active Directory.
- Destaque: Mostra quantidade de tentativas de senha incorreta, data/hora da última falha e possibilita o desbloqueio em massa ou individual com
-UnlockAll. - Exemplo de uso:
.\active directory\Audit-LockedAccounts.ps1 .\active directory\Audit-LockedAccounts.ps1 -UnlockAll .\active directory\Audit-LockedAccounts.ps1 -SpecificUser "usuario.teste"
-
[
Audit-LocalAdministrators.ps1](./active directory/Audit-LocalAdministrators.ps1)- Finalidade: Audita membros do grupo local
Administratorsda máquina/servidor. - Destaque: Classifica se o membro é Conta Local, Conta de Domínio ou Grupo, e identifica SIDs órfãos (contas deletadas do domínio que ainda constam no grupo local).
- Exemplo de uso:
.\active directory\Audit-LocalAdministrators.ps1 .\active directory\Audit-LocalAdministrators.ps1 -ComputerName "SRV-APP-02"
- Finalidade: Audita membros do grupo local
-
[
Audit-InactiveAccounts.ps1](./active directory/Audit-InactiveAccounts.ps1)- Finalidade: Localiza e audita contas de usuários e computadores inativos no Active Directory há mais de X dias (Padrão: 90 dias).
- Destaque: Suporta filtragem por tipo (
User,ComputerouAll), escopo por Unidade Organizacional (-SearchBase), cálculo exato de dias de inatividade, exportação para CSV e desativação segura (-DisableInactivecom suporte a-WhatIf). - Exemplo de uso:
.\active directory\Audit-InactiveAccounts.ps1 .\active directory\Audit-InactiveAccounts.ps1 -DaysInactive 120 -AccountType User .\active directory\Audit-InactiveAccounts.ps1 -AccountType Computer -ExportCsv "C:\Temp\Computadores_Inativos.csv"
-
- Finalidade: Coleta e resume erros críticos e falhas nos canais
SystemeApplicationdo Visualizador de Eventos (Event Viewer). - Destaque: Agrupa erros por frequência de origem e Event ID nas últimas X horas, permitindo diagnóstico imediato sem necessidade de navegar manualmente pela interface gráfica pesada do Event Viewer.
- Exemplo de uso:
.\security\Get-RecentEventErrors.ps1 .\security\Get-RecentEventErrors.ps1 -Hours 48 -MaxEvents 50
- Finalidade: Coleta e resume erros críticos e falhas nos canais
-
Audit-ServerSecurityBaseline.ps1- Finalidade: Audita a conformidade de segurança e hardening do sistema operacional (Servidores e Workstations).
- Destaque: Valida itens críticos como desativação do SMBv1, ativação de RDP NLA, status de todos os perfis do Firewall, mitigação de Responder via desativação de LLMNR, status da conta Guest, UAC, proteção RunAsPPL no LSASS, Defender/Antivírus e reinicialização pendente. Possui opção de autocorreção (
-Remediate) e geração de painel HTML/CSV. - Exemplo de uso:
.\security\Audit-ServerSecurityBaseline.ps1 .\security\Audit-ServerSecurityBaseline.ps1 -ExportHtml "C:\Temp\Baseline_Seguranca.html" .\security\Audit-ServerSecurityBaseline.ps1 -Remediate
-
Test-CertificateExpiration.ps1- Finalidade: Valida prazos de validade e expiração de certificados digitais SSL/TLS para evitar paradas inesperadas de serviços.
- Destaque: Inspeciona repositórios locais do Windows (
MyeWebHosting), certificados vinculados a sites HTTPS no IIS e testa endpoints remotos (Websites, LDAPS, APIs) via socket e handshake TLS com suporte a limites customizáveis (-WarningDays,-CriticalDays), CSV e painel HTML com badges coloridas. - Exemplo de uso:
.\security\Test-CertificateExpiration.ps1 .\security\Test-CertificateExpiration.ps1 -Endpoints "https://sistemas.empresa.local", "mail.empresa.local:443" .\security\Test-CertificateExpiration.ps1 -WarningDays 45 -ExportHtml "C:\Temp\Certificados.html"
-
[
Get-HyperVSummary.ps1](./virtual machine/Get-HyperVSummary.ps1)- Finalidade: Resumo de saúde e inventário das máquinas virtuais no Hyper-V.
- Destaque: Mostra estado (Running/Off), consumo de CPU, alocação de memória RAM e alerta para máquinas com checkpoints/snapshots ativos (que degradam performance e consomem disco físico).
- Exemplo de uso:
.\virtual machine\Get-HyperVSummary.ps1 .\virtual machine\Get-HyperVSummary.ps1 -VMName "SRV-WEB*"
-
[
VirtualMachineTemplate.ps1](./virtual machine/VirtualMachineTemplate.ps1)- Finalidade: Provisionamento automatizado de nova máquina virtual a partir de um disco template base (.vhdx).
-
Get-WorkstationDiagnostics.ps1- Finalidade: Diagnóstico rápido de ponta a ponta em computadores de usuários (Help Desk N1/N2).
- Destaque: Coleta Fabricante, Modelo, Service Tag/Número de Série, usuário logado, Uptime, alerta de reinicialização pendente, tipo de mídia (SSD/NVMe/HDD) e integridade SMART, saúde da bateria (desgaste em % se notebook), status de antivírus Defender, BitLocker, histórico de Telas Azuis (BSOD/minidumps) e rede ativa com sinal Wi-Fi.
- Exemplo de uso:
.\workstation\Get-WorkstationDiagnostics.ps1 .\workstation\Get-WorkstationDiagnostics.ps1 -ExportHtml
-
Optimize-WorkstationPerformance.ps1- Finalidade: Melhora a performance de computadores lentos de usuários finais.
- Destaque: Limpa caches de navegadores (Edge e Chrome) sem apagar senhas ou histórico, esvazia caches de miniaturas e de Otimização de Entrega do Windows, executa o comando TRIM para restaurar a velocidade de escrita de SSDs, limpa cache DNS e audita programas que atrasam a inicialização do Windows (Startup).
- Exemplo de uso:
.\workstation\Optimize-WorkstationPerformance.ps1 .\workstation\Optimize-WorkstationPerformance.ps1 -SetHighPerformance
-
- Finalidade: Instala softwares silenciosamente em segundo plano, de forma local ou remota (via WinRM/PowerShell Remoting).
- Destaque: Suporta instalação automática pelo catálogo do Winget (ex: Chrome, Firefox, 7-Zip, AnyDesk, Adobe Reader) ou por pacotes customizados MSI / EXE em compartilhamento de rede com parâmetros silenciosos.
- Exemplo de uso:
# Instalar localmente ou remotamente via Winget .\workstation\Install-RemoteSoftware.ps1 -PackageId "Google.Chrome" .\workstation\Install-RemoteSoftware.ps1 -ComputerName "PC-USER-01", "PC-USER-02" -PackageId "7zip.7zip" # Instalar remotamente pacote MSI da rede .\workstation\Install-RemoteSoftware.ps1 -ComputerName "PC-USER-05" -InstallerPath "\\servidor\softwares\agente.msi"
-
- Finalidade: Solução definitiva para travamentos, alto uso de CPU e falhas de instalação no Windows Update, com correção estrutural para o erro
0x80004002(E_NOINTERFACE). - Destaque:
- Correção do DoSvc no Registro: Reabilita o serviço de Otimização de Entrega (
Start = 2) no registro (causa #1 do 0x80004002 em estações com scripts de debloat). - Re-registro COM em 64-bit e 32-bit (SysWOW64): Registra
wups2.dll,wups.dll,wuaueng.dll,wuapi.dll,actxprxy.dlle componentes OLE em ambas as arquiteturas. - Desbloqueio e Purga do DataStore.edb: Finaliza processos bloqueadores (
TiWorker,TrustedInstaller) e recria o banco de dados ecatroot2. - Consistência de WMI e DCOM: Executa validação
winmgmt /salvagerepositorye asseguraEnableDCOM = 'Y'. - Motor de Diagnóstico Oficial: Aciona o solucionador autônomo nativo da Microsoft (
WindowsUpdateDiagnostic). - Reparo Automático da Imagem (DISM & SFC): Executa
DISM /RestoreHealth,DISM /StartComponentCleanupeSFC /scannowpor padrão (com opção-SkipDismpara pular se desejado).
- Correção do DoSvc no Registro: Reabilita o serviço de Otimização de Entrega (
- Exemplo de uso:
# Reparo completo e definitivo (inclui DoSvc, DLLs 32/64, WMI, DISM e SFC) .\workstation\Repair-WindowsUpdate.ps1 # Reparo rápido sem executar DISM/SFC .\workstation\Repair-WindowsUpdate.ps1 -SkipDism # Reparo completo com limpeza de WSUS órfão e reinicialização automática .\workstation\Repair-WindowsUpdate.ps1 -ResetWsusPolicy -RestartComputer
- Finalidade: Solução definitiva para travamentos, alto uso de CPU e falhas de instalação no Windows Update, com correção estrutural para o erro
-
- Finalidade: Restauração e reparo completo da conectividade de rede, DNS, Winsock e adaptadores em estações e servidores.
- Destaque: Libera e renova DHCP, limpa e registra o DNS (
/flushdns,/registerdns), purga tabelas NetBIOS e ARP, redefine o catálogo Winsock, restaura as pilhas TCP/IP IPv4/IPv6, zera proxies WinHTTP presos e executa testes finais de conectividade ao Gateway e Internet com opção de reinicialização de adaptadores (-RestartAdapters). - Exemplo de uso:
.\workstation\Reset-NetworkStack.ps1 .\workstation\Reset-NetworkStack.ps1 -RestartAdapters .\workstation\Reset-NetworkStack.ps1 -RestartAdapters -RestartComputer
-
- Finalidade: Backup estruturado e acelerado de perfis de usuário para substituição de computadores, migrações e formatações.
- Destaque: Salva Área de Trabalho, Documentos, Favoritos, Downloads (
-IncludeDownloads), Mídias (-IncludeMedia), Assinaturas do Microsoft Outlook, favoritos do Chrome/Edge, banco de notas do Sticky Notes e exporta perfis de redes Wi-Fi conhecidas. Utiliza Robocopy multi-thread/MT:8e gera log completo no destino. - Exemplo de uso:
.\workstation\Backup-UserProfile.ps1 -DestinationPath "D:\Backups" .\workstation\Backup-UserProfile.ps1 -DestinationPath "\\SRV-FS01\Migracao" -IncludeDownloads -IncludeMedia .\workstation\Backup-UserProfile.ps1 -UserName "joao.silva" -DestinationPath "E:\Backup_Joao"
-
- Finalidade: Inventário abrangente de softwares instalados localmente ou em estações/servidores remotos.
- Destaque: Inspeciona registros de 64-bit, 32-bit (Wow6432Node), instalações por usuário e pacotes UWP/AppX (
-IncludeAppx). Suporta filtragem por nome com curingas (-Name "*Office*"), consulta remota via WinRM (-ComputerName) e exportação para CSV ou Dashboard HTML formatado. - Exemplo de uso:
.\workstation\Get-InstalledSoftware.ps1 .\workstation\Get-InstalledSoftware.ps1 -Name "*Adobe*" .\workstation\Get-InstalledSoftware.ps1 -ComputerName "SRV-APP-01", "PC-FIN-02" -ExportHtml "C:\Temp\Softwares.html"
- Permissões: Execute o console do PowerShell como Administrador (
Run as Administrator) para obter acesso completo a métricas de sistema, serviços, eventos e gerenciamento de arquivos. - Política de Execução: Caso receba aviso sobre execução de scripts bloqueada, ajuste a política na sessão:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
- Módulos Opcionais:
- ActiveDirectory: Necessário para o script
Audit-LockedAccounts.ps1(disponível via RSAT). - Hyper-V: Necessário para os scripts de gerenciamento do Hyper-V.
- ActiveDirectory: Necessário para o script