AD域建设管理(二)| python3+ldap3管理AD域实践(批量创建OU、用户、改密码、更新OU与用户)

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

最后更新: 2020/8/5
更新说明: 本文只写使用文档和截图说明;源码地址RandolphCYG / husky_ad ,当发现问题的时候,及时更新提代码;

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

本文章已经生成可运行项目
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值