我在共享Windows服务器上有一个用户的SID字符串(例如,“ S-1-5-21-500000003-1000000000-1000000003-1001”),我需要获取相关的用户名。
我想这可以通过以下方式实现:
1)将SID字符串转换为字节数组。
2)使用合适的ldpa查询来获取相关的用户名。
但是我没有找到确切的,可靠的方法说明(以这种方式或其他方式)。
我将不胜感激任何有用的指南,特别是如果它带有演示Python(ldap3)代码。
谢谢!
最佳答案
您必须具有二进制格式的SID,然后尝试:
from ldap3 import Server, Connection, ALL
from ldap3.utils.conv import escape_bytes
s = Server('my_server', get_info=ALL)
c = Connection(s, 'my_user', 'my_password')
c.bind()
binary_sid = b'....' # your sid must be in binary format
c.search('my_base', '(objectsid=' + escape_bytes(binary_sid) + ')', attributes=['objectsid', 'samaccountname'])
print(c.entries)
您应该在c.entries [0] .sAMAccountName中获得帐户名