问题描述
我登录到Active Directory,然后要使用Python ldap3库列出我自己的组成员身份。
server = Server('server.company.local',get_info=ALL)
conn = Connection(server,user="company\\user",password="password",authentication=NTLM,auto_bind=True)
print(conn.extend.standard.who_am_i())
此代码仅显示用户名(如whoami
cmd命令),但我想列出我的组(如whoami /groups
命令)。
不幸的是,我无权在域控制器上进行不同的搜索,这就是为什么(也许)以下代码返回空字符串的原因:
conn.search("dc=name,dc=company,dc=local","(&(sAMAccountName={}))".format("company\\myusername"),attributes=['memberOf'])
我如何像whoami /groups
一样列出自己的组成员身份?
解决方法
Active Directory通常允许所有经过身份验证的用户读取很多属性,包括memberOf。检查为您的搜索返回的记录数。我希望您通过该搜索找到零记录。 sAMAccountName值通常不包含“ company \”组件,而仅仅是“ myusername”。
,问题是我的搜索基础:我将"dc=name,dc=company,dc=local"
替换为"dc=company,dc=local"
,它很好用。