Blog

PowerShell ile AD’de İnaktif Nesneleri Bulma Adımları

Kurumsal yapılarda Active Directory (AD) ortamları zamanla büyüyerek karmaşık bir hale gelebilir ve düzenli olarak takip edilmediğinde gereksiz, kullanılmayan ya da güvenlik riski taşıyan nesneler ortaya çıkabilir. Bu tür atıl nesneler, sistem yöneticileri açısından fark edilmesi zor ancak kritik önem taşıyan bir yönetim ve denetim sürecini gerekli kılar.

Bu yazıda, Active Directory içinde düzenli olarak gözden geçirmeniz gereken dört temel alanı ve bu alanlara yönelik PowerShell kullanarak hazırlayabileceğiniz otomatik raporlama yöntemlerini paylaşacağım.

Uzun Süredir Oturum Açmayan Kullanıcıları Tespit Etme

Kullanıcıların sistemde aktif olup olmadığını anlamak, hem güvenlik hem de lisans yönetimi açısından önemlidir. Özellikle 90 gün ve üzeri süredir hiç oturum açmamış kullanıcılar pasif kabul edilip arşivlenmeli veya devre dışı bırakılmalıdır.

Import-Module ActiveDirectory

# Get users who haven't logged in for the last 90 days
$inactiveUsers = Search-ADAccount -UsersOnly -AccountInactive -TimeSpan 90.00:00:00 |
    Select-Object Name, SamAccountName, Enabled, LastLogonDate

# Export to CSV
$inactiveUsers | Export-Csv "C:\ADReports\InactiveUsers.csv" -NoTypeInformation -Encoding UTF8

# Display count
Write-Host "`nNumber of inactive user accounts (90+ days): $($inactiveUsers.Count)" -ForegroundColor Green

Active Directory’de Boş Grupları Bulmak

Boş gruplar, içinde üye bulunmayan ve aktif bir kullanımı olmayan gruplardır. Bu gruplar, ortamda gereksiz yer kaplayarak yönetimi zorlaştırabilir ve karmaşıklığa yol açabilir. Bu nedenle, gereksiz grupların belirlenip temizlenmesi önemlidir.

# Get all groups with no members
$emptyGroups = Get-ADGroup -Filter * | Where-Object {
    (Get-ADGroupMember $_.DistinguishedName -ErrorAction SilentlyContinue).Count -eq 0
} | Select-Object Name, DistinguishedName

# Export to CSV
$emptyGroups | Export-Csv "C:\ADReports\EmptyGroups.csv" -NoTypeInformation -Encoding UTF8

# Display count
Write-Host "`nNumber of empty groups: $($emptyGroups.Count)" -ForegroundColor Green

Domaine Bağlı Olmayan (İnaktif) Bilgisayar Hesapları

Bazı bilgisayarlar fiziksel olarak kullanımdan kalkmış veya ağdan çıkarılmış olabilir, ancak Active Directory’de hâlâ aktif olarak görünmeleri yaygın bir durumdur. Bu durum, hem sistem kaynaklarının verimsiz kullanımına neden olur hem de doğru envanter ve raporlama yapılmasını engeller.

Import-Module ActiveDirectory

# Get computer accounts that haven't logged in for the last 60 days
$inactiveComputers = Search-ADAccount -ComputersOnly -AccountInactive -TimeSpan 60.00:00:00 |
    Select-Object Name, SamAccountName, LastLogonDate

# Export to CSV
$inactiveComputers | Export-Csv "C:\ADReports\InactiveComputers.csv" -NoTypeInformation -Encoding UTF8

# Display count
Write-Host "`nNumber of inactive computer accounts (60+ days): $($inactiveComputers.Count)" -ForegroundColor Yellow

Devre Dışı Bırakılmış (Disabled) Ama Hâlâ Silinmemiş Hesaplar

Kurumsal ortamlarda, işten ayrılan veya görev değişikliği yaşayan kullanıcıların hesapları genellikle devre dışı bırakılarak sistemde tutulmaya devam eder. Zamanla bu tür devre dışı hesaplar yüzlerce hatta binlerce olabilir ve bu durum güvenlik, lisans yönetimi ile denetim süreçlerinde karışıklığa yol açabilir.

PowerShell kullanarak devre dışı bırakılmış (disable) tüm kullanıcı hesaplarını hızlıca tespit etmek, bilgileri CSV dosyasına aktarmak ve toplam hesap sayısını anlık olarak görüntülemek mümkündür. Bu sayede Active Directory ortamınız daha şeffaf, kontrol edilebilir ve yönetilebilir bir yapıya kavuşur.

Import-Module ActiveDirectory

# Get disabled user accounts
$disabledUsers = Get-ADUser -Filter 'Enabled -eq $false' |
    Select-Object Name, SamAccountName, whenCreated

# Export to CSV
$disabledUsers | Export-Csv "C:\DisabledUsers.csv" -NoTypeInformation -Encoding UTF8

# Display total count
Write-Host "Number of disabled user accounts: $($disabledUsers.Count)" -ForegroundColor Yellow

Active Directory ortamınızın sağlıklı, yönetilebilir ve güvenli kalması için bu dört script büyük önem taşır. Gereksiz nesnelerin tespiti sadece sistem performansını artırmakla kalmaz, aynı zamanda siber güvenlik risklerinin azaltılmasına da önemli katkı sağlar. IT altyapınızı daha görünür, sade ve kontrol edilebilir hale getirmek için bu scriptleri düzenli olarak kullanmanızı öneriyorum.

Umarım bu bilgiler faydalı olur ve AD yönetiminizde size kolaylık sağlar…

İlgili Makaleler

Bir yanıt yazın

Başa dön tuşu