I have never tried pretending that I am a domain controller running the PCNS service and injecting a password change event into the Sync Engine. You might be able to get it to work, but it certainly wouldn't be supported. (It does sound like something fun
to try however...)
What you can do however is use the WMI calls on the Sync Engine to apply password changes to specific Management Agents. You would have to:
- Securely get your password change to a process that has WMI access to the Sync Engine
- Have your process find the connector space object in each of the connector spaces for the Management Agents you want to set the password on
- Use WMI to set the password on the connector space object
The above has been mentioned by other posters, but I don't think it has been mentioned that there is sample code out there that does this...
Back in MIIS days there was a sample web application that did exactly the above - it was a poor man's help desk password reset and self serve password change sample application. You could probably use the same techniques to solve your problem. Here is the
really old documentation that describes the sample that came with MIIS:
http://technet.microsoft.com/en-us/library/cc720637%28v=ws.10%29.aspx
Note that if you do it this way, you won't get all of the password change history objects that the PCNS infrastructure maintains, you would have to create your own version of that. You also don't get the convenience of having the "source" and "target"
checkboxes within Synchronization Manager that allows you to route where password changes go. This logic has to be in your own code.
Could you send the password from the HR system directly to AD and then let the normal PCNS infrastructure distribute the password to other targets?
Rex
- Edited by
Rex Wheeler
Saturday, April 12, 2014 12:53 AM