This Script can be used to change a user password on the AD to a new randomized password. Is possible to change the conditions to change the characters and ranges of the new password. Use the SamAccountName of the user object to choose an specific user. New versions: send email to the user with his new pass/ change password to a list of users, etc.

PowerShell
Edit|Remove
################################################################################################ 
# Change_Password_User_AD.ps1 
 
# AUTHOR: gerard_gorrion (gerard_gorrion@hotmail.com) 
# 
# THIS CODE-SAMPLE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED  
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR  
# FITNESS FOR A PARTICULAR PURPOSE. 
# 
# This sample is not supported under any Microsoft standard support program or service.  
# The script is provided AS IS without warranty of any kind. Microsoft further disclaims all 
# implied warranties including, without limitation, any implied warranties of merchantability 
# or of fitness for a particular purpose. The entire risk arising out of the use or performance 
# of the sample and documentation remains with you. In no event shall Microsoft, its authors, 
# or anyone else involved in the creation, production, or delivery of the script be liable for  
# any damages whatsoever (including, without limitation, damages for loss of business profits,  
# business interruption, loss of business information, or other pecuniary loss) arising out of  
# the use of or inability to use the sample or documentation, even if Microsoft has been advised  
# of the possibility of such damages. 
################################################################################################ 
 
<#------------------------------------------------------------------------------- 
!! Version 0.1 
10 June, 2019 
 
*New Features* 
** Add new random comand to reset password accounts* 
 
*Fixed issues* 
 
-------------------------------------------------------------------------------#> 
 
# Create variables randomized 
 
$user = "SamAccountName" 
$pass = -join ((65..90) + (97..122) | Get-Random -Count 8 | % {[char]$_}) 
$newPass = -join(1..12 | ForEach {((65..90)+(97..122) | % {[char]$_})+(0..9) | Get-Random}) 
 
# Set new password to deteminated user 
 
Set-ADAccountPassword -Identity $user -Reset -NewPassword (ConvertTo-SecureString -AsPlainText "$newPass" -Force)