16.03.2021

Get-WinEvent ve Logon Type

Uzak masaüstü bağlantılarını eventlog'dan süzmek için garip filtereler kullandım durdum. Ta ki şunu bulana kadar:

PS> Get-WinEvent -FilterHashTable @{LogName="Security";Id=4624} | Where-Object {$_.properties[8].value -eq 10}

Buradaki properties olarak geçen 27 öğelik EventProperty nesnesi, her olay için ayrıntılar sekmesinde çıkan parametrize edilmiş olay özellikleri. Bunu aslında log parser zamanlarından biliyordum, ama nedense bu alanların powershell'den de erişebileceğini hiç düşünmemiştim.

Her durumda Logon Type=10 kaydı düşülmüyor. Sunucunun ekranı kilitlenmişse sadece Logon Type=7 (muhtemelen bir Logon Type=3 sonrasında) kaydı olabiliyor.

2023-04-11 ek: Uygulama ve Hizmet Günlükleri (Application and Service Logs) altında Microsoft>Windows>TerminalServices-RemoteConnectionManager/Operational günlüğü daha net bilgiler sunuyor. Bunun için logon audit policy'si etkinleştirilmiş olmalı.

PS> Get-WinEvent -FilterHashTable @{LogName="Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational";Id=1149} | Select-Object TimeCreated, @{N="User";E={$_.properties[0].Value}},@{N="Domain";E={$_.properties[1].Value}},@{N="IP";E={$_.properties[2].Value}}

2023-11-20 ek: Ayrıca "Microsoft-Windows-TerminalServices-LocalSessionManager/Operational" altında hem uzakmasaüstü oturum açma hem de kapama olayları sırasıyla 21 ve 23 olayları ile kaydedilir.

PS> Get-WinEvent -FilterHashtable @{Logname="Microsoft-Windows-TerminalServices-LocalSessionManager/Operational";Id=21,23} -Max 4 | select TimeCreated, Id, @{N="UserName";E={$_.Properties[0].Value}},@{N="SessionID";E={$_.Properties[1].Value}},@{N="IPAddress";E={$_.Properties[2].Value}} | ft *

Hiç yorum yok: