با تغییر سیاست های امنیتی سازمان ها بعضا نیاز می شود کلیه کاربران یک مجموعه و یا بخش هایی از آن نسبت به تغییر رمز عبور کاربری خود اقدام کنند. و یا ممکن است در مقدار طول رمز عبور و یا Password Complexity تغییری بدهیم و بخواهیم کلیه کاربران رمز عبور جدیدی انتخاب کنند.

اگر بخواهیم برای یک کاربر این کار را انجام دهیم، از طریق کنسول Active Directory users and computers و پس از انتخاب گزینه Properties هر کاربر، با انتخاب گزینه User must change password at next logon می توان هر کاربر را مجبور به تغییر رمز عبور خود کرد، اما اگر بخواهیم این کار را برای کلیه کاربران تحت Domain و یا کاربران یک OU بصورت همزمان انجام دهیم چطور؟

اینجاست که ابزار قدرتمند Powershell به کمک ما آمده و با وارد کردن یک دستور می توان این کار را انجام داد.

powershell-password

برای شروع بر روی دکمه Start کلیک کرده و از مسیر All Programs -> Accessories -> Windows PowerShell بر روی آیکون Windows PowerShell راست کلیک کرده و گزینه Run as administrator را انتخاب می کنیم.

ابتدا برای فراخوانی ماژول Active Directory در Powershell دستور زیر را وارد می کنیم.

Import-Module ActiveDirectory

سپس دستور مقابل را وارد می کنیم. توجه داشته باشید که OU مورد نظر ما Users و fully qualified domain name مربوط به Domain ما test.lab.local می باشد.

Get-ADUser -Filter * -SearchBase “OU=Users,DC=test,DC=lab,DC=local” | Set-ADUser -ChangePasswordAtLogon:$true


نکته مهم : اگر گزینه User Cannot Change Password برای بعضی کاربران انتخاب شده باشد آنها قادر به تغییر رمز عبور خود نیستند و در این وضعیت عملا کاربر آنها غیرفعال می شود. برای جلوگیری از این مشکل بهتر است هر دو گزینه User Cannot Change Password و Password never expires را برای کلیه کاربران غیر فعال کنیم. پس دستور مقابل را نیز وارد می کنیم:

Get-ADUser -Filter * -SearchBase “OU=Modir,DC=ahvaz,DC=tejarat-bank,DC=local” | Set-ADUser -CannotChangePassword:$false -PasswordNeverExpires:$false -ChangePasswordAtLogon:$true

حالا با Restart شدن سیستم کاربران، آنها با پنجره Change Password مواجه می شوند.