開發閘道外掛程式
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 中,建立與
Name
的Feature
屬性值同名的新資料夾 (在我們的範例專案中,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 的資訊。