my C# code uses the DirectoryServices namespace to create domain user accounts.
DirectoryEntry deRoot = new DirectoryEntry("LDAP://OU=MYOU,DC=DOMAIN,DC=LOCAL");
directoryEntry = deRoot.Children.Add("CN=Tony", "user");
directoryEntry.CommitChanges();
directoryEntry.Properties["sAMAccountName"].Value = "Tony1";
directoryEntry.Properties["displayName"].Value = "Tony Danza";
directoryEntry.Invoke("SetPassword", "mypass123");
directoryEntry.CommitChanges();
This successfully creates the account but the sAMAccountName property contains a rather weird value like $HGA000-8FP94NQK9R9I or $NGA000-B3BJ2ELT5OOD.
When executed inside my dev-domain, everything’s fine.
Try setting the sAMAccountName before the first
CommitChanges.Maybe, since sAMAccountName is a required attribute, the system gives it a default value if you don’t provide it when you create the object.