Logon / Logoff Raporu (Logon / Logoff Report)

Bir bilgisayara logon/logoff olan kullanıcıların listesini, kullanıcıların hangi saatte logon/logoff olduğunu belirtilen gün aralığında raporlama için hazırlanan PowerShell script aşağıdaki gibidir.

Param (
[string]$Computer = (Read-Host Bilgisayar adını yazınız),
[int]$Days = 10
)

$now=get-date
Set-Variable -Name ExportFolder -Value "C:\Reports\"
$startdate=$now.adddays(-$EventAgeDays)
$ExportFile=$ExportFolder + $Computer + "_Logon_Logoff_Report___" + $now.ToString("yyyy-MM-dd---hh-mm-ss") + ".csv"
cls

$Result = @()
Write-Host "Loglar toplanıyor, bu işlem biraz zaman alabilir..."
$ELogs = Get-EventLog System -Source Microsoft-Windows-WinLogon -After (Get-Date).AddDays(-$Days) -ComputerName $Computer
If ($ELogs)
{ Write-Host "İşleniyor..."
ForEach ($Log in $ELogs)
{ If ($Log.InstanceId -eq 7001)
{ $ET = "Logon"
}
ElseIf ($Log.InstanceId -eq 7002)
{ $ET = "Logoff"
}
Else
{ Continue
}
$Result += New-Object PSObject -Property @{
Time = $Log.TimeWritten
'Event Type' = $ET
User = (New-Object System.Security.Principal.SecurityIdentifier $Log.ReplacementStrings[1]).Translate([System.Security.Principal.NTAccount])
}
}
$Result | Select Time,"Event Type",User | Sort Time -Descending | Export-CSV $ExportFile -NoTypeInformation
Write-Host "Tamamlandı."
}
Else
{ Write-Host "Bu bilgisayarda sorun oluştu : $Computer."
Write-Host "Eğer 'Ağ yolu bulunamadı' hatasını alıyorsanız bu bilgisayarda Remote Registry servisini başlatınız."
Write-Host "Ayrıca logon/logoff kaydı da bulunamamış olabilir. (Windows XP işletim sistemi yüklü bilgisayarlarda auditing açık olmalıdır.)"
}

3. satırda bulunan aşağıdaki bölümde son kaç günlük rapor istendiği belirtilir. Örnekte son 10 günlük logon/logoff raporu alınmıştır.
[int]$Days = 10

6. satırda bulunan aşağıdaki bölüme raporun kaydedileceği yol yazılır. Burada önemli olan raporun kaydedileceği yolun script çalıştırılmadan  önce var olmasıdır. Aksi taktirde belirtilen yol bulunamadığından hata ile karşılaşılır. Örnekte C:\Reports olarak belirlenmiştir.
Set-Variable -Name ExportFolder -Value “C:\Reports\”

Faydalı olması dileğiyle…

Bir Cevap Yazın