Мониторинг изменений в файловой системе и реестре - важная часть безопасности и диагностики в Windows. PowerShell позволяет отслеживать эти изменения в реальном времени без установки стороннего ПО.
▪️ Мониторинг изменений в файлах. Чтобы следить за изменениями в каталоге, можно использовать System.IO.FileSystemWatcher:
$watcher = New-Object System.IO.FileSystemWatcher
$watcher.Path = "C:\Users\Public\Documents" # Указываем каталог для мониторинга
$watcher.IncludeSubdirectories = $true # Следить за подпапками
$watcher.EnableRaisingEvents = $true
$action = {
$event = $Event.SourceEventArgs
Write-Host "$(Get-Date) | Файл: $($event.FullPath) | Действие: $($event.ChangeType)"
}
Register-ObjectEvent $watcher "Changed" -Action $action
Register-ObjectEvent $watcher "Created" -Action $action
Register-ObjectEvent $watcher "Deleted" -Action $action
Register-ObjectEvent $watcher "Renamed" -Action $action
Write-Host "Мониторинг запущен. Для остановки нажмите Ctrl+C"
Этот скрипт отслеживает изменения, создание, удаление и переименование файлов в указанной папке.
▪️ Мониторинг изменений в реестре. Для мониторинга реестра используется Register-WMIEvent:
Register-WMIEvent -Query "SELECT * FROM __InstanceModificationEvent WITHIN 1 WHERE TargetInstance ISA 'Win32_RegistryKey' AND TargetInstance.Name LIKE 'HKEY_LOCAL_MACHINE\\SOFTWARE\\MyApp%'" -Action {
Write-Host "$(Get-Date) | Изменение в реестре: $($Event.SourceEventArgs.NewEvent.TargetInstance.Name)"
}
Этот скрипт проверяет изменения в разделе HKEY_LOCAL_MACHINE\SOFTWARE\MyApp каждую секунду.
⚙️ Готовые инструменты на базе PowerShell. Если нужен постоянный мониторинг, можно использовать:
🔹 Sysmon + PowerShell - логирование через Windows Event Log
🔹 PowerShell DSC (Desired State Configuration) - для отслеживания изменений в конфигурации
#windows #security
🧑💻 NetworkAdmin