Mövzunu Açan
#0
Kullanıcılar, Active Directory (AD) ortamlarında gereksiz ve eski kullanıcı hesaplarının birikmesi gibi sorunlarla sıkça karşılaşır. İşte tam bu noktada AD Clean-Up Automation Script devreye giriyor. Bu script, belirli bir tarih aralığında kullanılmayan hesapları otomatik olarak silerek, sistemin sağlıklı ve düzenli kalmasına yardımcı oluyor. Peki, bu script nasıl çalışıyor? Biraz teknik detaylara dalalım.
Öncelikle, PowerShell ile yazılmış bir script ile başlıyoruz. PowerShell, Windows ortamlarında yönetim ve otomasyon için oldukça güçlü bir araçtır. Script’in başlangıcında, gerekli modülleri yükleyip, Active Directory'ye bağlanmamız gerekiyor. Bunun için `Import-Module ActiveDirectory` komutunu kullanarak AD modülünü dahil edebiliriz. Ardından, hedefimiz olan kullanıcıları listelemek için `Get-ADUser` komutunu kullanıyoruz. Kullanıcıların son giriş tarihlerini kontrol etmek, hangi hesapların silineceğine karar vermek açısından kritik bir adım.
Eğer bir kullanıcı hesabı belirli bir süre boyunca (örneğin 90 gün) kullanılmadıysa, bu hesabı silmek için `Remove-ADUser` komutunu kullanabiliriz. Bu noktada dikkat edilmesi gereken şey, silme işlemini gerçekleştirmeden önce kullanıcıları gözden geçirmek. Bunun için, kullanıcıları filtrelemek için `Where-Object` komutunu ekleyerek, `LastLogonDate` parametresi ile belirli bir tarihten daha eski olanları sorgulayabiliriz. Örneğin, `Get-ADUser -Filter * -Property LastLogonDate | Where-Object { $_.LastLogonDate -lt (Get-Date).AddDays(-90) }` komutu, 90 günden uzun süredir giriş yapmamış tüm kullanıcıları listeleyecektir.
Script’in bu kısmını tamamladıktan sonra, silme işlemini gerçekleştirecek döngüyü yazmak kalıyor. Burada, kullanıcıları tek tek döngüye alıp, her birini silmek için `foreach` yapısını kullanabiliriz. Her silme işleminden önce, kullanıcı adı ve son giriş tarihi gibi bilgileri loglamak, gelecekte referans olması açısından faydalı olabilir. Belki de bu, yönetimsel süreçlerde önemli bir denetim mekanizması oluşturur...
Unutulmaması gereken bir başka nokta ise, bu script’in sadece belirli gruplardaki kullanıcıları hedef alacak şekilde özelleştirilebilmesidir. Eğer sadece belirli bir organizasyon birimine ait kullanıcıları temizlemek istiyorsanız, `-SearchBase` parametresini kullanarak o birime özel filtreleme yapabilirsiniz. Örneğin, `Get-ADUser -Filter * -SearchBase "OU=Sales,DC=domain,DC=com"` komutu ile sadece satış departmanındaki kullanıcıları çekebilirsiniz. İşte bu tür özelleştirmeler, script’in etkinliğini artırır ve istenmeyen kullanıcıların doğrudan silinmesini sağlar.
Son olarak, script’inizi planlı bir şekilde çalıştırmak için Windows Görev Zamanlayıcı’sını kullanabilirsiniz. Böylece, belirli aralıklarla otomatik olarak çalışarak, AD ortamınızı temiz ve düzenli tutma konusunda size yardımcı olur. Unutmayın, otomasyon yalnızca iş yükünü azaltmakla kalmaz, aynı zamanda hata payını da en aza indirir. Öyleyse, bu script’i bir kez yazın ve sürekçi olarak kullanın!
Öncelikle, PowerShell ile yazılmış bir script ile başlıyoruz. PowerShell, Windows ortamlarında yönetim ve otomasyon için oldukça güçlü bir araçtır. Script’in başlangıcında, gerekli modülleri yükleyip, Active Directory'ye bağlanmamız gerekiyor. Bunun için `Import-Module ActiveDirectory` komutunu kullanarak AD modülünü dahil edebiliriz. Ardından, hedefimiz olan kullanıcıları listelemek için `Get-ADUser` komutunu kullanıyoruz. Kullanıcıların son giriş tarihlerini kontrol etmek, hangi hesapların silineceğine karar vermek açısından kritik bir adım.
Eğer bir kullanıcı hesabı belirli bir süre boyunca (örneğin 90 gün) kullanılmadıysa, bu hesabı silmek için `Remove-ADUser` komutunu kullanabiliriz. Bu noktada dikkat edilmesi gereken şey, silme işlemini gerçekleştirmeden önce kullanıcıları gözden geçirmek. Bunun için, kullanıcıları filtrelemek için `Where-Object` komutunu ekleyerek, `LastLogonDate` parametresi ile belirli bir tarihten daha eski olanları sorgulayabiliriz. Örneğin, `Get-ADUser -Filter * -Property LastLogonDate | Where-Object { $_.LastLogonDate -lt (Get-Date).AddDays(-90) }` komutu, 90 günden uzun süredir giriş yapmamış tüm kullanıcıları listeleyecektir.
Script’in bu kısmını tamamladıktan sonra, silme işlemini gerçekleştirecek döngüyü yazmak kalıyor. Burada, kullanıcıları tek tek döngüye alıp, her birini silmek için `foreach` yapısını kullanabiliriz. Her silme işleminden önce, kullanıcı adı ve son giriş tarihi gibi bilgileri loglamak, gelecekte referans olması açısından faydalı olabilir. Belki de bu, yönetimsel süreçlerde önemli bir denetim mekanizması oluşturur...
Unutulmaması gereken bir başka nokta ise, bu script’in sadece belirli gruplardaki kullanıcıları hedef alacak şekilde özelleştirilebilmesidir. Eğer sadece belirli bir organizasyon birimine ait kullanıcıları temizlemek istiyorsanız, `-SearchBase` parametresini kullanarak o birime özel filtreleme yapabilirsiniz. Örneğin, `Get-ADUser -Filter * -SearchBase "OU=Sales,DC=domain,DC=com"` komutu ile sadece satış departmanındaki kullanıcıları çekebilirsiniz. İşte bu tür özelleştirmeler, script’in etkinliğini artırır ve istenmeyen kullanıcıların doğrudan silinmesini sağlar.
Son olarak, script’inizi planlı bir şekilde çalıştırmak için Windows Görev Zamanlayıcı’sını kullanabilirsiniz. Böylece, belirli aralıklarla otomatik olarak çalışarak, AD ortamınızı temiz ve düzenli tutma konusunda size yardımcı olur. Unutmayın, otomasyon yalnızca iş yükünü azaltmakla kalmaz, aynı zamanda hata payını da en aza indirir. Öyleyse, bu script’i bir kez yazın ve sürekçi olarak kullanın!