LDAP-SQL查询LDAP管理员 - 搜索ObjectGUID

时间:2013-01-17 02:34:21

标签: sql active-directory

我正在使用LDAP Administrator 2013.1而我正在寻找对象GUID。

ObjectGUID{824582FD-5728-4C54-B699-D701D9D48196}

可以选择执行LDAP SQL查询

看起来很简单,但我无法让它发挥作用。

我的查询是:

SELECT $name 
FROM "OU=Workstations,OU=Vista,DC=lab,DC=local" 
WHERE $currentValue = '{824582FD-5728-4C54-B699-D701D9D48196}' PAGESIZE 2

我正在尝试输出ObjectGUID {824582FD-5728-4C54-B699-D701D9D48196}

的名称

我知道它就在那里,因为我手动查找了它......

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:6)

ObjectGUID是一种特殊的二进制类型,因此无法在尝试时直接使用字符串表示法查询。

以下是来自Joe Kaplan的a post在另一个介绍如何执行此操作的论坛:

  

...过滤字符串看起来像这样:

     

(objectGUID = \ BA \ EF \ 9F \ 88 \ DD \ E8 \ 5E \ 46 \ 9B \ F8 \ 0E \ 0C \ 4 1 \ 12 \ 9D \ 40)

     

对于此GUID:

     

889FEFBA-E8DD-465E-9BF8-0E0C41129D40

     

基本上,你需要获取你拥有的COM字符串GUID,   将其转换为二进制GUID,然后将该二进制数据转换为   八位字符串,每个二进制字节前缀为\,如上所示。

     

如果您需要帮助,可以发布一个小的.NET实用程序   在www.directoryprogramming.net的文件部分调用   GUIDConverter为您完成这些转换。

因此,您唯一缺少的部分是将GUID的字符串表示形式转换为二进制文件并正确格式化查询。字节数组序列是:

  

[3] [2] [1] [0] - [5] [4] - [7] [6] - [8] [9] - [10] [11] [12] [13] [14] [15]