Ignacio Soler Garcia Asked: 2018-04-24 00:40:15 +0800 CST2018-04-24 00:40:15 +0800 CST 2018-04-24 00:40:15 +0800 CST 如何使用文件系统审计信息 772 我们有一个公司的某些部门使用的系统,由于该系统上的一些配置错误,我们遇到了问题,因此我启用了正在写入或删除的审计文件。 既然我有了这些信息,我该如何使用它?有什么工具吗?我需要对这些信息做的就是列出修改给定文件的用户和修改日期。 我该怎么做? windows 1 个回答 Voted Best Answer Ignacio Soler Garcia 2018-04-24T03:41:41+08:002018-04-24T03:41:41+08:00 我找到了我的问题的解决方案(至少以非常基本的方式): $server = "localhost" $out = New-Object System.Text.StringBuilder $out.AppendLine("ServerName,EventID,TimeCreated,UserName,File_or_Folder,AccessMask") $ns = @{e = "http://schemas.microsoft.com/win/2004/08/events/event"} $evts = Get-WinEvent -computer $server -FilterHashtable @{logname="security";id="4663"} -oldest foreach($evt in $evts) { [xml]$xml = $evt.ToXml() $SubjectUserName = Select-Xml -Xml $xml -Namespace $ns -XPath "//e:Data[@Name='SubjectUserName']/text()" | Select-Object -ExpandProperty Node | Select-Object -ExpandProperty Value $ObjectName = Select-Xml -Xml $xml -Namespace $ns -XPath "//e:Data[@Name='ObjectName']/text()" | Select-Object -ExpandProperty Node | Select-Object -ExpandProperty Value $AccessMask = Select-Xml -Xml $xml -Namespace $ns -XPath "//e:Data[@Name='AccessMask']/text()" | Select-Object -ExpandProperty Node | Select-Object -ExpandProperty Value $out.AppendLine("$($server),$($evt.id),$($evt.TimeCreated),$SubjectUserName,$ObjectName,$AccessMask") Write-Host $server Write-Host $evt.id,$evt.TimeCreated,$SubjectUserName,$ObjectName,$AccessMask } $out.ToString() | out-file -filepath C:\Temp\4663Events.csv
我找到了我的问题的解决方案(至少以非常基本的方式):