次の方法で共有


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

Windows Admin Center のゲートウェイ プラグインを使用すると、ツールまたはソリューションの UI からターゲット ノードへの API 通信が可能になります。 Windows Admin Center は、ターゲット ノードで実行されるゲートウェイ プラグインからコマンドとスクリプトを中継するゲートウェイ サービスをホストします。 ゲートウェイ サービスを拡張して、既定のプロトコル以外のプロトコルをサポートするカスタム ゲートウェイ プラグインを含めることができます。

これらのゲートウェイ プラグインは、Windows Admin Center に既定で含まれています:

  • PowerShell ゲートウェイ プラグイン
  • Windows Management Instrumentation (WMI) ゲートウェイ プラグイン

REST など、PowerShell や WMI 以外のプロトコルと通信する場合は、独自のゲートウェイ プラグインを構築できます。 ゲートウェイ プラグインは、既存のゲートウェイ プロセスとは別の AppDomain に読み込まれますが、権限には同じレベルの管理者特権を使用します。

注意

さまざまな拡張機能の種類に慣れていない場合 拡張機能のアーキテクチャと拡張機能の種類の詳細について説明します。

重要

Windows Admin Center SDK と開発者ツールは、Windows Admin Center 最新化ゲートウェイと互換性のあるゲートウェイ プラグインの開発をサポートするようにはまだ更新されていません。 このガイドに従うと、.NET 8 拡張機能は最新のゲートウェイと互換性がありません。

最新化されたゲートウェイ用のゲートウェイ プラグインの開発や既存のゲートウェイ プラグインのアップグレードに関心がある場合は、wacextensionrequest@microsoft.com に電子メールを送信してください。

.NET 6 から .NET 8への破壊的変更が されたため、バックエンドの更新プログラムがプレビュー段階のときに .NET 6 で開発されたゲートウェイ プラグインが、最新バージョンの Windows Admin Center で正しく機能しない可能性があります。 できるだけ早く拡張機能を .NET 8 にアップグレードすることをお勧めします。

環境を準備する

まだインストールしていない場合は、すべてのプロジェクトに必要な依存関係とグローバルな前提条件をインストールして 環境を準備 します。

ゲートウェイ プラグインを作成する (C# ライブラリ)

カスタム ゲートウェイ プラグインを作成するには、IPlugIn 名前空間から Microsoft.ManagementExperience.FeatureInterfaces インターフェイスを実装する新しい 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 Experienceplugins フォルダーがまだ存在しない場合は、自分でフォルダーを作成できます。

注意

"StaticsFolder" 構成値を更新することで、デバッグ ビルド内のプラグインの場所をオーバーライドできます。 ローカルでデバッグする場合、この設定はデスクトップ ソリューションの App.Config 内に表示されます。

プラグイン フォルダー内 (この例では C:\ProgramData\Server Management Experience\plugins)

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