PowerShell ile RDP session log kayitlari (tr TR) - EmreOzanMemis/PowerShell-WindowsServer-Scripts GitHub Wiki

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

powershell

$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
$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

powershell

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
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 
 
⚠️ **GitHub.com Fallback** ⚠️