我設法讓ADS用戶沒有從我的ADS域(ex,mydomain.com)指定認證詳細信息。我使用ADODB.Connection和ADODB.Command。ADS用戶詳細信息 - 子域 - 從vbs文件
我也有像test.mydomain.com這樣的子域。如何通過指定屬於test.mydomain.com的用戶的身份驗證詳細信息從子域獲取用戶詳細信息。
我設法讓ADS用戶沒有從我的ADS域(ex,mydomain.com)指定認證詳細信息。我使用ADODB.Connection和ADODB.Command。ADS用戶詳細信息 - 子域 - 從vbs文件
我也有像test.mydomain.com這樣的子域。如何通過指定屬於test.mydomain.com的用戶的身份驗證詳細信息從子域獲取用戶詳細信息。
您可以使用其LDAP名稱作爲搜索基礎來查詢來自可信域的記錄。但是,由於父域的DC不包含有關子域中的對象的信息,因此它將生成一個referral。 ADODB.Command
對象不會自動chase轉介,因爲各自的named property"Chase referrals"
默認爲0x00(ADS_CHASE_REFERRALS_NEVER
)。你必須將屬性設置爲以下兩個值之一
ADS_CHASE_REFERRALS_SUBORDINATE
(0×20)ADS_CHASE_REFERRALS_ALWAYS
(0X60),使您的查詢按照轉診。例如:
base = "<LDAP://dc=test,dc=example,dc=org>"
filter = "(&(objectCategory=computer)(name=foo*))"
attr = "name,description"
scope = "subtree"
Set conn = CreateObject("ADODB.Connection")
conn.Provider = "ADsDSOObject"
conn.Open "Active Directory Provider"
Set cmd = CreateObject("ADODB.Command")
Set cmd.ActiveConnection = conn
cmd.CommandText = base & ";" & filter & ";" & attr & ";" & scope
cmd.Properties("Chase referrals") = &h60 ' <-- here
Set rs = cmd.Execute
我寫了一個包裝類(ADQuery)封裝Active Directory查詢樣板代碼(因爲我厭倦了一遍又一遍寫它)。這樣,您可以簡化上面是這樣的:
Set qry = New ADQuery
qry.SearchBase = "dc=test,dc=example,dc=org"
qry.Filter = "(&(objectCategory=computer)(name=foo*))"
qry.Attributes = Array("name", "description")
Set rs = qry.Execute
無論哪種方式,你仍然可能需要運行在DC上的腳本,雖然。
我不確定問題是什麼。你是問如何從子域查詢對象,還是你問如何對子域進行身份驗證,以便從中查詢對象? –
對子域進行身份驗證,也無法從子域查詢對象,對於主域我能夠獲得用戶 – itsraja