使用ADSI延伸模組的優點
實作擴充方法的方式取決於擴充寫入器。 延伸模組寫入器甚至可以在目錄範圍之外完全實作方法。 例如,備份與還原軟體的開發人員計劃擴充稱為 計算機的物件。 開發人員必須建立兩種方法: BackUp 和 Restore。 這些方法會在目錄內計算機物件指向的實體計算機上遠端操作。 藉由做為延伸模組,元件會存取ADSI基礎結構,並由ADSI用戶端視為物件不可或缺的一部分。
下列案例描述建立 ADSI 擴充功能會較有利的情況:
建立擴充功能以整合元件與目錄物件。 由於目錄中有用戶物件,HR 開發人員可能會想要建立 ADSI 延伸模組,以在使用者建立時填入目錄中的其他數據。
如果元件需要目錄查閱,請建立延伸模組。 元件可能需要目錄作為查閱的起點。 例如,建立新的應用程式時。 應用程式物件 ToolApp可以在目錄中發佈。 您的應用程式可能會支援郵件伺服器集合的狀態通知。 您決定將此應用程式設為ADSI擴充功能。
現在,用戶可以在目錄中搜尋ToolApp的所有實例。 針對傳回的每個物件,使用者可能會發出 NotifyNow() 的呼叫。 應用程式或延伸模組可以在目錄中取得更多目前的對象數據,並以異步方式通知每部伺服器。
建立延伸模組作為命名空間與程序設計模型之間的連接點。 例如,ISV 會為列印服務發明新的物件模型。 printQueue 物件已在 目錄中定義。 ISV 可以建立 ADSI 延伸模組,並將它與 printQueue 物件產生關聯。 ADSI 使用者可以系結至 printQueue 物件,並開始使用ISV的物件模型。 從 ADSI 用戶端的觀點來看,這個連接點是透明的。
建立延伸模組以簡化工作。 您可以在物件或多個物件中搜尋和設定多個屬性,來完成目錄中的許多工作。 藉由建立單一函式來操作多個屬性,即可簡化應用程式和腳本寫入器的開發。
針對 ADSI 用戶端,擴充功能會以數種方式擴充 ADSI 程式設計環境:
- 建立ADSI客戶端的開發人員不需要學習新的程序設計模型。 擴充功能是 ADSI 的一部分。 他們會使用相同的範例來搜尋、數據操作和保護物件。
- 管理員 istrators 可以使用擴充功能來管理已啟用目錄的相關應用程式。
- 延伸模組取用者可以將ADSI物件和延伸模組視為整合物件。
- 現有的元件可能會與 ADSI 整合,讓擴充功能利用現有的投資,並在元件之間建立協同效應。
ADSI 擴充功能是使用下列目標所設計:
- 易於實作。 使用目前現有的 Microsoft 技術、Microsoft Visual C++ 開發系統和 Active Template Library,即可快速建立擴充功能。
- 客戶端檢視一個 IDispatch。 從腳本和自動化寫入器的觀點來看,擴充方法和屬性會透明地混合成一個 ADSI 物件。
- 獨立。 延伸模組寫入器可以獨立擴充 ADSI,而不需要事先知道現有的擴充功能。
請考慮此案例:公司開發人員或ISV需要開發備份計劃。 此備份應用程式可讓系統管理員備份組織單位中的所有計算機。 使用ADSI擴充功能,就可以使用下列腳本。
Dim ou
On Error Resume Next
Set ou = GetObject("LDAP://OU=Sales, DC=Fabrikam, DC=COM")
If Err.Number<>0 Then
MsgBox("An error has occurred.")
Err.Clear
Set ou = Nothing
Exit Sub
End If
ou.Filter = Array("computer")
For each comp in ou
Debug.Print comp.Get("networkAddress")
Debug.Print comp.LastBackUp
comp.BackUpNow
Next
LastBackUp 是屬性, BackUpNow 是擴充寫入器提供的方法。 此程式代碼會顯示延伸模組取用者和提供者的優點。 延伸模組寫入器不需要建立新的篩選、搜尋和存取目錄的方式。 擴充取用者不需要重新學習新的程序設計範例。 擴充寫入器提供的新方法和屬性會檢視為 ADSI 的一部分。