将对象移动到Active Directory中的OU

时间:2015-09-02 05:34:26

标签: c# active-directory ldap directoryservices ou

我想将计算机对象移动到另一个OU,我连接到另一个域,并且我总是得到类型为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 和许多stackoverflow问题。

更新:我在一个域中运行我的应用程序并在另一个域中进行更改,这可能是导致问题的原因

2 个答案:

答案 0 :(得分:0)

我在同一个域中发布了我的代码,它运行得很好

答案 1 :(得分:0)

此方法中有一个额外的括号:

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));

这肯定会解释异常,我很惊讶你调试器没有抓住它,除非你是徒手写,或者你把它误输入你的问题?