This is actually the same problem as with this thread: Security ID Structure Invalid , Getting this error when setting the new SecurityDescriptor for AD user properties however i am using C++ rather than .Internet.

I wish to set the flag "User Cannot Change Password" to have an Active Directory account. I'm by using this code from MS:

http://msdn.microsoft.com/en-us/library/windows/desktop/aa746398%28v=vs.85%29.aspx

However I have an error: The safety ID structure is invalid.

This occurs within the method SetUserCannotChangePassword() only at that line:

//update the security descriptor property
hr = pads->Put(sbstrSecDesc, svar);

This error only occurs when I test this from the computer that's not within the same domain because the user I wish to set the AD flag. Basically run my application on a single domain when i modify everything works fine.

In regards to this error code I discovered the content: http://support.microsoft.com/kb/948502/en-us.

The recommendation of opening the ports for LSA didn't work - I deactivated the fire walls but that didn't repair the problem.

Any suggestions?