LDAP查询从SID获取帐户名称

时间:2018-04-30 13:16:47

标签: active-directory ldap ldap-query

所以我有一个SID FSPS-1-5-21-2127521184-1604012920-1887927527-72713

翻译工作in powershell但我想自己做ldap查询,例如here,但在正确的SID转换方面遇到一些麻烦。

您是否可以根据SID为我提供相应帐户名称的查询?

2 个答案:

答案 0 :(得分:1)

您可以使用LDAP://<SID=S-1-5-21-2127521184-1604012920-1887927527-72713>使用SID直接绑定到对象。然后在那之后获取用户名。

在PowerShell中,它看起来像:

$account = [adsi]"LDAP://<SID=S-1-5-21-2127521184-1604012920-1887927527-72713>"
$username = $account.Properties["sAMAccountName"]

如果您运行此计算机的计算机所在的域与该帐户不同,则可能必须指定该域:

$account = [adsi]"LDAP://domain.com/<SID=S-1-5-21-2127521184-1604012920-1887927527-72713>"

答案 1 :(得分:1)

如果您有Java可用,则可以直接查询ObjectSID。

我们显示Example with code

我可以使用像:

这样的ldapsearch
ldapsearch -h example.net -D "EXAMPLE\myID" -b "OU=Accounts,DC=EXAMPLE,DC=NET" -s sub -a search -z 1000 "(ObjectSID=S-1-5-21-333675845-1535931152-1111140340-22234762)" "objectClass"

获得结果。

# extended LDIF
# LDAPv3
# base <OU=Accounts,DC=EXAMPLE,DC=NET> with scope subtree
# filter: (ObjectSID=S-1-5-21-333675845-1535931152-1111140340-22234762)
# requesting: objectClass samAccountName
#
# userid, sales, Accounts, EXAMPLE.NET
dn: CN=userid,OU=sales,OU=Accounts,DC=EXAMPLE,DC=NET
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
sAMAccountName: userid
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1

此搜索是从Linux机器完成的,由未由ObjectSID表示的用户完成。