四.AD域中添加用户

        添加用户的方法比较简单,但用户的属性配置比较难找。

        这里配置了新建用户时,属性-常规中的姓,名,英文缩写,显示名称,描述;

        属性-账户中的登录名,密码,密码永不过期,下次登录须修改密码;

        属性-隶属于中的组。

1.新建添加用户入参实体

public class ADUserDto
    {
        /// <summary>
        /// 登录名
        /// </summary>
        public string UserName { get; set; }
        /// <summary>
        /// 密码
        /// </summary>
        public string UserPwd { get; set; }
        /// <summary>
        /// 姓
        /// </summary>
        public string FirstName { get; set; }
        /// <summary>
        /// 名
        /// </summary>
        public string LastName { get; set; }
        /// <summary>
        /// 英文缩写
        /// </summary>
        public string Initials { get; set; }
        /// <summary>
        /// 显示名称
        /// </summary>
        public string DisplayName { get; set; }
        /// <summary>
        /// 描述
        /// </summary>
        public string Description { get; set; }
        /// <summary>
        /// 密码永不过期
        /// </summary>
        public bool NeverExpires { get; set; }
        /// <summary>
        /// 下次登录须修改密码
        /// </summary>
        public bool NextLogonChangePsw { get; set; }
        /// <summary>
        /// 是否启用
        /// </summary>
        public bool IsEnable { get; set; }
        /// <summary>
        /// 路径名称
        /// </summary>
        public string PathName { get; set; }
        /// <summary>
        /// 路径类型
        /// </summary>
        public string PathType { get; set; }
        /// <summary>
        /// 组名
        /// </summary>
        public string[] GroupName { get; set; }

    }

2.新建添加用户方法

#region 添加AD用户
        /// <summary>
        /// 添加AD用户
        /// </summary>
        /// <param name="dto">ADUserDto</param>
        /// <returns></returns>
        public async Task<JsonView> AddUser(ADUserDto dto)
        {
            var result = new JsonView();

            using (DirectoryEntry entry = operateADHelper.IsConnected())
            {
                try
                {
                    if (dto.NeverExpires == true && dto.NextLogonChangePsw == true)
                    {
                        result.Code = 1;
                        result.Msg = "你选择了密码永不过期,下次登陆时无需更改密码";
                        return result;
                    }
                    if (dto.UserName.Any() && dto.UserPwd.Any())
                    {
                        string DisplayName;//显示名称
                        if (dto.DisplayName.Any())
                        {
                            DisplayName = dto.DisplayName;
                        }
                        else if (dto.FirstName.Any() || dto.LastName.Any() || dto.Initials.Any())
                        {
                            DisplayName = dto.FirstName + dto.LastName + dto.Initials;
                        }
                        else
                        {
                            DisplayName = dto.UserName;
                        }
                        //通过参数PathName(PathName你想在哪级目录下添加用户的目录名称)查询路径
                        string Path = "";
                        if (dto.PathName.Any() && dto.PathType.Any())
                        {
                            Path = "," + GetEntryPath(dto.PathName, dto.PathType);//获取路径
                        }
                        //增加账户到域中
                        string UserPath = "CN=" + DisplayName + Path;
                        DirectoryEntry NewUser = entry.Children.Add(UserPath, "user");
                        NewUser.Properties["sAMAccountName"].Add(dto.UserName); //存储帐户名 与登录名保持一致
                        NewUser.Properties["userPrincipalName"].Value = dto.UserName; //登录名
                        if (dto.FirstName.Any())
                            NewUser.Properties["sn"].Value = dto.FirstName;//姓
                        if (dto.LastName.Any())
                            NewUser.Properties["givenName"].Value = dto.LastName;//名
                        if (dto.Initials.Any())
                            NewUser.Properties["initials"].Value = dto.Initials;//英文缩写
                        if (dto.DisplayName.Any())
                            NewUser.Properties["displayName"].Value = DisplayName;//显示名称
                        if (dto.Description.Any())
                            NewUser.Properties["description"].Value = dto.Description;//描述
                        NewUser.CommitChanges();
                        //设置密码
                        NewUser.Invoke("SetPassword", new object[] { dto.UserPwd });
                        if (dto.GroupName.Any())
                        {
                            foreach (var name in dto.GroupName)
                            {
                                string GroupPath = GetEntryPath(name,"group");
                                if (GroupPath.Any())
                                {
                                    DirectoryEntry group = entry.Children.Find(GroupPath, "Group");//
                                    group.Properties["member"].Add(NewUser.Properties["distinguishedName"].Value);//将用户添加到用户组里
                                    group.CommitChanges();
                                }
                                else
                                {
                                    //await DelUser(dto.UserName);//删除用户
                                    result.Code = 1;
                                    result.Msg = "用户添加失败,未找到该用户组请检查用户组名称";
                                    return result;
                                }
                            }
                        }
                        //必须按照在用户计算机目录的操作先设置密码再设置userAccountControl属性
                        if (dto.NextLogonChangePsw == true)
                        {
                            NewUser.Properties["pwdLastSet"].Value = 0;//用户下次登陆时需修改密码
                        }
                        int userAccountControl = 0;//userAccountControl多个属性
                        if (dto.NeverExpires == true && dto.NextLogonChangePsw == false)
                        {
                            userAccountControl = userAccountControl + (int)ADUserEnum.ADS_UF_DONT_EXPIRE_PASSWD;//密码永不过期
                        }
                        if (dto.IsEnable == true)
                        {
                            userAccountControl = userAccountControl + (int)ADUserEnum.NORMAL_ACCOUNT;//启用账户
                        }
                        if (dto.IsEnable == false)
                        {
                            userAccountControl = userAccountControl + (int)ADUserEnum.ADS_UF_ACCOUNTDISABLE;//禁用账户
                        }
                        NewUser.Properties["userAccountControl"].Value = userAccountControl;
                        NewUser.CommitChanges();
                        result.Code = 0;
                        result.Msg = "用户添加成功";
                        return result;
                        }
                    else
                    {
                        await DelUser(dto.UserName);//删除用户
                        result.Code = 1;
                        result.Msg = "用户添加失败,用户名称和密码不能为空";
                        return result;
                    }
                }
                catch (DirectoryServicesCOMException ex)
                {
                    await DelUser(dto.UserName);//删除用户
                    result.Code = 1;
                    result.Msg = "用户添加失败," + ex.Message.ToString();
                    return result;
                }
            }
        }
        #endregion

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你可以按照以下步骤搭建一个AD添加用户: 1. 安装虚拟机软件:首先,你需要安装一款虚拟机软件,比如VMware Workstation或者VirtualBox。安装完成后,启动虚拟机软件。 2. 下载Windows Server镜像:从Microsoft官方网站下载Windows Server的镜像文件。选择适合你的需求的版本,比如Windows Server 2016或者Windows Server 2019。 3. 创建虚拟机:在虚拟机软件创建一个新的虚拟机。在创建过程,选择刚才下载的Windows Server镜像文件作为虚拟机的操作系统。 4. 配置虚拟机:为虚拟机分配足够的内存、硬盘空间和处理器资源。你还可以配置网络连接和其他相关设置。 5. 安装Windows Server:启动虚拟机并按照Windows Server的安装向导进行安装。在安装过程,设置管理员账户和密码等相关信息。 6. 添加Active Directory角色:安装完成后,打开Server Manager并选择“添加角色和功能”。在向导选择“Active Directory服务”,并完成安装。 7. 创建新的AD:在配置向导,选择“新建林”,然后输入名称和相关选项。设置控制器名称和其他相关配置。 8. 完成安装:按照向导的指示完成安装过程。一旦安装完成,你的虚拟机将成为一个控制器。 9. 创建用户:打开Active Directory用户和计算机,选择合适的组织单位(OU),右键点击并选择“新建”->“用户”。输入用户信息,比如用户名、密码等。 10. 配置用户属性:右键点击新创建的用户,选择“属性”,在属性窗口可以配置用户的详细信息,比如名称、部门、电子邮件等。 这样,你就成功搭建了一个AD添加用户。你可以重复步骤9和10来创建更多的用户

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值