PowerShell ile RDP Logon-Logoff kayitlarini görüntüleme

Steel Contributor

Bir çok sistem mühendisinden istenen genel ve kronik bir durumdur. En son ne zaman logon olmuş ne zaman logoff olmuş bilgisi bazen zorunluluktan bazen anlık ihtiyaç durumundan talep edilir. Event log içinde kaybolmanıza gerek yok. 7001 ve 7002 event idlerini sizin için binlerce log dosyasında inceleyip size çıkartan PowerShell scripti aşağıdaki gibidir.

 

$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

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

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

 

 

 

0 Replies