Active Directory: Changing passwords for users in bulk using a .csv file

Many accounts in your AD might need a password change. What if you want to do this in bulk ?

First, we need to the userlist. Depending on your requirements we need to get a list of users (specifically samaccountname). For random password generation I recommend using http://manytools.org/network/password-generator/ as it can generate up 1000 for free.

Here is what my UserList.csv look like:

sAMAccountName,Password
test1,gqLfZub$OtO#dBg
test2,6eXq78gTyx$YjmM
test3,ZNgl!KdYo7U6yzR
test4,voiIs!TISw!Wcyc
test5,W7ZBTAe7CWcFzyn
test6,BykgCY5b*NGFO5!
test7,3ApLlchwgRQwf1P
test8,9jZvvR2$wDggf3M
test9,*QCDjcgnNLkBDP1
test10,sZpvUnvjJxAE9HE
test11,$C8TX!tcS3d#MjK
test12,Pzw*aH6zjpOx8Wj
test13,XmfIPiIz82!!X77
test14,ri!!hQX!w!FSZuI
test15,S0Gzf6fEUsG!4Ib
test16,Kj8s!vy94S!ozLJ
test17,PzFzjP7obALeuWa
test18,Ri5V2laxxck6Rgg
test19,Rw8KcX*FoMT#gr1
test20,QDndAgzdYo5CYX!

Make sure you do the following on a domain controller or connecting to your domain controller via PS-remote with elevated permissions.

Run this in PowerShell (Open PowerShell in Admin Mode)

PowerShell:

Import-Module Active Directory
$Resetpassword = Import-Csv "c:\_Scripts\UserList.csv"

foreach ($Account in $Resetpassword) {
    $Account.sAMAccountName
    $Account.Password
        Set-ADAccountPassword -Identity $Account.sAMAccountName -NewPassword (ConvertTo-SecureString $Account.Password -AsPlainText -force) -Reset
}

[su_note note_color=”#fafae8″]-Reset
Specifies to reset the password on an account. (User is not prompted to change password).
To use this parameter, you must set the -NewPassword parameter.
You do not need to specify the -OldPassword parameter.
[/su_note]