Wenn Sie mit dem Active Directory interagieren wollen, sollten Sie nicht wissen müssen, wo die FSMO Die Rollen sind zum größten Teil gleich. Wenn Sie die AD-Topologie von Ihrem Programm aus ändern wollen (was ich nicht tun würde), sehen Sie sich die DomainController classe.
Wenn Sie ein Benutzerkennwort ändern möchten, können Sie diese Aktionen für das Benutzerobjekt aufrufen, und Active Directory sorgt dafür, dass die Änderungen ordnungsgemäß repliziert werden.
kopiert von http://www.rootsilver.com/2007/08/how-to-change-a-user-password
public static void ChangePassword(string userName, string oldPassword, string newPassword)
{
string path = "LDAP://CN=" + userName + ",CN=Users,DC=demo,DC=domain,DC=com";
//Instantiate a new DirectoryEntry using an administrator uid/pwd
//In real life, you'd store the admin uid/pwd elsewhere
DirectoryEntry directoryEntry = new DirectoryEntry(path, "administrator", "password");
try
{
directoryEntry.Invoke("ChangePassword", new object[]{oldPassword, newPassword});
}
catch (Exception ex) //TODO: catch a specific exception ! :)
{
Console.WriteLine(ex.Message);
}
Console.WriteLine("success");
}