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