LDAP 查询以从 SID 获取帐户名

LDAP query to get account name from SID

所以我有一个 SIDFSP: S-1-5-21-2127521184-1604012920-1887927527-72713

翻译有效 in powershell but I would like to do the ldap query by myself, like here,但在正确 SID 转换时遇到了一些麻烦。

你能帮我查询根据SID给我一个相应的账户名吗?

您可以使用 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>"

如果您有 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 表示的用户完成。