2013-01-17 65 views
0

我正在使用LDAP管理員2013.1,並且正在查找對象GUID。LDAP-SQL查詢LDAP管理員 - 搜索ObjectGUID

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}

的名字我知道,那是因爲我手動看着它......

謝謝提前尋求你的幫助。

回答

6

ObjectGUID是一種特殊的二進制類型,因此無法直接使用字符串表示法查詢,因爲您正在嘗試。

這裏的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,然後將該二進制數據轉換爲一個 八位字符串,每個二進制字節前綴爲\,如上所示。

如果您需要幫助,請在www.directoryprogramming.net的文件部分發佈一個名爲 的小型.NET實用程序,該實用程序名爲 GUIDConverter爲您執行這些轉換。

因此,您唯一缺少的部分是將GUID的字符串表示形式轉換爲二進制並正確地格式化查詢。字節數組的順序是:

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

+0

謝謝,我會試試看。 –

+0

有趣的是,從vbscript開始,guid就像可以看到的可讀字符串一樣。與ADExplorer.exe。當我使用.NET AD類時,我會從上面的Gregg中獲得。謝謝你澄清這一點。也幫助了我。 – YvesR