ゲートウェイ プラグインの開発
Windows Admin Center のゲートウェイ プラグインを使用すると、ツールまたはソリューションの UI からターゲット ノードへの API 通信が可能になります。 Windows Admin Center は、ターゲット ノードで実行されるゲートウェイ プラグインからコマンドとスクリプトを中継するゲートウェイ サービスをホストします。 ゲートウェイ サービスを拡張して、既定のプロトコル以外のプロトコルをサポートするカスタム ゲートウェイ プラグインを含めることができます。
これらのゲートウェイ プラグインは、Windows Admin Center に既定で含まれています:
- PowerShell ゲートウェイ プラグイン
- WMI ゲートウェイ プラグイン
REST など、PowerShell や WMI 以外のプロトコルと通信する場合は、独自のゲートウェイ プラグインを構築できます。 ゲートウェイ プラグインは、既存のゲートウェイ プロセスとは別の AppDomain に読み込まれますが、権限には同じレベルの管理者特権を使用します。
注意
さまざまな拡張機能の種類に慣れていない場合 拡張機能のアーキテクチャと拡張機能の種類の詳細について説明します。
重要
Windows Admin Center SDK と開発者ツールは、Windows Admin Center 最新化ゲートウェイと互換性のあるゲートウェイ プラグインの開発をサポートするようにはまだ更新されていません。 このガイドに従っても、最新化されたゲートウェイと互換性のある拡張機能は作成されません。
最新化されたゲートウェイ用のゲートウェイ プラグインの開発や既存のゲートウェイ プラグインのアップグレードに関心がある場合は、wacextensionrequest@microsoft.com に電子メールを送信してください。
環境を準備する
まだインストールしていない場合は、すべてのプロジェクトに必要な依存関係とグローバルな前提条件をインストールして 環境を準備 します。
ゲートウェイ プラグインを作成する (C# ライブラリ)
カスタム ゲートウェイ プラグインを作成するには、Microsoft.ManagementExperience.FeatureInterfaces
名前空間から IPlugIn
インターフェイスを実装する新しい C# クラスを作成します。
注意
以前のバージョンの 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
は "Sample Uno") - カスタム ゲートウェイ プラグイン DLL ファイルをこの新しいフォルダーにコピーする
- Windows Admin Center を再起動する
Windows 管理プロセスが再起動した後、GET、PUT、PATCH、DELETE、または POST を http(s)://{domain|localhost}/api/nodes/{node}/features/{feature name}/{identifier}
に発行して、カスタム ゲートウェイ プラグイン 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 build および gulp serve を指定します。
gulp build gulp serve -p 4201
現在空いているポートを選択する必要があることに注意してください。 Windows Admin Center が実行されているポートは使用しないでください。
ローカルで提供されるプロジェクトを Windows Admin Center に追加することで、プロジェクトをテスト用に Windows Admin Center のローカル インスタンスにサイド ローディングすることができます。
Web ブラウザーで Windows Admin Center を起動します
デバッガーを起動します (F12)
コンソールを開き、次のコマンドを入力します
MsftSme.sideLoad("http://localhost:4201")
Web ブラウザーを更新します
これで、プロジェクトは、名前の横に (side loaded) が追加された状態でツール一覧に表示されるようになります。
異なるバージョンの Windows Admin Center SDK をターゲットにする
SDK の変更とプラットフォームの変更によって拡張機能を最新の状態に保つことは簡単です。 異なるバージョンの Windows Admin Center SDK をターゲットにする方法について説明しています。