使用Windows 2016伺服器,如何透過LDAP查詢其回收站?該垃圾箱處於活動狀態,根據 AD 管理中心的說法,目前包含我昨天刪除的兩個 OU。透過眾所周知的對象, AD 給出的 bin 位置為cn=Deleted Objects,dc=example,dc=com
。
但是,當我查詢該 DN 時objectClass=*
,沒有傳回任何條目:
# extended LDIF
#
# LDAPv3
# base <CN=Deleted Objects,DC=example,DC=com> with scope subtree
# filter: (objectClass=*)
# requesting: ALL
#
# search result
search: 5
result: 32 No such object
matchedDN: CN=Deleted Objects,DC=example,DC=com
text: 0000208D: NameErr: DSID-03100241, problem 2001 (NO_OBJECT), data 0, best
match of:
'CN=Deleted Objects,DC=example,DC=com'
# numResponses: 1
伺服器實際需要什麼?
編輯:進一步研究這個問題,MS 似乎有一個特定的 LDAP 控制LDAP_SERVER_SHOW_DELETED_OID
正是針對這個用例。但是我無法透過新增到來顯示已刪除的-e 1.2.840.113556.1.4.417
對象
LDAP搜尋調用。
答案1
答案是 AD 對回收站應用某種存取控制。有了管理員票證,它突然就可以工作了:
$ kinit [email protected]
$ ldapsearch -v -R EXAMPLE.COM \
-H ldap://windowsbox.example.com:389 \
-b 'CN=Deleted Objects,DC=example,DC=com' \
-E '!1.2.840.113556.1.4.417' \
-s sub \
'(objectClass=*)' \
distinguishedName
# Deleted Objects, example.com
dn: CN=Deleted Objects,DC=example,DC=com
distinguishedName: CN=Deleted Objects,DC=example,DC=com
…
# Comnisca
DEL:97f85a86-f326-4df1-b747-4bc9002b28c2, Deleted Objects, example.com
dn: CN=Comnisca\0ADEL:97f85a86-f326-4df1-b747-4bc9002b28c2,CN=Deleted Objects,
DC=example,DC=com
distinguishedName: CN=Comnisca\0ADEL:97f85a86-f326-4df1-b747-4bc9002b28c2,CN=D
eleted Objects,DC=example,DC=com
…
只有 root 可以存取回收站,誰會想到呢?
本文檔的「委派 Active Directory 回收站作業」部分記錄了管理對回收站的各種存取方法的權限: https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/dd392260%28v%3dws.10%29