public/Reset-Passwords.ps1

Function Reset-Passwords {

 param (

    [Parameter(Mandatory=$true,Position=0)]
    [string]$OU,

    [Parameter(Mandatory=$true,Position=0)]
    [string]$NewPwd,

    [switch]$RequireChange = $true


 )


# Get all the users in the OU
$Users = Get-ADUser -Filter * -Properties * -SearchBase $OU

foreach ($User in $Users) {
    
    # Set the users password
    Set-ADAccountPassword -Identity $User.SamAccountName -NewPassword (ConvertTo-SecureString $NewPwd -AsPlainText -Force) -Reset -Verbose    
    # If require change is true then do so
    if ($RequireChange -eq $true)
        {
        Set-ADUser -Identity $User.SamAccountName -ChangePasswordAtLogon $true
        }
    
    Write-Host "$($User.name)'s password has been updated" -ForegroundColor Green
        
        }
    }