Forum Discussion
emreozanmemis
May 09, 2020Steel Contributor
PowerShell ile RDP Logon-Logoff kayitlarini görüntüleme
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
No RepliesBe the first to reply