Переместить объект в подразделение в Active Directory
Я хочу переместить объект компьютера в другое подразделение. Я подключен к другому домену и всегда получаю исключение типа ComException. "A referral was returned from the server"
и объект никогда не двигается!
try
{
//I get the exception here
computerObject.MoveTo(new DirectoryEntry("LDAP://OU=someOU,OU=parentOU,DC=test,DC=com"));
computerObject.CommitChanges();
}
catch (InvalidOperationException inOp)
{
//log
}
catch (COMException comEx)
{
//log
}
//joinPath.Close();
finally
{
computerObject.Close();
}
для устранения неполадок я немного изменил код, но опять же он не работает.
computerObject.MoveTo(new DirectoryEntry("LDAP://OU=someOU,OU=parentOU,DC=test,DC=com"),
"admin@test.com","somepassowrd",AuthenticationTypes.Secure));
новое исключение имеет тип ComException "Logon failure: unknown user name or bad password."
Я проверил, что в активном каталоге есть OU, и у меня достаточно разрешений.
Я следовал документам Microsoft здесь https://msdn.microsoft.com/en-us/library/ms180856(v=vs.90).aspx и множеству вопросов о переполнении стека.
Обновление: я запускаю свое приложение в одном домене и делаю изменения в другом домене, это может быть причиной проблемы
2 ответа
Я опубликовал свой код в том же домене, и он работал просто отлично
У вас есть лишние скобки в этом методе:
computerObject.MoveTo(new DirectoryEntry("LDAP://OU=someOU,OU=parentOU,DC=test,DC=com"),"admin@test.com","somepassowrd",AuthenticationTypes.Secure));
так должно быть
computerObject.MoveTo(new DirectoryEntry("LDAP://OU=someOU,OU=parentOU,DC=test,DC=com","admin@test.com", "somepassowrd", AuthenticationTypes.Secure));
Это, безусловно, объясняет исключение, я удивлен, что отладчик не уловил его, если вы не пишете это от руки, или, возможно, вы неправильно набрали его в своем вопросе?