Active Directory Disable Kullanıcıları Otomatik Sildirmek

Resul Coskun 1 Ekim 2022 21:56

Active Directory ortamında disable ettiğiniz kullanıcıları bir süre sonra manuel siliyor olabilirsiniz. Bu yazımda sizlere Active Directory ortamında disable edilmiş kullanıcıları belirli bir süre sonra powershell ile otomatik olarak nasıl sildirebileceğimizi paylaşacağım.

Active Directory disable kullanıcıları otomatik sildirmek
Active Directory disable kullanıcıları otomatik sildirmek

Otomasyonu hazırlarken Active Directory üzerinde kullanıcıların disable edildiği tarih doğrudan bir attribute yazmadığı için disable edilen kullanıcıların description değerine hesabın disable edildiği tarihin yazıldığını varsayıyorum.

Disable Kullanıcıları Nasıl Otomatik Sildirilir?

Öncelikle powershell Active Directory modülümüzü import ediyoruz.

Import-Module -Name ActiveDirectory

Kaç gün sonra sileceğimizi belirleyip değişken olarak tanımlıyoruz. Ben disable edilen kullanıcının 30 gün silinmesini istemediğim için 31 gün olarak belirledim.

$AyYil        = (get-date).Adddays(-31).ToString("dd.MM.yyy")

Get-ADUser komutu ile “Disable Users” ousu içerisinde disable edilmiş kullanıcıların description attribute’unda $AyYil değişkeni ile filtreleyip “C:\Tasklar\” klasörüne export ediyoruz.

Get-ADUser -SearchBase "OU=Disable Users,DC=Resul,DC=local" -Filter {Enabled -eq $False} -properties * |

Where-Object {$_.Description -like "*$AyYil*"} |

Select-Object -Property Name, SamAccountName, Description,Enabled | 

Export-Csv -path "C:\Tasklar\$AyYil-Silinen-Kullanicilar.csv" -Delimiter ';' -NoType

Aldığımız exportun boyutu 0kb dan büyükse exportu import edip Remove-ADUser komutu ile kullanıcıları siliyoruz.

If ((Get-Item "C:\Tasklar\$AyYil-Silinen-Kullanicilar.csv").Length -gt 0kb) { 

Import-Csv -Path "C:\Tasklar\$AyYil-Silinen-Kullanicilar.csv" -Delimiter ';' | 

ForEach {Remove-ADUser $_.SamAccountName -confirm:$false}

}

Bu scripti task scheduler günde 1 kez çalışacak şekilde eklerseniz her çalıştığında “Disable Users” ou içerisinde description attirbute’unda 31 gün öncesinin tarihi yazan disable kullanıcıları silecektir.

Ben bu script her çalıştığında silinen kullanıcı bilgilerini mail ile silinen kullanıcı sayısını ise teams üzerinden bilgi olarak gönderiyorum. Sizlerde istediğiniz gibi geliştirebilirsiniz.

Scriptin tam hali;

$AyYil        = (get-date).Adddays(-31).ToString("dd.MM.yyy")


Get-ADUser -SearchBase "OU=Disable Users,DC=Resul,DC=local" -Filter {Enabled -eq $False} -properties * |

Where-Object {$_.Description -like "*$AyYil*"} |

Select-Object -Property Name, SamAccountName, Description,Enabled |

Export-Csv -path "C:\Tasklar\$AyYil-Silinen-Kullanicilar.csv" -Delimiter ';' -NoType

If ((Get-Item $filepath).Length -gt 0kb) { 

Import-Csv -Path "C:\Tasklar\$AyYil-Silinen-Kullanicilar.csv" -Delimiter ';' | 

ForEach {Remove-ADUser $_.SamAccountName -confirm:$false}

}

Bir yanıt yazın

Yorumlar (0)

Bu yazıya ait yorum bulunamadı. İlk yorumu sen yapmak ister misin?