Como filtrar o log de eventos do Windows Security pelo SID?

4

Eu quero filtrar o log de eventos de um determinado usuário, mas não acho que haja uma opção para pesquisar pelo SAMID. Existe um filtro por UserId , de acordo com aqui . A seguinte sintaxe correta está correta para pesquisar o usuário na captura de tela abaixo?

$events = get-winevent -filterhashtable 
  @{ logname='security'; path="Archive-Security-2015-04-14-02-13-02-299.evtx";
  UserId='S-1-5-21-220523388-838170752-839522115-yyyy' }

Eurecebo"Nenhum evento foi encontrado que corresponda aos critérios de seleção especificados." com o comando acima. Mas se eu remover a chave UserId , uma lista longa é retornada, portanto não deve haver nada de errado com logname ou path .

    
por Old Geezer 14.04.2015 / 12:51

2 respostas

5

Use a opção -FilterXPath em seu lugar!

No exemplo a seguir, salvei todos os eventos do log de segurança em minha máquina em seclog.evtx na área de trabalho e pesquise por eventos com SubjectUserSid S-1-5-18 ( LOCAL SYSTEM ):

$events = Get-WinEvent -Path "$HOME\Desktop\seclog.evtx" -FilterXPath '*[EventData[Data[@Name="SubjectUserSid"] = "S-1-5-18"]]'

Em um script, eu provavelmente optaria por uma tabela splatting para tornar a declaração pouco mais legível (aqui limitado aos últimos 10 eventos):

$seclogSplat = @{
    'Path'        = "$HOME\Desktop\seclog.evtx"
    'FilterXPath' = '*[EventData[Data[@Name="SubjectUserSid"] = "S-1-5-18"]]'
    'MaxEvents'   = 10
}
$events = Get-WinEvent @seclogSplat

Você pode especificar vários critérios não exclusivos com or :

*[EventData[Data[@Name="SubjectUserSid"] = "S-1-5-18" or Data[@Name="SubjectUserSid"] = "S-1-0-0"]]
    
por 14.04.2015 / 18:35
2

Eu não sei de nenhuma forma construída para descobrir se existe um UserID específico.
No entanto, você pode apenas combinar o conteúdo da mensagem para encontrar seu SiD, já que ele deve ser único:

$events = get-winevent -logname security -path "Archive-Security-2015-04-14-02-13-02-299.evtx" | where {$_.message -match 'S-1-5-21-220523388-838170752-839522115-yyyy'}

Existem também alguns maneiras mais limpas usando a filtragem XML.
Mas pessoalmente ainda não tive necessidade deles, e o conteúdo correspondente à mensagem foi suficiente até agora.

    
por 14.04.2015 / 13:43