Генерация файлов изменений Windows Server 2012
Мне интересно, если кто-нибудь может знать, как я мог бы настроить автоматическое создание журнала изменений файлов в каталоге в Windows Server 2012. У нас есть коллекция файлов Word, Excell и PDF, которые мне в настоящее время приходится создавать журнал изменений вручную на еженедельной основе. Интересно, возможно ли, чтобы окна обрабатывали этот процесс. Любая помощь или руководство будет принята с благодарностью.
2 ответа
Используйте WMI. Вот версия vbscript, объясняющая, как использовать __InstanceOperationEvent из CIM_DirectoryContainsFile
http://www.codeproject.com/Articles/42212/WMI-and-File-System-Monitoring
Это может быть медленно в 2008 году, но, похоже, запустить файл в 2012 году
Другой вариант - использовать FileWatcher:
Write-Verbose ("Initializing FileSystemWatcher") -Verbose
$fileWatcher = New-Object System.IO.FileSystemWatcher
$fileWatcher.Path = "C:\folder"
Register-ObjectEvent -InputObject $fileWatcher -EventName Created -SourceIdentifier File.Created -Action {
$Global:t = $event
Write-Host ("File/Folder Created: {0} on {1}" -f `
$event.SourceEventArgs.Name,
(Split-Path $event.SourceEventArgs.FullPath)) -BackgroundColor Black -ForegroundColor Red
} | Out-Null
Register-ObjectEvent -InputObject $fileWatcher -EventName Deleted -SourceIdentifier File.Deleted -Action {
$Global:t = $event
Write-Host ("File/Folder Deleted: {0} on {1}" -f `
$event.SourceEventArgs.Name,
(Split-Path $event.SourceEventArgs.FullPath)) -BackgroundColor Black -ForegroundColor Red
} | Out-Null
Register-ObjectEvent -InputObject $fileWatcher -EventName Changed -SourceIdentifier File.Changed -Action {
$Global:t = $event
Write-Host ("File/Folder Changed: {0} on {1}" -f `
$event.SourceEventArgs.Name,
(Split-Path $event.SourceEventArgs.FullPath)) -BackgroundColor Black -ForegroundColor Red
} | Out-Null
Я рекомендую решение Джима Б. с WMI, но если вы хотите что-то более простое с powershell:
Dir C:\folder -r | ? {! $_.PSIsContainer -AND $_.lastwritetime -ge '04/18/14'} > changed.txt
Это создает файл с именем changed.txt
с каждым файлом, измененным в c:\folder
(и это подкаталоги), так как 04/18/14
,
(кредиты: я получил это от пользователя nixda здесь)
Вы можете добавить этот скрипт в свой планировщик задач, чтобы запускать его каждый день.
Я не знаю, как получить информацию о том, какой пользователь изменил файл. Это можно сделать из файлов Word и Excel в VBA.