费好好几个小时,才把这个功能调通。关键一点就是新建用户后,先提交。然后再启用帐号,再提交。
代码如下:
/// <summary>
/// 创建AD帐号,并且启用帐号
/// </summary>
/// <param name="orgLDAPPath"></param>
/// <param name="chsName"></param>
public static void CreateADUserSample(string orgLDAPPath, string chsName)
{
using (DirectoryEntry entry = ADHelper.GetDirectoryObject(orgLDAPPath))
{
DirectoryEntry deUser = entry.Children.Add("CN=" + chsName, "user");
deUser.Properties["sAMAccountName"].Value = "testUser001";
//string DoMain = GetDoMainNameByLDAPPath(entry.Path);
deUser.Properties["userPrincipalName"].Value = "testUser001@edsdev.com";
deUser.Properties["displayName"].Value = chsName;
deUser.Properties["sn"].Value = chsName;
deUser.Properties["givenName"].Value = chsName;
deUser.CommitChanges();
int val = (int)deUser.Properties["userAccountControl"].Value;
int val2 = ~(int)ADHelper.ADS_USER_FLAG_ENUM.ADS_UF_ACCOUNTDISABLE;
deUser.Properties["userAccountControl"].Value = val & val2;
deUser.CommitChanges();
}
}
/// 创建AD帐号,并且启用帐号
/// </summary>
/// <param name="orgLDAPPath"></param>
/// <param name="chsName"></param>
public static void CreateADUserSample(string orgLDAPPath, string chsName)
{
using (DirectoryEntry entry = ADHelper.GetDirectoryObject(orgLDAPPath))
{
DirectoryEntry deUser = entry.Children.Add("CN=" + chsName, "user");
deUser.Properties["sAMAccountName"].Value = "testUser001";
//string DoMain = GetDoMainNameByLDAPPath(entry.Path);
deUser.Properties["userPrincipalName"].Value = "testUser001@edsdev.com";
deUser.Properties["displayName"].Value = chsName;
deUser.Properties["sn"].Value = chsName;
deUser.Properties["givenName"].Value = chsName;
deUser.CommitChanges();
int val = (int)deUser.Properties["userAccountControl"].Value;
int val2 = ~(int)ADHelper.ADS_USER_FLAG_ENUM.ADS_UF_ACCOUNTDISABLE;
deUser.Properties["userAccountControl"].Value = val & val2;
deUser.CommitChanges();
}
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步