Ich versuche, einen neuen Benutzer auf meiner Entwicklung Active Directory Server mit .NET System.DirectoryServices-Namespace zu erstellen.
Ich versuche es mit folgendem Code:
DirectoryEntry dirEntry = new DirectoryEntry(path, "TESTDOM\\Administrator", "2109password", AuthenticationTypes.Secure | AuthenticationTypes.ServerBind);
object o = dirEntry.NativeObject;
DirectoryEntry newUser = dirEntry.Children.Add("CN=NewUser4", "user");
newUser.Properties["samAccountName"].Value = "NewUser4";
newUser.Properties["Description"].Add("User Description");
newUser.Invoke("SetPassword", new object[] {"2109password"} );
newUser.CommitChanges();
Ich habe auch versucht, mit
newUser.CommitChanges();
bevor ich Invoke aufrufe, um das Kennwort festzulegen. Ich erhalte immer eine TargetInvocationException Wrapping:
InnerException {"The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)"} System.Exception {System.Runtime.InteropServices.COMException}
Die Ausnahme wird immer nur dann ausgelöst, wenn ich die
newUser.Invoke("SetPassword", new object[] {"2109password"} );
Wenn ich newUser.CommitChanges() aufrufe, bevor ich versuche, Invoke mit SetPassword aufzurufen, wird der neue Benutzer in der Domäne erstellt. Ich kann dann manuell zum AD-Rechner gehen und das gleiche Kennwort ohne Probleme festlegen (es ist also kein Problem mit der Kennwortzeichenfolge, die gegen die Regeln verstößt). Ich habe im Internet viele Beiträge zu diesem Thema gelesen, aber keine Lösung gefunden.
Ich denke, es könnte etwas damit zu tun haben, dass der Rechner, auf dem der Code ausgeführt wird, kein Mitglied der Domäne ist. Obwohl der Benutzer TESTDOM \Administrator ist Mitglied der Gruppen: Administratoren, Domänenadministratoren, Schemaadministratoren und Unternehmensadministratoren in der TESTDOM-Domäne.
Beachten Sie, dass ich nicht System.DirectoryServices.AccountManagement Namespace verwenden können, wie ich mit .NET 2 arbeiten Haben Sie eine Idee, was ich tun kann, um dieses Problem zu lösen? Ich bin verzweifelt