C# LDAP SetPassword 抛出 RPC 服务器不可用

Raj*_*jee 5 active-directory ldapconnection c#-4.0

我正在尝试创建一个新用户 -> 设置密码并启用帐户。

早些时候我使用了 1 个单一对象,但在查看了一些帖子后,我决定将“使用”用于 3 种不同的操作

        string strDisplayName = txtFirstName.Text + " " + txtLastName.Text;
        string strUser = txtLoginName.Text;

        string pw = "pass@123";


        using (var objADAM = new DirectoryEntry("LDAP://" + adlink + "/CN=Users,DC=SS,DC=COM", "ss\\luser", "pass@123", AuthenticationTypes.Secure))
        {


            const long ADS_OPTION_PASSWORD_PORTNUMBER = 6;
            const long ADS_OPTION_PASSWORD_METHOD = 7;

            const int ADS_PASSWORD_ENCODE_CLEAR = 1;
            string strPort = "389";
            int intPort = Int32.Parse(strPort);

            using (var objUser = objADAM.Children.Add("CN=" + strUser, "user"))
            {
                objUser.Properties["sAMAccountName"].Add(strUser);
                objUser.CommitChanges();
            }
        }

        using (var user = new DirectoryEntry("LDAP://" + adlink + "/CN=" + strUser + ",CN=Users,DC=SS,DC=COM", "ss\\rluser", "pass@123"))
        {
            user.Invoke("SetPassword", new object[] { "password" });
            user.CommitChanges();
        }



        using (var user = new DirectoryEntry("LDAP://" + adlink + "/CN=" + strUser + ",CN=Users,DC=SS,DC=COM", "ss\\rluser", "pass@123"))
        {

            //Enable account and change password on first logon flag
            user.Properties["userAccountControl"].Value = 0x200;
            user.Properties["pwdLastSet"].Value = 0;
            user.CommitChanges();

        }
Run Code Online (Sandbox Code Playgroud)

我必须提到,我在域之外,并试图连接到另一个域上的远程 AD。但是,通过的凭据是ADMIN

用户创建顺利进行(在端口打开和 LDAP 连接出现一些问题之后),但在调用 invoke ->setpassword 时会出现问题。

错误是:“RPC 服务器不可用”,只是为了确保我的代码没有做错,我下载了一个 LDAP 管理工具并尝试重置现有用户的密码 -> 相同的错误

步骤 - 检查正在运行的 RPC 服务 - 打开 RPC 端口 -135,等等……基本上每个端口都可以打开:|

任何帮助表示赞赏。

谢谢拉贾特

VnD*_*vil 0

使用adlink是字符串域,因为AD方法调用使用域名:“abc.com”