Como consumir informações de auditoria do sistema de arquivos

1

Temos um sistema usado por alguns departamentos da empresa e enfrentamos problemas devido a algumas configurações incorretas nesse sistema, por isso ativamos a gravação de arquivos ou a exclusão de arquivos.

Agora que tenho esta informação, como posso utilizá-la? Existe alguma ferramenta? Tudo o que preciso fazer com essa informação é listar os usuários que modificaram um determinado arquivo e datas de modificação.

Como posso fazer isso?

    
por Ignacio Soler Garcia 23.04.2018 / 10:40

1 resposta

1

Eu encontrei uma solução para a minha pergunta (pelo menos de uma forma muito básica):

$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:\Temp63Events.csv
    
por 23.04.2018 / 13:41