Merhaba, bu yazımda sizlere PowerShell ile Kullanıcı Şifrelerinin Yeniden Ayarlanması konusundan bahsedeceğim. Active Directory ortamında kullanıcı şifre güvenliğini sağlamak için belirli aralıklarla kullanıcıların şifrelerini değiştirmesi önemlidir. PowerShell kullanarak, tüm kullanıcıların şifrelerini bir sonraki oturum açışlarında değiştirmelerini zorunlu kılabilir ve kullanıcıların şifre değişiklik geçmişlerini kontrol edebilirsiniz.
Şifrelerin Bir Sonraki Oturumda Değiştirilmesini Zorunlu Kılma
Active Directory kullanıcılarının şifrelerini bir sonraki oturumda değiştirmelerini zorunlu kılmak için Set-ADUser cmdlet’ini kullanabilirsiniz. Aşağıdaki komut, tüm kullanıcılar için bu ayarı uygular:
Tüm Kullanıcılar için Şifre Değiştirme Zorunluluğu
Get-ADUser -Filter * -Property PasswordNeverExpires | Where-Object { $_.PasswordNeverExpires -eq $false } | ForEach-Object {
Set-ADUser -Identity $_.SamAccountName -ChangePasswordAtLogon $true}
Bu komut ne yapar:
Get-ADUser -Filter: Tüm Active Directory kullanıcılarını getirir.
- -Property PasswordNeverExpires: Kullanıcı nesnesinin şifre ayarlarını kontrol eder.
- Where-Object: Şifresi hiçbir zaman sona ermeyen kullanıcıları hariç tutar.
- Set-ADUser -ChangePasswordAtLogon $true: Kullanıcının şifre değiştirme zorunluluğunu aktif eder.
Not: Bu işlemi yapmadan önce, ortamınızdaki kritik kullanıcı hesaplarını ve servis hesaplarını kontrol ederek yanlışlıkla etkilenmelerini önlemeniz gerekmektedir.
Kullanıcıların Şifrelerini Ne Zaman Değiştirdiğini Kontrol Etme
Kullanıcıların şifre değiştirme geçmişlerini görüntülemek için LastLogonDate ve PasswordLastSet özelliklerini kullanabilirsiniz.
Şifre Değişim Tarihlerini Görüntüleme
Get-ADUser -Filter * -Property SamAccountName, PasswordLastSet | Select-Object SamAccountName, PasswordLastSet | Sort-Object PasswordLastSet
Bu komut ne yapar
- Get-ADUser -Property PasswordLastSet: Tüm kullanıcıların en son şifre değiştirme tarihlerini getirir.
- Select-Object: Kullanıcı adı ve şifre değiştirme tarihini seçer.
- Sort-Object PasswordLastSet: Kullanıcıları şifre değiştirme tarihine göre sıralar.
Belirli Bir Tarihten Önce Şifre Değiştiren Kullanıcıları Filtreleme
$thresholdDate = (Get-Date).AddDays(-90)
Get-ADUser -Filter * -Property PasswordLastSet | Where-Object { $_.PasswordLastSet -lt $thresholdDate } | Select-Object SamAccountName, PasswordLastSet
Bu komut, son 90 gün içinde şifresini değiştirmeyen kullanıcıları listeler.
Tüm Kullanıcıları ve Şifre Bilgilerini CSV’ye Aktarma
Sonuçları bir CSV dosyasına aktarmak, raporlamada kolaylık sağlar. Bunun için Export-Csv cmdlet’i kullanılır:
Get-ADUser -Filter * -Property SamAccountName, PasswordLastSet | Select-Object SamAccountName, PasswordLastSet | Export-Csv -Path “C:\Reports\PasswordChangeReport.csv” -NoTypeInformation -Encoding UTF8
Bu komut, kullanıcı adlarını ve şifre değiştirme tarihlerini “PasswordChangeReport.csv” dosyasına kaydeder.
PowerShell, Active Directory kullanıcı hesaplarının şifre yönetiminde güçlü bir araçtır. Bu yazıda, kullanıcıların şifrelerini bir sonraki oturumda değiştirmelerini zorunlu kılmak, şifre değiştirme tarihlerini kontrol etmek ve bu bilgileri raporlamak için temel komutları incelemiş olduk.
Şifre güvenliği, bir organizasyonun genel güvenlik politikalarının temel bir parçasıdır. Bu komutları düzenli olarak kullanarak, kullanıcılarınızın şifre güvenliğini artırabilir ve olası riskleri en aza indirebilirsiniz. Bu yazımda sizlere PowerShell ile Kullanıcı Şifrelerinin Yeniden Ayarlanması konusundan bahsettim. Faydalı olması dileğiyle.