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
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.
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.
Bilgilendirme için çok teşekkürler sir 🙂