Belirli Günden Fazla Aktif Olmamıs AD Kullanıcı ve Bilgisayarlarının Disable Edilmesi – Powershell Scripting

Kullanıcıların Disable Edilmesi:


// Kendi bilgisayarınızdan açıyor iseniz Module import etmeniz gerekli, DC üzerinde yapıyor iseniz AD Powershell Module ile çalışmalısınız..

Import-Module ActiveDirectory 

//Domainimiz..

$domain = "contoso.local" 

// Kaç gündür Logon Olmayanlar..

$day= 90 

// Date Değişkeni..

$time= (get-date).AddDays(-($day)) 

// Usersların Tespit edilmesi..

$users= Get-ADUser -Filter {LastlogonTimeStamp -lt $time} -Properties LastLogonTimeStamp | Select-Object Name,@{Name="Stamp"; Expression={[DateTime]::FromFileTime($_.lastLogonTimestamp)}} 

$users | Export-Csv c:\Users.csv // Tespit edilen kullanıcıları istediğiniz yere attıktan sonra LÜTFEN SERVICE ACCOUNTLARI SİLİNİZ

//Tespit edilen kullanıcıların Disable edilmesi...
Import-Csv C:\Users.csv |ForEach-Object{Set-ADUser -Identity $_.Name -Enabled $false} 

//End

Bilgisayarların Tespiti ve Disable Edilmesi:

Import-Module ActiveDirectory

$domain = "contoso.local"

$day= 90

$time= (get-date).AddDays(-($day))

$computer= Get-ADComputer -Filter {LastlogonTimeStamp -lt $time} -Properties LastLogonTimeStamp | Select-Object Name,@{Name="Stamp"; Expression={[DateTime]::FromFileTime($_.lastLogonTimestamp)}}

foreach($com in $computer){
Set-ADComputer -Identity $com.Name -Enabled $false} 

//End

About the Author

3 thoughts on “Belirli Günden Fazla Aktif Olmamıs AD Kullanıcı ve Bilgisayarlarının Disable Edilmesi – Powershell Scripting

    • Author gravatar

      Güzel olmuş, eline sağlık.

      Burada LastLogonTimeSpan yerine LastLogon parametresini kullanmak daha mantıklı. Çünkü;
      Lastlogon, yalnızca kimlik doğrulamasını gerçekleştiren DC’de güncellenir. LastLogontimestamp ise domain’deki diğer DC’lerle (eğer varsa) replike edilen değerdir ve LastLogon değerinden genellikle daha eskidir.

      Bir de şöyle bir yöntem var one-liner olarak:

      Search-ADAccount -AccountInactive -TimeSpan ([timespan]90d) -UsersOnly | Set-ADUser -Enabled $false

      Burada belirli bir OU’daki kullanıcıları disable etmek gerekiyorsa -SearchBase parametresi kulllanılabilir.

    • Author gravatar

      Güzel olmuş, eline sağlık.

      Burada LastLogonTimeSpan yerine LastLogon parametresini kullanmak daha mantıklı. Çünkü;
      Lastlogon, yalnızca kimlik doğrulamasını gerçekleştiren DC’de güncellenir. LastLogontimestamp ise domain’deki diğer DC’lerle (eğer varsa) replike edilen değerdir ve LastLogon değerinden genellikle daha eskidir.

      Bir de şöyle bir yöntem var one-liner olarak:

      Search-ADAccount -AccountInactive -TimeSpan ([timespan]90d) -UsersOnly | Set-ADUser -Enabled $false

      Burada belirli bir OU’daki kullanıcıları disable etmek gerekiyorsa -SearchBase parametresi kulllanılabilir.

Bir Cevap Yazın

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