文件变更日志生成 Windows Server 2012

文件变更日志生成 Windows Server 2012

我想知道是否有人知道在 Windows Server 2012 的目录中设置文件更改日志自动生成的方法。我们有一系列 word、excell 和 pdf 文件,目前我必须每周手动创建更改日志。我想知道是否可以让 Windows 处理此过程。任何帮助或指导都将不胜感激。

答案1

使用 WMI。这是一个 vbscript 版本,解释了如何使用 CIM_DirectoryContainsFile 中的 __InstanceOperationEvent

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

答案2

我推荐 Jim B 使用 WMI 的解决方案,但如果您想要使用 powershell 的更简单的解决方案:

Dir C:\folder -r | ? {! $_.PSIsContainer -AND $_.lastwritetime -ge '04/18/14'} > changed.txt

这将创建一个名为的文件,其中包含自 以来在 (及其子目录中)changed.txt更改的每个文件。c:\folder04/18/14

(来源:我从用户 nixda 处获得这里

您可以将此脚本添加到任务计划程序中以便每天运行。

我不知道有什么方法可以获取哪个用户更改了文件的信息。可以使用 VBA 在 Word 和 Excel 文件中完成此操作。

相关内容