PowerShell GUI script to reset an Active Directory user’s password

PowerShell GUI script to reset an Active Directory user’s password. The script will need to be run from a computer which is part of the domain. It needs access to the ActiveDirectory PowerShell module. It will first try to load it locally, if not available it will setup a session to a Domain Controller and will import it from there (This requires that the user running this script needs appropriate rights to do so).



  • 1.0 (2016-01-04) Initial version.
  • 1.1 (2016-01-05) Cleanup output text and simplify try/catch for $ButtonMainChangePasswordChangePassword_Click.
  • 1.2 (2016-12-08) Fixed bug where error handling was not working when using implicit remoting for the ActiveDirectory PowerShell module.
  • 2.0 (2016-12-11)
    • Added support for alternate credentials.
    • Added options for “User cannot change password” and “Password never expires”.
    • Added support to connect to other domains/forests.
    • Removed unnecessary logging of ActiveDirectory PowerShell module being loaded at each password update.
    • Generalized application name, version and URL.
    • Some code correction (parameters not fully written out).
    • Code commenting restructuring.


Get the latest version of this script from GitHub.


  • Michael Mihm

    Would be cool if you had a button to auto generate a new password based on standard standard and complexity password settings

  • I don’t suppose you could publish another script without those optional “change password at next logon”, “password never expires” and “user cannot change password” options? And I also don’t really need the option to use other credentials. I want to present this script to end-users as part of an RDS logon script. I just want them to be able to change their own passwords and nothing else. Can you make a “lite” version?

  • We have a number of contractors whose only access into our network is through the ability to run a number of Windows Server 2008 R2 RDS RemoteApps. They do not normally access a desktop. They have no built-in way to change their passwords, so I have published this PowerShell script (v1.2) as another RemoteApp to grant them a way to give them that access. However when they launch this script as a RemoteApp, they receive an “Access is denied” error when attempting to change their password. Any idea why users can’t change their own password?

Leave a Reply

Your email address will not be published. Required fields are marked *