You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决ldapsearch中ObjectSid=*-500无法查询管理员账户的问题?

LDAP查询管理员账户:ObjectSid通配符失效的解决方法及替代方案

问题原因

ObjectSid是LDAP中的二进制属性,并非字符串属性。直接使用ObjectSID=*500或ObjectSID=*-500这类通配符查询时,LDAP服务器会按二进制字节而非其字符串表示(如S-1-5-21-xxxx-xxxx-xxxx-500)进行匹配,导致无法匹配到目标账户。

有效解决方法

1. 利用匹配规则按SID字符串后缀查询

通过指定LDAP匹配规则,强制服务器按ObjectSid的字符串形式进行后缀匹配,命令示例:

ldapsearch -x -H ldap://dc.example.com -b "dc=example,dc=com" "(objectSid:dn:2.5.13.15:=*500)"
  • dn:2.5.13.15:指定使用MATCHING_RULE_SUBSTRING规则,基于属性的显示字符串(即SID的文本形式)进行子串匹配。

2. 直接匹配RID的二进制值

管理员账户的RID(相对标识符)固定为500(十六进制为0x000001F4),可通过按位与匹配规则定位:

ldapsearch -x -H ldap://dc.example.com -b "dc=example,dc=com" "(objectSid:1.2.840.113556.1.4.804:=0x000001F4)"
  • 1.2.840.113556.1.4.804:LDAP_MATCH_RULE_BIT_AND规则,用于匹配二进制属性的特定位段(此处匹配SID的最后4字节RID)。

替代查询方法

除了通过ObjectSid,还有以下更直接的方式定位管理员账户:

  • 查询受保护管理账户:AD中默认管理员账户会被标记adminCount=1,命令:

    ldapsearch -x -H ldap://dc.example.com -b "dc=example,dc=com" "(adminCount=1)"
    
  • 查询默认管理员账户名:直接匹配samAccountName(注意部分环境可能修改默认名称):

    ldapsearch -x -H ldap://dc.example.com -b "dc=example,dc=com" "(samAccountName=Administrator)"
    
  • 查询域管理员组成员:通过memberOf匹配域管理员组:

    ldapsearch -x -H ldap://dc.example.com -b "dc=example,dc=com" "(memberOf=CN=Domain Admins,CN=Users,DC=example,DC=com)"
    

内容的提问来源于stack exchange,提问作者DrewB

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 22:30:29