共用方式為


使用ADSI延伸模組的優點

實作擴充方法的方式取決於擴充寫入器。 延伸模組寫入器甚至可以在目錄範圍之外完全實作方法。 例如,備份與還原軟體的開發人員計劃擴充稱為 計算機的物件。 開發人員必須建立兩種方法: BackUpRestore。 這些方法會在目錄內計算機物件指向的實體計算機上遠端操作。 藉由做為延伸模組,元件會存取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 的一部分。