共用方式為


開發閘道外掛程式

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

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

  • PowerShell 閘道外掛程式
  • Windows Management Instrumentation (WMI) 網關外掛程式

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

注意

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

重要

Windows Admin Center SDK 與開發人員工具尚未更新到可支援與 Windows Admin Center 現代化閘道相容的閘道外掛程式開發。 遵循本指南不會產生與現代化網關相容的 .NET 8 延伸模組。

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

在後端更新處於預覽階段時,使用 .NET 6 開發的閘道外掛程式可能無法正常運作於最新版本的 Windows Admin Center,因為 .NET 6 到 .NET 8 的重大變更 。 建議您儘快將您的擴充功能升級至 .NET 8。

準備您的環境

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

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

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

注意

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

Windows 系統管理員程式重新啟動之後,您將能夠透過發出 GET、PUT、PATCH、DELETE 或 POST 請求,以便在您的自定義網關外掛程式 DLL 中操作 API 到 http(s)://{domain|localhost}/api/nodes/{node}/features/{feature name}/{identifier}

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

在 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 的資訊。