Мне интересно, знает ли кто-нибудь, как я могу настроить автоматическое создание журнала изменений файла в каталоге на сервере Windows 2012. У нас есть коллекция файлов word, excell и pdf, которые мне сейчас нужно создать вручную на еженедельной основе. Интересно, можно ли заставить Windows обрабатывать этот процесс. Любая помощь или руководство будут очень благодарны.
Используйте WMI. Вот версия vbscript, объясняющая, как использовать __InstanceOperationEvent из CIM_DirectoryContainsFile
http://www.codeproject.com/Articles/42212/WMI-and-File-System-Monitoring
Это может быть медленным в 2008 году, но, похоже, запускает файл в 2012 году.
Другой вариант - использовать диспетчер файлов:
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.