Here is an example that can be done with an extensibility call:
class DSPrincipals { static void Main(string[] args) { PrincipalContext domainContextMonou = new PrincipalContext(ContextType.Domain, "WM2008R2ENT:389", "ou=Monou,dc=dom,dc=fr", "jpb", " pass@1w0rd01 "); slxUser aSlxUser = new slxUser(domainContextMonou, "W.Zeidan", " pass@1w0rd01 ", true); aSlxUser.GivenName = "Wessam"; aSlxUser.Surname = "Zeidan"; aSlxUser.streetAddress = "Add1"; aSlxUser.ExpirePasswordNow(); aSlxUser.Save(); Console.ReadLine(); } } [DirectoryObjectClass("user")] [DirectoryRdnPrefix("CN")] class slxUser : UserPrincipal { public slxUser(PrincipalContext context) : base(context) { } public slxUser(PrincipalContext context, string samAccountName, string password, bool enabled ) : base(context, samAccountName, password, enabled) { } [DirectoryProperty("streetAddress")] public string streetAddress { get { object[] result = this.ExtensionGet("streetAddress"); if (result != null) { return (string)result[0]; } else { return null; } } set { this.ExtensionSet("streetAddress", value); } } }
For more information, see the MSDN documentation .
Here is the result:

source share