0

我正在使用 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}

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

在此先感谢您的帮助。

4

1 回答 1

6

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

这是Joe Kaplan 在另一个论坛上的帖子,描述了如何执行此操作:

...过滤器字符串如下所示:

(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,然后将该二进制数据转换为八位字节字符串,每个二进制字节都以 \ 为前缀,如上所示。

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

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

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

于 2013-01-17T14:20:47.840 回答