Python 脚本同步 AD 域控账号密码 - 简单指南
以下是一个简单的 Python 脚本,可以将一个 AD 域控中的账号密码同步到另一个域控中:
import ldap
# 源 AD 域控连接信息
source_server = 'ldap://source.domain.com'
source_username = 'administrator@source.domain.com'
source_password = 'password'
# 目标 AD 域控连接信息
target_server = 'ldap://target.domain.com'
target_username = 'administrator@target.domain.com'
target_password = 'password'
# 源 AD 域控查询条件
source_base_dn = 'DC=source,DC=domain,DC=com'
source_filter = '(objectClass=user)'
source_attributes = ['sAMAccountName', 'userPassword']
# 目标 AD 域控修改条件
target_base_dn = 'DC=target,DC=domain,DC=com'
# 连接源 AD 域控
source_conn = ldap.initialize(source_server)
source_conn.simple_bind_s(source_username, source_password)
# 连接目标 AD 域控
target_conn = ldap.initialize(target_server)
target_conn.simple_bind_s(target_username, target_password)
# 查询源 AD 域控中的用户信息
result_id = source_conn.search(source_base_dn, ldap.SCOPE_SUBTREE, source_filter, source_attributes)
result_type, result_data = source_conn.result(result_id)
# 将用户信息同步到目标 AD 域控中
for dn, attrs in result_data:
sAMAccountName = attrs['sAMAccountName'][0]
userPassword = attrs['userPassword'][0]
target_conn.modify_s(dn, [(ldap.MOD_REPLACE, 'userPassword', [userPassword])])
# 关闭连接
source_conn.unbind_s()
target_conn.unbind_s()
使用说明:
- 修改脚本中的源 AD 域控连接信息,包括源域控服务器地址、管理员用户名和密码;
- 修改脚本中的目标 AD 域控连接信息,包括目标域控服务器地址、管理员用户名和密码;
- 修改源 AD 域控查询条件,包括基础 DN、过滤条件和要查询的属性;
- 修改目标 AD 域控修改条件,包括基础 DN;
- 运行脚本,将源 AD 域控中的用户的域密码同步到目标 AD 域控中。
注意:
- 该脚本只会将用户的域密码同步到目标 AD 域控中,不会同步其他属性信息。如果需要同步其他属性信息,需要修改脚本中的查询条件和修改条件。
- 为了确保安全性,建议使用管理员账号来运行该脚本。
- 在使用脚本之前,请确保已安装
ldap库,可以使用pip install ldap命令安装。
原文地址: https://www.cveoy.top/t/topic/ogur 著作权归作者所有。请勿转载和采集!