Event log kayıtlarında arama yaparak RDP logon ve logoff kayıtlarını filtreleyebilecek ve size listeleyecek bu script ile bir çok raporlama gerçekleştirebilirsiniz. ID ve type girişlerini düzenleyerek scripti kendinize göre düzenleyebilirsiniz. Kullanım amacı RDP sessionlarını tespit etmek için hazırlanan aşağıdaki kod ile hangi kullanıcı hangi tairh ve saatte giriş yapmış ne zaman çıkış yapmış görüntüleyebilirsiniz.

 

PowerShell
Edit|Remove
$logs = get-eventlog system -ComputerName powershell-ozan -source Microsoft-Windows-Winlogon -After (Get-Date).AddDays(-7); 
$res = @(); ForEach ($log in $logs) {if($log.instanceid -eq 7001) {$type = "Logon"Elseif ($log.instanceid -eq 7002){$type="Logoff"Else {Continue$res +New-Object PSObject -Property @{Time = $log.TimeWritten; "Event" = $type; User = (New-Object System.Security.Principal.SecurityIdentifier $Log.ReplacementStrings[1]).Translate([System.Security.Principal.NTAccount])}}; 
$res
 

PowerShell çıktısı aşağıdaki gibidir.

 

PowerShell
Edit|Remove
PS C:\Users\Administrator> $logs = get-eventlog system -ComputerName powershell-ozan -source Microsoft-Windows-Winlogon -After (Get-Date).AddDays(-7); 
PS C:\Users\Administrator> $res = @(); ForEach ($log in $logs) {if($log.instanceid -eq 7001{$type = "Logon"} Elseif ($log.instanceid -eq 7002){$type="Logoff"} Else {Continue} $res += New-Object PSObject -Property @{Time 
 = $log.TimeWritten; "Event" = $type; User = (New-Object System.Security.Principal.SecurityIdentifier $Log.ReplacementStrings[1]).Translate([System.Security.Principal.NTAccount])}}; 
PS C:\Users\Administrator> $res 
  
Time                User                          Event 
----                ----                          ----- 
31.05.2019 09:16:58 POWERSHELL-OZAN\Administrator Logon 
30.05.2019 18:11:02 POWERSHELL-OZAN\Administrator Logoff