
This script use the function GET-Temppassword to set a random password to a user account. You can customize this function with your own criteria
import-module activedirectory
Function GET-Temppassword() {
$chars_min = [Char[]]"abcdefghijklmnopqrstuvwxyz"
$chars_maj = [Char[]]"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
$chars_num = [Char[]]"0123456789"
$x_min = 9
$x_maj = 9
$x_num = 9
$x_tot = $x_min + $x_maj + $x_num
$TempPassword= ($chars_min | Get-Random -Count $x_min)+ `
($chars_maj | Get-Random -Count $x_maj)+ `
($chars_num | Get-Random -Count $x_num)
$final_rand_password = ($TempPassword | Get-Random -Count $x_tot) -join ""
return $final_rand_password
}
$DistinguishedName = "cn=youruseraccount,ou=users,dc=domain,dc=local"
$rand_password = GET-Temppassword
Set-ADAccountPassword $DistinguishedName -Reset -NewPassword (ConvertTo-SecureString -AsPlainText $rand_password -Force)
write-host "Username : $DistinguishedName / New password : $rand_password"
This script uses the powershell cmdlet Get-Random:
The Get-Random cmdlet gets a randomly selected number. If you submit a collection of objects to Get-Random, it gets one or more randomly selected objects from the collection.
Without parameters or input, a Get-Random command returns a randomly selected 32-bit unsigned integer between 0 (zero) and Int32.MaxValue (0x7FFFFFFF, 2,147,483,647).
You can use the parameters of Get-Random to specify a seed number, minimum and maximum values, and the number of objects returned from a submitted collection.
My Powershell script categories
- Active Directory
- Cluster
- Database
- Exchange
- Files and folders
- Hardware
- Network
- Operating System
- PKI
- SCCM
- Service and process
- Tips
- VMWare
Set a random password to an Active Directory user
