cls
[console]::ResetColor()
$date = Get-Date
$window = (Get-Host).UI.RawUI
$window.WindowTitle = "Password Reset Script v1 $date"
$currUser = [Environment]::UserName
$currMachine = [Environment]::MachineName
Write-Host ":: Password Reset Script v1 ::"
Write-Host "Running as: $currUser on $currMachine"
Write-Host "--------------------------------------------"
$user = Read-Host "`nEnter the username you wish to reset"
$password = Read-Host -assecurestring "`nEnter new password"
$password2 = Read-Host -assecurestring "Enter new password again to confirm"
$tmpPassword = [Runtime.InteropServices.Marshal]:

trToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($password))
$tmpPassword2 = [Runtime.InteropServices.Marshal]:

trToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($password2))
if ($tmpPassword -ne $tmpPassword2)
{
[console]::ForegroundColor = "RED"
Write-Host "`nPasswords do not match!`n"
[console]::ResetColor()
return
}
else
{
[console]::ForegroundColor = "YELLOW"
$confirm = Read-Host "`nPress 'Y' to confirm or 'N' to exit"
[console]::ResetColor()
if ($confirm -eq "Y" -or $confirm -eq "y")
{
try
{
Import-Module ActiveDirectory
Set-ADAccountPassword -Identity $user -NewPassword $password -Reset
[console]::ForegroundColor = "GREEN"
write-host "`nPassword change successful!`n"
[console]::ResetColor()
}
catch
{
[console]::ForegroundColor = "RED"
Write-Host "`nPassword change failed. Check username is correct`n"
[console]::ResetColor()
}
}
else
{
[console]::ForegroundColor = "RED"
Write-Host "`nAborted!`n"
[console]::ResetColor()
return
}
}