Como monitorar uma pasta em busca de alterações?
Sejam informações confidenciais de clientes ou arquivos de configuração de recursos críticos, o monitoramento de alterações ajuda a manter a integridade desses dados. Muitas ferramentas, incluindo o Windows PowerShell nativo, podem ajudá-lo a monitorar alterações de pastas. No entanto, não é fácil criar scripts e executar essa tarefa sem falhas. Uma maneira fácil de monitorar as alterações em arquivos e pastas é por meio de uma solução de auditoria do AD como o ADAudit Plus.
A seguir está uma comparação entre monitorar uma pasta em busca de alterações de arquivo com o Windows PowerShell e com o ADAudit Plus:
Windows PowerShell
Etapas para monitorar alterações de arquivo em uma pasta usando o PowerShell:
- A classe FileSystemWatcher do .Net pode ser usada para monitorar alterações de arquivos/pastas. As alterações de arquivo podem ser eventos como criação, modificação, movimentação, renomeação e exclusão. O script abaixo está inscrito para três dos eventos (criados, excluídos e alterados)
$folder = 'c:\powershell\test' $filter = '*.*' $fsw = New-Object IO.FileSystemWatcher $folder, $filter -Property @{IncludeSubdirectories = $true;NotifyFilter = [IO.NotifyFilters]'FileName, LastWrite'} - Com a ajuda do script abaixo, podemos registrar qualquer um dos eventos ou todos eles dependendo da sua necessidade.
Clique para copiar o script inteiro
Register-ObjectEvent $fsw Created -SourceIdentifier FileCreated -Action { $name = $Event.SourceEventArgs.Name $changeType = $Event.SourceEventArgs.ChangeType $timeStamp = $Event.TimeGenerated Write-Host "The file '$name' was $changeType at $timeStamp" -fore green Out-File -FilePath c:\scripts\filechange\outlog.txt -Append -InputObject "The file '$name' was $changeType at $timeStamp"} Register-ObjectEvent $fsw Deleted -SourceIdentifier FileDeleted -Action { $name = $Event.SourceEventArgs.Name $changeType = $Event.SourceEventArgs.ChangeType $timeStamp = $Event.TimeGenerated Write-Host "The file '$name' was $changeType at $timeStamp" -fore red Out-File -FilePath c:\scripts\filechange\outlog.txt -Append -InputObject "The file '$name' was $changeType at $timeStamp"} Register-ObjectEvent $fsw Changed -SourceIdentifier FileChanged -Action { $name = $Event.SourceEventArgs.Name $changeType = $Event.SourceEventArgs.ChangeType $timeStamp = $Event.TimeGenerated Write-Host "The file '$name' was $changeType at $timeStamp" -fore white Out-File -FilePath c:\scripts\filechange\outlog.csv -Append -InputObject "The file '$name' was $changeType at $timeStamp"}Copiado - O relatório será gerado no formato (CSV, HTML, XLS, PDF) definido no script. Por exemplo, no script mencionado acima, o relatório será gerado em formato CSV.
ADAudit Plus
Etapas para monitorar uma alteração de arquivo/pasta usando o ADAudit Plus:
- Faça login no ADAudit Plus → Vá para a guia "Auditoria de arquivo" → na seção "Relatórios de auditoria de arquivo" → clique nos relatórios "Todos os arquivos" ou "Alterações de pastas".
-
Os detalhes que você encontrará neste relatório são:
- Nome do arquivo/pasta alterado
- O usuário que fez a alteração
- O usuário que fez a alteração
- Localização do arquivo/pasta
- Selecione Exportar como para exportar o relatório em qualquer um dos formatos preferidos (CSV, PDF, HTML, CSVDE e XLSX).
A seguir estão as limitações do uso do Windows PowerShell para monitorar uma pasta quanto a alterações:-
- Podemos executar este script apenas em computadores que tenham a função de Serviços de Domínio Active Directory.
- O script deve ser modificado se você desejar alterar os formatos de data.
- Partes do script terão que ser alteradas se você desejar exportar o script em um formato diferente.
- Aplicar mais filtros aumentaria a complexidade do script.
O ADAudit Plus, por outro lado, vai gerar relatórios rapidamente verificando todos os DCs e esses relatórios podem ser exportados em vários formatos.
