python查询ad域用户名_python :通过Ldap 3 模块查询AD 组和 AD 用户名单

本文介绍了一个Python类`Operate_AD`,该类利用Ldap 3模块连接到AD域并查询用户及组信息。通过设置`Get_All_UserInfo`方法查询所有用户,而`Get_All_GroupInfo`方法则用于获取所有组信息。查询结果通过遍历连接对象的entries属性返回。微软的search_filter语法链接提供了更多关于过滤条件的信息。
摘要由CSDN通过智能技术生成

定义一个类用于操作AD

class Operate_AD():

def init(self,Domain,User,Password):

self.domain=Domain

self.user=User

self.pwd=Password

self.DC=‘,‘.join([‘DC=‘ + dc for dc in Domain.split(‘.‘)])

self.pre = Domain.split(‘.‘)[0].upper()

self.server = Server(self.domain, use_ssl=True,get_info=ALL)

self.conn = Connection(self.server, user=self.pre+‘\‘+self.user, password=self.pwd, auto_bind=True)

def Get_All_UserInfo(self):

‘‘‘

查询组织下的用户

org: 组织,格式为:aaa.bbb 即bbb组织下的aaa组织,不包含域地址

‘‘‘

att_list = [‘displayName‘, ‘userPrincipalName‘,‘userAccountControl‘,‘sAMAccountName‘,‘pwdLastSet‘]

# org_base = ‘,‘.join([‘OU=‘ + ou for ou in org.split(‘.‘)]) + ‘,‘ + self.DC

res = self.conn.search(search_base=self.DC,search_filter=‘((objectclass=person))‘,attributes=att_list, paged_size=100,search_scope=‘SUBTREE‘)

if res:

for users in self.conn.entries:

yield users

else:

print(‘查询失败: ‘, self.conn.result[‘description‘])

return None

def Get_All_GroupInfo(self):

‘‘‘

查询组织下的用户

org: 组织,格式为:aaa.bbb 即bbb组织下的aaa组织,不包含域地址

‘‘‘

att_list = [‘cn‘,‘member‘,‘objectClass‘,‘userAccountControl‘,‘sAMAccountName‘,‘description‘]

# org_base = ‘,‘.join([‘OU=‘ + ou for ou in org.split(‘.‘)]) + ‘,‘ + self.DC

res = self.conn.search(search_base=self.DC,search_filter=‘(objectclass=group)‘,attributes=att_list, paged_size=10,search_scope=‘SUBTREE‘)

if res:

for group in self.conn.entries:

yield group

else:

print(‘查询失败: ‘, self.conn.result[‘description‘])

return None

if __name__ == ‘__main__‘:

act=Operate_AD(‘demo.com‘,‘testaccount‘,‘testpassword‘)

for user in act.Get_All_UserInfo():

print(user)

# for group in act.Get_All_GroupInfo():

# print(group)

备注: 微软search_filter 语法

https://docs.microsoft.com/en-us/windows/win32/adsi/search-filter-syntax

原文:https://blog.51cto.com/unicom/2421224

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值