分享方式:


開發閘道外掛程式

適用於:Windows Admin Center、Windows Admin Center 預覽版

Windows Admin Center 閘道外掛程式可讓您從工具或解決方案的 UI 對目標節點進行 API 通訊。 Windows Admin Center 裝載了閘道服務,可從閘道外掛程式轉送命令和腳本,以在目標節點上執行。 您可以擴充閘道服務,來包含自訂的閘道外掛程式,進而支援預設內容以外的通訊協定。

Windows Admin Center 預設會包含這些閘道外掛程式:

  • PowerShell 閘道外掛程式
  • WMI 閘道外掛程式

如果想要與 PowerShell 或 WMI 以外的通訊協定進行通訊,例如使用 REST,您可以建置自己的閘道外掛程式。 閘道外掛程式會從現有的閘道處理程式載入到個別的 AppDomain 中,但會使用相同層級的權限提升。

注意

不熟悉不同的延伸模組類型嗎? 深入瞭解擴充性架構和延伸模組類型

重要

Windows Admin Center SDK 與開發人員工具尚未更新到可支援與 Windows Admin Center 現代化閘道相容的閘道外掛程式開發。 遵循本指引不會產生與現代化閘道相容的擴充功能。

如果您對開發現代化閘道的閘道外掛程式,或升級現有的閘道外掛程式有興趣,請傳送電子郵件到 wacextensionrequest@microsoft.com

準備您的環境

如果您尚未就緒,請安裝所有專案需要的相依性和全域先決條件來準備您的環境

建立閘道外掛程式 (C# 程式庫)

若要建立自訂閘道外掛程式,請建立新的 C# 類別,以在 Microsoft.ManagementExperience.FeatureInterfaces 命名空間中實作 IPlugIn 介面。

注意

舊版 SDK 中提供的 IFeature 介面現在已標示為過時。 所有閘道外掛程式的開發都應該使用 IPlugIn 進行 (或選擇使用 HttpPlugIn 抽象類別)。

從 GitHub 下載範例

若要快速開始使用自訂閘道外掛程式,您可以從 Windows Admin Center SDK GitHub 網站複製或下載範例 C# 外掛程式專案的複本。

新增內容

將新內容新增至範例 C# 外掛程式專案 (或您自己的專案) 的複本,以包含您的自訂 API,然後建置自訂閘道外掛程式 DLL 檔案,供後續步驟使用。

部署外掛程式進行測試

將自訂閘道外掛程式 DLL 載入到 Windows Admin Center 閘道處理程序中,來對其進行測試。

Windows Admin Center 會在目前電腦的 Application Data 資料夾中,尋找 plugins 資料夾中的所有外掛程式 (使用 Environment.SpecialFolder 列舉的 CommonApplicationData 值)。 在 Windows 10 上,這個位置是 C:\ProgramData\Server Management Experience。 如果 plugins 資料夾還不存在,您可以自行建立資料夾。

注意

您可以藉由更新「StaticsFolder」組態值,覆寫偵錯組建中的外掛程式位置。 如果您要在本機偵錯,此設定位於桌面解決方案的 App.Config 中。

外掛程式資料夾內 (在此範例中為 C:\ProgramData\Server Management Experience\plugins)

  • 在自訂閘道外掛程式 DLL 中,建立與 FeatureName 屬性值同名的新資料夾 (在我們的範例專案中,Name 為「範例 Uno」)
  • 將自訂閘道外掛程式 DLL 檔案複製到這個新資料夾
  • 重新啟動 Windows Admin Center 處理程序

Windows 系統管理員處理程序重新啟動之後,您將能夠藉由向 http(s)://{domain|localhost}/api/nodes/{node}/features/{feature name}/{identifier} 發出 GET、PUT、PATCH、DELETE 或 POST,在自訂閘道外掛程式 DLL 中演練 API

選用:附加至外掛程式以進行偵錯

在 Visual Studio 2017 中,從 [偵錯] 功能表選取 [附加至處理序]。 在下一個視窗中,捲動 [可使用的處理序] 清單,並選取 [SMEDesktop.exe],然後按一下 [附加]。 偵錯工具啟動之後,您可以在功能程式碼中放置中斷點,然後透過上述 URL 格式練習。 在我們的範例專案 (功能名稱:「Sample Uno」)中,URL 為:"<http://localhost:6516/api/nodes/fake-server.my.domain.com/features/Sample%20Uno>"

使用 Windows Admin Center SDK 建立工具延伸模組

現在,我們需要建立工具延伸模組,供您從中呼叫自訂閘道外掛程式。 建立或流覽至您要儲存專案檔的資料夾、開啟命令提示字元,並將該資料夾設為工作目錄。 透過稍早安裝的 Windows Admin Center SDK,使用下列語法建立新的延伸模組:

wac create --company "{!Company Name}" --tool "{!Tool Name}"
說明 範例
{!Company Name} 您的公司名稱 (含空格) Contoso Inc
{!Tool Name} 您的工具名稱 (含空格) Manage Foo Works

以下是範例用法:

wac create --company "Contoso Inc" --tool "Manage Foo Works"

這會使用您為工具指定的名稱,在目前的工作目錄中建立新資料夾、將所有必要的範本檔案複製到專案,並使用您的公司和工具名稱來設定檔案。

接下來,將目錄變更為剛建立的資料夾,然後執行下列命令來安裝必要的本機相依性:

npm install

完成之後,您已做好一切所需設定,可將新的延伸模組載入 Windows Admin Center 中。

將工具延伸模組連線至自訂閘道外掛程式

既然已使用 Windows Admin Center SDK 建立了延伸模組,您就可以遵循下列步驟,將工具延伸模組連線到自訂閘道外掛程式:

建置和側載延伸模組

接下來,建置並側載您的延伸模組到 Windows Admin Center。 開啟命令視窗,將目錄變更為來來源目錄,然後您就可開始建置。

  • 使用 gulp 進行建置與服務:

    gulp build
    gulp serve -p 4201
    

請注意,您必須選擇目前空閒的連接埠。 切勿嘗試使用正在執行 Windows Admin Center 的連接埠。

您可以附加本機服務的專案至 Windows Admin Center,將您的專案側載至 Windows Admin Center 的本機實例中進行測試。

  • 在網頁瀏覽器中啟動 Windows Admin Center

  • 開啟偵錯工具 (F12)

  • 開啟主控台並輸入下列命令:

    MsftSme.sideLoad("http://localhost:4201")
    
  • 重新整理網頁瀏覽器

您的專案現在會顯示在 [工具] 清單中,名稱旁邊隨附 (側載)。

鎖定不同版本 Windows Admin Center SDK

使用 SDK 變更和平台變更讓您的延伸模組保持最新狀態非常容易。 閱讀有關如何鎖定不同版本 Windows Admin Center SDK 的資訊。