Я пытаюсь создать нового пользователя на своем сервере активных каталогов разработки, используя пространство имен .NET System.DirectoryServices.
Я пытаюсь использовать следующий код:
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();
Я такжепопытался совершить, используя
newUser.CommitChanges();
, прежде чем я вызову Invoke для установки пароля.Я всегда получаю обертку TargetInvocationException:
InnerException {"The RPC server is unavailable. (Exception from HRESULT: 0x800706BA)"} System.Exception {System.Runtime.InteropServices.COMException}
Исключение всегда выдается, только когда я вызываю
newUser.Invoke("SetPassword", new object[] {"2109password"} );
Если я вызываю newUser.CommitChanges (), прежде чем пытаться вызвать Invoke с SetPassword, новый пользователь создан в домене.Затем я могу вручную перейти к машине AD и установить тот же пароль без проблем (так что это не проблема, если строка пароля противоречит правилам).Я заметил много сообщений в Интернете об этом, но не нашел решения.
Я думаю, что это может быть связано с тем фактом, что машина, на которой выполняется код, не является членом домена.Хотя пользователь TESTDOM \ Administrator является членом групп: администраторы, администраторы домена, администраторы схемы и администраторы предприятия в домене TESTDOM.
Обратите внимание, что я не могу использовать пространство имен System.DirectoryServices.AccountManagement в качестве I 'я работаю с .NET 2 Любые идеи о том, что я могу сделать, чтобы решить эту проблему?Я в отчаянии