You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python的ms-active-directory库以计算机身份登录AD?

以计算机身份登录Active Directory的解决方案

核心问题说明

AD计算机账号的密码默认由系统自动维护(每30天轮换),手动创建的计算机账号初始密码是随机生成的,因此你无法直接用未知密码调用create_session_as_computer完成认证,会触发invalidCredentials错误。下面提供两种可行方案:测试环境下重置计算机密码,或通过程序自动创建并管理计算机账号。

方案一:测试环境重置计算机密码

先用管理员账号修改目标计算机的密码,再用新密码完成认证:

1. 用管理员会话修改计算机密码

from ms_active_directory import ADConnection

# 初始化管理员会话
admin_session = ADConnection.create_session_as_user(
    username='Administrator@yourdomain.com',
    password='YourAdminPassword',
    ldap_server='ldap://dc.yourdomain.com'
)

# 计算机对象的DN(根据你的实际OU路径调整)
computer_dn = 'CN=Tester,OU=Computers,DC=yourdomain,DC=com'
computer_obj = admin_session.get_object(computer_dn)

# 设置新密码:必须用双引号包裹,再转成UTF-16LE编码
new_computer_pwd = '"TestComputerPass123!"'
computer_obj.set_attribute('unicodePwd', new_computer_pwd.encode('utf-16-le'))
# 提交修改
computer_obj.commit()

2. 用新密码创建计算机会话

注意计算机账号的用户名需要以$结尾,或使用UPN格式:

computer_session = ADConnection.create_session_as_computer(
    computer_name='Tester$@yourdomain.com',
    password='TestComputerPass123!',
    ldap_server='ldap://dc.yourdomain.com'
)

# 验证会话有效性
print(computer_session.get_domain_info())

方案二:自动创建并管理计算机账号

通过管理员会话创建计算机账号时,ms-active-directory库会自动生成并维护密码,无需手动干预,适合自动化测试场景:

from ms_active_directory import ADConnection

# 管理员会话
admin_session = ADConnection.create_session_as_user(
    username='Administrator@yourdomain.com',
    password='YourAdminPassword',
    ldap_server='ldap://dc.yourdomain.com'
)

# 在指定OU下创建计算机账号
computer_account = admin_session.create_computer_account(
    computer_name='AutoTester',
    ou_dn='OU=Computers,DC=yourdomain,DC=com'
)

# 直接用生成的账号对象创建会话
computer_session = computer_account.create_session()

# 验证会话
print(computer_session.get_domain_info())

额外测试优化(可选)

如果不想频繁处理密码轮换,可在测试域中修改计算机密码策略:将计算机账号的密码有效期设为0(永不过期),避免自动轮换。此操作仅适合测试环境,生产环境请勿修改默认策略。

内容的提问来源于stack exchange,提问作者NumeroUnoDE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 11:47:50