├── PowerShellRDPLogScript.ps1 └── README.md /PowerShellRDPLogScript.ps1: -------------------------------------------------------------------------------- 1 | $logs = get-eventlog system -ComputerName powershell-ozan -source Microsoft-Windows-Winlogon -After (Get-Date).AddDays(-7); 2 | $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])}}; 3 | $res 4 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # PowerShell RDP session log script 2 | Bu PowerShell scripti, Windows işletim sistemi üzerinde çalışan bir bilgisayarda son 7 gün (gün sayısı düzenlenebilir) içinde gerçekleşen uzak masaüstü (Remote Desktop Protocol, RDP) bağlantı olaylarını (logon ve logoff) izlemek için kullanılır. İşte bu script ile ilgili ayrıntılı bir açıklama ve kullanım senaryoları: 3 | 4 | ``` 5 | $logs = get-eventlog system -ComputerName powershell-ozan -source Microsoft-Windows-Winlogon -After (Get-Date).AddDays(-7); 6 | ``` 7 | 8 | Bu komut, belirtilen bilgisayar (powershell-ozan bu bölümü kendi bilgisayar adınız ile güncelleyeiniz) üzerindeki 'System' event logundan, 'Microsoft-Windows-Winlogon' kaynağına ait, son 7 gün içindeki olayları çeker. Bu, kullanıcıların sisteme giriş yapma ve çıkma (logon ve logoff) olaylarını içerir. 9 | 10 | ```$res = @(); 11 | ForEach ($log in $logs) { 12 | if($log.instanceid -eq 7001) {$type = "Logon"} 13 | ElseIf ($log.instanceid -eq 7002){$type="Logoff"} 14 | Else {Continue} 15 | $res += New-Object PSObject -Property @{ 16 | Time = $log.TimeWritten; 17 | "Event" = $type; 18 | User = (New-Object System.Security.Principal.SecurityIdentifier $Log.ReplacementStrings[1]).Translate([System.Security.Principal.NTAccount]) 19 | }; 20 | } 21 | $res 22 | ``` 23 | 24 | Ne Zaman Kullanılır? 25 | 26 | Bu script, ağ güvenliği ve kullanıcı etkinliklerini izleme açısından çok değerlidir. Özellikle aşağıdaki durumlarda kullanılabilir: 27 | 28 | Güvenlik Denetimi: Yetkisiz veya şüpheli RDP oturum aktivitelerini tespit etmek. 29 | Kullanıcı Etkinlik Takibi: Çalışanların veya kullanıcıların ne zaman ve ne sıklıkta uzaktan bağlantı kurduğunu izlemek. 30 | Uyumluluk Raporlama: Çeşitli düzenleyici gerekliliklere uyum sağlamak için kullanıcı giriş/çıkış kayıtlarını saklamak. 31 | 32 | Neden Kullanılır? 33 | 34 | Güvenlik Açıklarını Azaltmak: Uzaktan erişim aktivitelerini izleyerek, olası güvenlik açıklarını önceden tespit edebilir ve müdahale edebilirsiniz. 35 | Detaylı Kullanıcı Logları: Her kullanıcı için detaylı giriş ve çıkış zamanlarını görebilir, bu bilgileri güvenlik veya performans değerlendirmeleri için kullanabilirsiniz. 36 | Otomasyon ve Kolaylık: Bu script, manuel log kontrolü yapma zorunluluğunu ortadan kaldırır ve büyük log verileri üzerinde hızlı ve etkin bir şekilde çalışmanızı sağlar. 37 | 38 | Bu PowerShell scripti, IT yöneticileri, sistem yöneticileri ve güvenlik analistleri tarafından sıklıkla kullanılır ve organizasyonların IT altyapısının daha güvenli ve verimli bir şekilde yönetilmesine olanak tanır. 39 | --------------------------------------------------------------------------------