关于管理AD域控的Python pyad库的用法

pyad是一个用于管理MicrosoftActiveDirectory的Python库,提供了API接口操作用户、组和计算机等对象。安装pyad和pywin32后,可以连接AD,通过Python对象进行查询、属性修改、密码变更、账户启用/禁用等操作。
摘要由CSDN通过智能技术生成

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"))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值