Merhaba, bu yazımda sizlere Active Directory üzerinde bulunan ve uzun süre oturum açılmamış olan computer hesaplarının powershell script ile nasıl silineceğinden bahsedeceğim. Öncelikle kısaca süreçten bahsetmek gerekmektedir. İlk olarak ortamınızda Active Directory’ye dahil edilmiş olan yani domaine katmış olduğunuz her bilgisayar için otomatik olarak bir computer hesabı otomatik olarak oluşmaktadır.
Active Directory üzerine computer account olarak eklenmiş olan bu hesaplar, bilgisayar aktif olduğu sürece durmaktadır. Ancak normal şartlarda siz bilgisayarı ortamdan kaldırmış olabilirsiniz. Böyle bir durumda Active Directory üzerindeki computer accountları da temizlemelisiniz. Domainden düşürülmüş ya da çıkarılmış olan bilgisayar hesaplarını kalıcı olarak silmeniz gerekmektedir.
Genellikle bu işlemler çoğu şirkette takip edilmemektedir. Ya da takibini yaparken zorlanılmaktadır. Bunun için birkaç third party tool da kullanılabilmektedir. Kısacası Active Directory üzerinde kullanılmayan herhangi bir hesap, silmediğiniz takdirde orada kalmaya devam edecektir. Bu sayı artmaya başladığında da ortamınız adeta bir çöplüğe dönüşecektir. Ve artık takip edemeyecek hale gelebilirsiniz.
Bilgisayar hesaplarını temizlemek için yapılması gereken elbette ki ne kadar süredir kullanılmadığını kontrol etmek olacaktır. Bunun en kolay yolu, ortamdaki bilgisayar hesabının en son ne zaman oturum açtığını kontrol etmek olacaktır. Öncelikle bilgisayar hesabının en son ne zaman kullanıldığını görmek adına aşağıdaki şekilde Active Directory Users and Computers içerisinde “LastLogonDate” kısmından bakılmalıdır. Hemen detaylı anlatıma geçelim. Öncelikle aşağıdaki şekilde View kısmından Advanced Features seçeneğini aktif hale getiriyoruz.
Hemen ardından yapmanız gereken computer account üzerinde sağ click properties kısmına girmelisiniz. Burada Attribute Editor sekmesine giriş yapmanız gerekmektedir. Bu alanda “Last Logon” değerine bakmanız gerekmektedir. Normal şartlarda aşağıdaki gibi bu alana bakmanız yeterlidir.
Yazacağımız script te söylemiş olduğumuz “Last Logon” değerine bakmaktadır. Scriptleri 2, 3 şekilde yazabilirsiniz. Aşağıda ilgili scriptleri Powershell üzerine yapıştırabilir ve çalıştırabilirsiniz. İlgili yerleri ortamınıza göre düzenleyebilirsiniz. Ardından bu dosyaları, domain controller olan sunucularınızdan bir tanesine zamanlanmış görev olarak ekleyebilir ve dilediğiniz zaman çalışmasını sağlayabilirsiniz. Son olarak scriptleri aşağıda bulabilirsiniz.
Powershell Script ile Computer Account Silme İşlemi
Öncelikle bilgisayar hesabını devre dışı bırakmak için aşağıdaki komutu çalıştırmalısınız.
$CurrentDate = Get-Date
$CurrentDate = $CurrentDate.ToString(‘MM-dd-yyyy_hh-mm-ss’)
$then = (Get-Date).AddDays(-90) (90 diye atanan değer kaç gündür kullanılmadığıdır.)
#Get-ADComputer -SearchBase “OU=Bilgisayarlar,DC=dagcannural,DC=com” -Property Name,lastLogonDate -Filter {lastLogonDate -lt $then} | FT Name,lastLogonDate
90 günden daha eski oturum açmamış olan bilgisayar hesaplarını devre dışı bırakarak C:\AD\90gun.csv dosya olarak kaydetmek için aşağıdaki komutu kullanmanız gerekmektedir.
Get-ADComputer -SearchBase “OU=Computer,DC=dagcannural,DC=com” -Property Name,lastLogonDate -Filter {(lastLogonDate -lt $then) -and (Enabled -eq $true)} | Select-Object Name | Export-Csv -Path “C:\AD\90gun.csv ” -Encoding UTF8
#Aşağıdaki komutu koşturduğunuz zaman, 90 günden eski oturum açmamış olan bilgisayar hesaplarını hem devre dışı bırakırsınız. Hem de istediğiniz açıklamayı yazmış olursunuz.
Get-ADComputer -SearchBase “OU=Computer,DC=dagcannural,DC=com” -Property Name,lastLogonDate -Filter {(lastLogonDate -lt $then) -and (Enabled -eq $true)} | Set-ADComputer -Enabled $false -Confirm:$false -Description “Dilediğinişz bir açıklama yazabilirsiniz..”
Bilgisayar hesabını silmek için aşağıdaki komutu kullanabilirsiniz.
$then2 = (Get-Date).AddDays(-120) (Hesap 120 günde silinecektir.)
Aşağıdaki komutu koşturduğunuz zaman, 120 günden eski oturum açmayan computer accountları C:\AD\Silinenler.csv olarak kaydedecektir.
Get-ADComputer -SearchBase “OU=Computer,DC=dagcannural,DC=com” -Property Name,lastLogonDate, DistinguishedName -Filter {lastLogonDate -lt $then2} | Select-Object Name | Export-Csv -Path “ C:\AD\Silinenler.csv ” -Encoding UTF8
Aşağıdaki komutu koşturduğunuz zaman, 120 günden eski oturum açmayan computer accountları silecektir.
Get-ADComputer -SearchBase “OU=Computer,DC=dagcannural,DC=com” -Property Name,lastLogonDate, DistinguishedName -Filter {lastLogonDate -lt $then2} | Remove-ADObject -Recursive -Confirm:$false
Bu yazımda sizlere Active Directory üzerinde bulunan ve uzun süre oturum açılmamış olan computer hesaplarının powershell script ile nasıl silineceğinden bahsettim. Faydalı olması dileğiyle.