AD Üzerinde Kullanılmayan Hesaplar Powershell ile Nasıl Silinir? | IT Blog

AD Üzerinde Kullanılmayan Hesaplar Powershell ile Nasıl Silinir?

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.


 

Dağcan Nural

1988 İstanbul doğumluyum. Bilgisayar dünyasına olan hayranlığım çok küçük yaşlarda başladı. Bu sebeple sistem alanında kendimi geliştirmeye karar verdim. Celal Bayar Üniversitesi Bilgisayar Programcılığı ve Anadolu Üniversitesi İşletme mezunuyum. 2005 yılında Bilge Adam Sistem & Network Mühendisliği eğitimi aldım. Hemen ardından IT dünyasına giriş yaptım. Collezione şirketinde 2006 - 2018 yılları arasında Sistem Uzmanı olarak görev yaptım. 2018 Temmuz ayından beri LCWAIKIKI şirketinde IT System Engineer pozisyonunda çalışmaktayım. Sektörde 14 yıllık deneyime sahibim. Birçok önemli projede görev aldım. Sayfanın en alt kısmından Linkedin profilime ulaşabilirsiniz. Bilgi ve tecrübemi hem bu blog üzerinde hem de Çözümpark Bilişim Portalı üzerinde paylaşıyorum. Bilgi paylaştıkça güzeldir.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir