
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 🙂