O que é ScriptBlock Logging?
- ScriptBlock Logging faz o Windows registrar tudo que é executado no PowerShell, incluindo scripts ofuscados ou codificados (
EncodedCommand). - Ele grava no log o comando decodificado, antes de ser executado.
- Sem ele, o PowerShell passa comandos silenciosamente, sem deixar rastros detalhados.
Como habilitar ScriptBlock Logging
1. Diretamente via PowerShell (modo fácil)
Execute como administrador:
New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell -Name ScriptBlockLogging -Force<br>Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLogging -Name EnableScriptBlockLogging -Value 1Depois de habilitar
- Reinicie o PowerShell (ou o sistema inteiro para garantir).
- Teste rodando um comando (
Get-Process,Get-Service, etc). - Verifique se surgem eventos
EventCode=4104no log:
Agora qualquer execução de script será gravada no canal:
Microsoft-Windows-PowerShell/Operational
Ative também o “Module Logging” se quiser ser ainda mais completo
New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell -Name ModuleLogging -Force<br>Set-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ModuleLogging -Name EnableModuleLogging -Value 1Saber se está ativo:
Get-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ScriptBlockLoggingConclusão
Habilitar o ScriptBlock Logging é uma das medidas mais importantes para aumentar a visibilidade e a segurança do seu ambiente contra ameaças que abusam do PowerShell. Com isso ativo, você passa a ter rastreabilidade completa dos scripts e comandos executados.

Seja o primeiro a comentar