我正在尝试创建一个新用户-> 设置密码并启用帐户。
早些时候我使用 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();
}
我必须提到,我在域外,并试图连接到另一个域上的远程 AD 。然而,通过的凭证是ADMIN
用户创建顺利进行(在端口打开和 LDAP 连接出现一些小问题之后),但是在调用 invoke ->setpassword 时会出现问题。
错误是:“RPC 服务器不可用”,只是为了确保我的代码没有做错,我下载了一个 LDAP 管理工具并尝试重置现有用户的密码 -> 相同的错误
步骤 - 检查 RPC 服务正在运行 - 打开 RPC 端口 -135,等等等等..基本上每个端口都可以打开:|
任何帮助表示赞赏。
谢谢拉贾特