次の方法で共有


ゲートウェイ プラグインの開発

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)

  • カスタム ゲートウェイ プラグイン DLLFeatureName プロパティ値と同じ名前の新しいフォルダーを作成します (サンプル プロジェクトでは 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 をターゲットにする方法について説明しています。