AD域建设管理(二)| python3+ldap3管理AD域实践(批量创建OU、用户、改密码、更新OU与用户)
最后更新: 2020/8/5
更新说明: 本文只写使用文档和截图说明;源码地址: RandolphCYG / husky_ad ,当发现问题的时候,及时更新提代码;
- AD域建设管理(一)| 安装windows server2019、AD域、AD域证书服务
- AD域建设管理(二)| python3+ldap3管理AD域实践(批量创建OU、用户、改密码、更新OU与用户)
- AD域建设管理(三)| AD域实践(用remoteapp修改初始化密码)
- AD域建设管理(四)| AD域实践(win server2019 RemoteApp前端修改与美化
1.使用前提
1.1.关于程序运行环境
这里是主要的python炸药包及介绍,后面会优化安装方式
| 项目 | 描述 |
|---|---|
| python3 | 主要后端开发语言 |
| ldap3 | 是一个十分优秀且稳健的对active directory域进行管理的炸药包 |
| pandas | 代替python的原生文件读取包,提高处理效率 |
| winrm | 用来远程连接windows server执行powershell命令 |
1.2.关于AD域的准备和配置
【注意】本文均启用ssl安全连接AD域,需要先安装AD证书服务;
如果还没来得及安装AD证书服务,需要将程序中use_ssl参数改成use_ssl=False,但此时建立的ldap连接不可以做修改密码操作(未做判断);
很多博客讲的是LDAP3的CAUD基本操作,而我作为一个实践过上线了的AD域的实践者,会偏向于总结从无到有的整个经历的过程;
2.问题和解决方案
2.1.安全考虑——防止对象被意外删除
- 位置:
ADSI编辑器>OU右键属性>对象>防止对象被意外删除 - 作用:勾选之后,不可直接将该对象删除,默认不启用
为了保证生产服AD域的组织架构的安全性,需要严格控制OU的是否可以直接被删除的属性;
最初做的时候,是想批量生成多级OU,然后在AD服务器打开powershell执行一下几条命令设置防止对象被意外删除属性;
后面为了简化操作,使用python的winrm炸药包远程连接AD域服务器并执行powershell命令;

- 启用(勾选):
# 启用ActiveDirectory模块
Import-Module ActiveDirectory
# 查询没有启用对象被意外删除的OU
Get-ADOrganizationalUnit -filter * -Properties ProtectedFromAccidentalDeletion | where {$_.ProtectedFromAccidentalDeletion -eq $false} | ft
# 查询没有启用 对象被意外删除的OU 属性,并设置为启用
Get-ADOrganizationalUnit -filter * -Properties ProtectedFromAccidentalDeletion | where {$_.ProtectedFromAccidentalDeletion -eq $false} |Set-ADOrganizationalUnit -ProtectedFromAccidentalDeletion $true

本文详细介绍使用Python和ldap3库管理AD域的实践经验,包括批量创建OU、用户、修改密码及更新策略,解决安全问题,如防止对象意外删除和密码管理。
2357

被折叠的 条评论
为什么被折叠?



