the idea is:
first you need create a group for safety, then make a user A join this group.
assign group to manager change password, but not allow to create or delete object.
in script:
obtain @logondomain to check if user are log in domain or local.
_ad_open with that user A
GUIcreate to let user input new password
no GUI for user to input username, obtain username by @Username
then _AD_SetPassword($user,$password)
some user have two domain, one is company's domain, and other is exchange server domain which manager by Top company group.
exchange server domain only have one account for us to add and modify account.
then use this one, user can modify their "own" password and email password, and can one click modify both as same password with unlock.
if something wrong, you just need kick UserA out of the group.
you can also make script write log to a file on server, then you can have log of who is always changing his password and what that password is. :evil