Python官方文档:pyad · PyPI
完整的文档:https://zakird.github.io/pyad/
pyad 是一个Python库,用于管理Microsoft Active Directory(AD)。它提供了一组API来对用户、组、计算机等对象进行操作,并与AD交互。下面是如何使用pyad的详细介绍: 安装 可以通过pip安装pyad: pip install pyad 同时还需要安装pywin32: pip install pywin32 注意:pywin32库还需要满足几个前置条件,例如Visual C++ 14.0等。 连接AD 在开始使用库之前,需要连接到 AD。可以使用以下代码创建连接: python from pyad import aduser, adobject, pyad pyad.set_defaults(ldap_server="dc.example.com", username="my_username@example.com", password="my_password") 这里设置了默认的LDAP服务器、用户名和密码,以便后面的操作。 操作AD对象 pyad支持将AD对象表示为Python对象 (e.g. ADUser, ADGroup),并使用相应的方法访问和修改其属性。这些属性基本上是AD架构中定义的属性及其值。 以下是一些示例操作: 查询AD对象 python # 根据Distinguished Name (DN) 查询用户 user = aduser.ADUser.from_dn("CN=testuser,OU=users,DC=example,DC=com") # 根据sAMAccountName查找用户 user2 = aduser.ADUser.from_cn("testuser") # 查询特定组 group = adgroup.ADGroup.from_dn("OU=groups,DC=example,DC=com") 操作AD对象属性 python # 读取属性值 print(user.get_attribute("givenName")) # 写入属性值 user.update_attribute("givenName", "John") 操作用户对象 python # 更改密码 user.set_password("new_password123") # 禁用帐户 user.disable() # 启用帐户 user.enable()
其它操作详细见官方文档
补充:
from pyad import * # 经过身份验证并返回根节点 root = pyad.from_cn("DC=mydomain,DC=com") # 获取'Users' OU ou = root.get_children(filter='(objectCategory=organizationalUnit)')[0] # 获取名为“John Doe”的用户 user = pyad.get_user(name='John Doe', ou=ou) # 从标准属性列表中搜索用户 users = pyad.search_object( {"objectCategory": "person", "objectClass": "user", "cn": "John Doe" } ) # 搜索所有不活动的用户,访问时间超过90天。 users = pyad.search_object( { "objectCategory": "person", "objectClass": "user", "lastLogonTimestamp__lt": (datetime.now() - timedelta(days=90)) } )
##创建用户 方法一: from pyad import * # 在'Users' OU中创建一个名为“myuser”的新用户 ou = pyad.adcontainer.ADContainer.from_dn("OU=New Users,DC=mydomain,DC=com") new_user = pyad.aduser.ADUser.create( 'myuser', ou, password="password" )
##创建用户 方法二: 1.导入需要使用的模块 import win32com.client from pyad import * 2.链接Active Directory pyad.set_defaults(ldap_server="<AD server ip address>") 3.绑定管理员账号 ou = pyad.adcontainer.ADContainer.from_dn("ou=developer,dc=example,dc=com") pyad.set_user_creds("<admin username>", "<admin password>", ldap_server="<AD server ip address>") ou.get_children() 4.执行创建用户操作 # 定义新用户属性 new_user = pyad.aduser.ADUser.create( userName="example01", firstName="Test", lastName="User", password="Example123", optional_attributes={ 'description':'This is a test user account', 'department': 'IT', 'mail': 'example01@example.com' }, container_object=ou ) 在这里,我们指定了新用户名、姓氏、名字和密码,还为用户提供了其他可选属性。同时还必须将container_object参数设置为我们定义新用户的组织单位对象。 5.验证用户是否创建成功 # 查找创建的用户是否存在于指定组织单位中 for obj in ou.get_children(): print(obj.get_attribute("sAMAccountName"))