要实现这个需求,你可以使用以下步骤:

  1. 连接到 AD1 域控,并获取用户和密码信息。
  2. 将用户和密码信息保存到 tmp.txt 文件中。
  3. 连接到 AD2 域控,并读取 tmp.txt 文件中的用户和密码信息。
  4. 将用户和密码信息更新到 AD2 域控中。

下面是一个示例代码,用于连接域控并实现上述功能:

import csv
import ldap

# 连接到 AD1 域控
ad1_server = 'ad1.example.com'
ad1_username = 'admin'
ad1_password = 'password'

ad1_conn = ldap.initialize(f'ldap://{ad1_server}')
ad1_conn.simple_bind_s(ad1_username, ad1_password)

# 获取 AD1 域控中的用户和密码信息
base_dn = 'dc=example,dc=com'
filter_str = '(objectClass=user)'
attributes = ['sAMAccountName', 'userPassword']

result = ad1_conn.search_s(base_dn, ldap.SCOPE_SUBTREE, filter_str, attributes)
users = []
for dn, entry in result:
    username = entry.get('sAMAccountName')[0].decode()
    password = entry.get('userPassword')[0].decode()
    users.append({'username': username, 'password': password})

# 保存用户和密码信息到 tmp.txt 文件
with open('tmp.txt', 'w', newline='') as file:
    writer = csv.DictWriter(file, fieldnames=['username', 'password'])
    writer.writeheader()
    writer.writerows(users)

ad1_conn.unbind()

# 连接到 AD2 域控
ad2_server = 'ad2.example.com'
ad2_username = 'admin'
ad2_password = 'password'

ad2_conn = ldap.initialize(f'ldap://{ad2_server}')
ad2_conn.simple_bind_s(ad2_username, ad2_password)

# 从 tmp.txt 文件中读取用户和密码信息,并更新到 AD2 域控
with open('tmp.txt', 'r') as file:
    reader = csv.DictReader(file)
    for row in reader:
        username = row['username']
        password = row['password']

        ad2_conn.modify_s(f'cn={username},ou=Users,dc=example,dc=com', [(ldap.MOD_REPLACE, 'userPassword', password)])

ad2_conn.unbind()

请根据实际情况修改代码中的域控服务器地址、用户名、密码、Base DN等信息,并确保已安装 python-ldap 库。

Python 脚本:从 AD1 域控制器复制用户和密码到 AD2

原文地址: https://www.cveoy.top/t/topic/b58P 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录