Windows Device Portal の概要

Windows デバイスに含まれる Web サーバーである Windows デバイス ポータル (WDP) を使用すると、ネットワークまたは USB 接続を介して、デバイスの設定を構成および管理できます (Web ブラウザーを使用したデバイスでのローカル接続もサポートされています)。

また、WDP には、Windows デバイスのトラブルシューティングを行ったり、リアルタイムのパフォーマンスを表示するための高度な診断ツールも用意されています。

WDP の機能は、REST API のコレクションを通してプログラムに公開されています。

この記事では、Windows デバイス ポータルの概要を説明し、各 Windows デバイス ファミリに関するさらに詳細な情報が掲載されている記事へのリンクを示します。

注意

デバイス ファミリに基づいて、デバイスのクラス全体で想定できる API、システム特性、動作を特定します。

セットアップ

各デバイスファミリには WDP の 1 つのバージョンが用意されていますが、機能とセットアップはデバイスの要件によって異なります。

以下で示すのは、すべてのデバイスに当てはまる基本的な手順です。

  1. デバイスで開発者モードとデバイス ポータルを有効にします (設定アプリで構成)。

  2. デバイスと PC をローカル ネットワーク経由または USB を使用して接続します。

  3. ブラウザーでデバイス ポータルのページに移動します。 次の表は、各デバイス ファミリで使用されるポートとプロトコルを示しています。

次の表では、WDP に関するデバイス固有の詳細を示します。

デバイス ファミリ 既定でオンになっているか HTTP HTTPS USB 手順
デスクトップ 開発者モードで有効化する 50080* 50043* 該当なし デスクトップ デバイスで Windows デバイス ポータルをセットアップする
Xbox 開発者モードで有効化する 無効 11443 該当なし Xbox 向けのデバイス ポータル
HoloLens 開発者モードでオン 80 (既定値) 443 (既定) http://127.0.0.1:10080 HoloLens 用 Device Portal
IoT 開発者モードでオン 8080 レジストリ キーで有効化する 該当なし IoT 用 Device Portal
電話 開発者モードで有効化する 80 443 http://127.0.0.1:10080 モバイル用 Device Portal

* デスクトップ上のデバイス ポータルが、デバイス上の既存のポート要求との競合を避ける目的でエフェメラル範囲 (>50,000) にあるポートを要求するため、この表が当てはまらない場合があります。 詳細については、「デスクトップ用 Windows デバイス ポータル」の「レジストリ ベースの構成」セクションを参照してください。

注意

Windows Mixed Reality は通常のデスクトップで実行されるため、Desktop と同じポータルです。

機能

ツールバーとナビゲーション

ページの最上部にあるツール バーでは、よく使われる機能にアクセスできます。

  • [電源] :電源オプションにアクセスします。
    • [Shutdown](シャットダウン) : デバイスをオフにします。
    • [Restart](再起動) : デバイスの電源を入れ直します。
  • [Help](ヘルプ) : ヘルプ ページを開きます。

ページの左側にあるナビゲーション ウィンドウのリンクを使用して、デバイスの管理と監視に利用可能なツールに移動します。

ここでは、すべてのデバイス ファミリに共通のツールについて説明します。 デバイスによってはその他のオプションを利用できる場合があります。 詳しくは、お使いのデバイスの種類用のページをご覧ください。

アプリ マネージャー

アプリ マネージャーでは、ホスト デバイス上でアプリ パッケージとバンドルのインストール/アンインストールおよび管理を行う機能が提供されます。

デバイス ポータル アプリ マネージャーのページ

  • [Deploy apps](アプリのデプロイ) :ローカル、ネットワーク、または Web ホストからパッケージ アプリをデプロイし、ネットワーク共有からルーズ ファイルを登録します。
  • [Installed apps](インストール済みのアプリ) : ドロップダウン メニューを使用して、デバイスにインストールされているアプリを削除または開始します。
  • [Running apps](実行中のアプリ) : 現在実行中のアプリに関する情報を取得し、必要に応じて閉じます。

アプリのインストール (サイドロード)

Windows デバイス ポータルを使用して、開発中にアプリをサイドロードできます。

  1. アプリ パッケージを作成したら、デバイス上にリモートでインストールできます。 Visual Studio でビルドすると、出力フォルダーが生成されます。

    アプリのインストール

  2. Windows デバイス ポータルで、 [Apps manager](アプリ マネージャー) ページに移動します。

  3. [Deploy apps](アプリのデプロイ) セクションで、 [ローカル ストレージ] を選択します。

  4. [Select the application package](アプリケーション パッケージの選択) で、 [ファイルの選択] を選択し、サイドロードするアプリ パッケージを参照します。

  5. [Select certificate file (.cer) used to sign app package](アプリ パッケージに署名するために使用する証明書ファイル (.cer) の選択) で、 [ファイルの選択] を選択し、そのアプリ パッケージに関連付けられている証明書を参照します。

  6. アプリのインストールと共にオプションまたはフレームワークのパッケージをインストールする場合は、それぞれのボックスをオンにし、 [次へ] を選択して選択します。

  7. [インストール] を選択すると、インストールが開始されます。

  8. デバイス上で Windows 10 が S モードで実行されていて、特定の証明書がそのデバイスに初めてインストールされた場合は、デバイスを再起動します。

証明書をインストールする

または、Windows デバイス ポータルを使用して証明書をインストールし、他の方法でアプリをインストールすることもできます。

  1. Windows デバイス ポータルで、 [Apps manager](アプリ マネージャー) ページに移動します。

  2. [Deploy apps](アプリのデプロイ) セクションで、 [証明書のインストール] を選択します。

  3. [Select certificate file (.cer) used to sign app package](アプリ パッケージに署名するために使用する証明書ファイル (.cer) の選択) で、 [ファイルの選択] を選択し、サイドロードするアプリ パッケージに関連付けられている証明書を参照します。

  4. [インストール] を選択すると、インストールが開始されます。

  5. デバイス上で Windows 10 が S モードで実行されていて、特定の証明書がそのデバイスに初めてインストールされた場合は、デバイスを再起動します。

アプリをアンインストールする

  1. アプリが実行中でないことを確認します。
  2. その場合、 [Running apps](実行中のアプリ) に移動してそのアプリを閉じます。 アプリの実行中にアンインストールすると、そのアプリを再インストールしようとするときに問題が発生することがあります。
  3. ドロップダウンからアプリを選択し、 [削除] をクリックします。

実行中のプロセス

このページには、ホスト デバイス上で現在実行中のプロセスの詳細が表示されます。 これには、アプリとシステムの両方のプロセスが含まれます。 一部のプラットフォーム (Desktop、IoT、および HoloLens) では、プロセスを終了することができます。

デバイス ポータルの [実行中のプロセス] ページ

エクスプローラー

このページでは、サイドロードされた任意のアプリによって保存されたファイルを表示および操作できます。 エクスプローラーとその使用方法について詳しくは、アプリ エクスプローラーの使用に関するブログ記事をご覧ください。

デバイス ポータルの [エクスプローラー] ページ

[パフォーマンス]

[パフォーマンス] ページには、電力消費、フレーム レート、CPU 負荷など、システムの診断情報のグラフがリアルタイムで表示されます。

利用可能なメトリックを次に示します。

  • [CPU] :使用可能な CPU 使用量の合計に対するパーセント
  • [Memory](メモリ) : 合計メモリ、使用中のメモリ、使用可能なメモリ、コミットされたメモリ、ページ メモリ、および非ページ メモリ
  • [I/O] : データの読み取りと書き込みの量
  • ネットワーク:受信済みおよび送信済みデータ
  • [GPU] : 使用可能な GPU エンジン使用量の合計に対するパーセント

デバイス ポータルの [パフォーマンス] ページ

Windows イベント トレーシング (ETW) ログ

[ETW logging](ETW ログ) ページでは、デバイス上のリアルタイム Windows イベント トレーシング (ETW) 情報を管理します。

デバイス ポータルの [ETW logging](ETW ログ) ページ

[Hide Providers] (プロバイダを非表示にする) チェックボックスをオンにすると、イベントの一覧のみが表示されます。

  • [Registered providers](登録済みプロバイダー) : イベント プロバイダーとトレース レベルを選択します。 トレース レベルは次のいずれかの値になります。

    1. 異常終了または終了
    2. 重大なエラー
    3. 警告
    4. エラーではない警告
    5. 詳細なトレース

    トレースを開始するには、 [Enable] (有効にする) をクリックまたはタップします。 [Enabled Providers] (有効なプロバイダー) ドロップダウン リストにプロバイダーが追加されます。

  • [Custom providers](カスタム プロバイダー) : カスタム ETW プロバイダーとトレース レベルを選択します。 GUID を使用してプロバイダーを識別します。 GUID にはかっこを含めないでください。

  • [Enabled providers](有効なプロバイダー) : 有効なプロバイダーを一覧表示します。 ドロップダウンからプロバイダーを選択し、 [Disable] (無効にする) をクリックまたはタップしてトレースを停止します。 すべてのトレースを中断するには、 [Stop All] (すべて停止) をクリックまたはタップします。

  • [Providers history](プロバイダー履歴) : 現在のセッション中に有効になった ETW プロバイダーを表示します。 無効になっているプロバイダーをアクティブ化するには、 [Enable] (有効にする) をクリックまたはタップします。 履歴をクリアするには、 [Clear] (クリア) をクリックまたはタップします。

  • [フィルター]/[イベント] : [イベント] セクションには、選択したプロバイダーの ETW イベントが表形式で一覧表示されます。 この表はリアルタイムで更新されます。 [フィルター] メニューを使用して、表示するイベントのカスタム フィルターを設定します。 すべての ETW イベントを表から削除するには、 [クリア] ボタンをクリックします。 これによってプロバイダーが無効になることはありません。 [ファイルに保存] をクリックすると、現在収集されている ETW イベントをローカルの CSV ファイルにエクスポートできます。

ETW ログの使用について詳しくは、デバイス ポータルを使用したデバッグ ログの表示に関するブログ記事をご覧ください。

パフォーマンス トレース

[パフォーマンスのトレース] ページでは、ホスト デバイスからの Windows パフォーマンス レコーダー (WPR) トレースを表示できます。

デバイス ポータルの [パフォーマンスのトレース] ページ

  • [Available profiles](利用可能なプロファイル) : ドロップダウン リストから WPR プロファイルを選択し、 [Start](開始) をクリックまたはタップすると、トレースを開始できます。
  • [Custom profiles](カスタム プロファイル) : [Browse](参照) をクリックまたはタップして、PC から WPR プロファイルを選択します。 [Upload and start] (アップロードして開始) をクリックまたはタップすると、トレースが開始します。

トレースを停止するには、 [Stop] (停止) をクリックします。 トレース ファイル (.ETL) のダウンロードが完了するまで、このページを閉じないでください。

キャプチャした .ETL ファイルは、Windows Performance Analyzer で開いて分析に使用できます。

デバイス マネージャー

[デバイス マネージャー] ページでは、デバイスに接続されているすべての周辺機器が列挙されます。 設定アイコンをクリックして、それぞれのプロパティを表示できます。

デバイス ポータルの [デバイス マネージャー] ページ

ネットワーク

[ネットワーク] ページでは、デバイス上のネットワーク接続を管理します。 デバイス ポータルに USB 経由で接続している場合を除き、これらの設定を変更するとデバイス ポータルとの接続が切断される可能性があります。

  • [Available networks](使用可能なネットワーク) : デバイスで利用可能な Wi-Fi ネットワークが表示されます。 ネットワークをクリックまたはタップすると、そのネットワークに接続し、必要に応じてパスキーを提供できます。 デバイス ポータルではエンタープライズ認証はまだサポートされていません。 [プロファイル] ドロップダウンを使用して、デバイスで認識されている任意の Wi-Fi プロファイルへの接続を試すこともできます。
  • [IP configuration](IP 構成) : 各ホスト デバイスのネットワーク ポートについてのアドレス情報が表示されます。

デバイス ポータルの [ネットワーク] ページ

サービスの機能と注意事項

DNS-SD

Device Portal は DNS-SD を使用して、ローカル ネットワーク上でその存在をアドバタイズします Device Portal のすべてのインスタンスは、デバイスの種類に関係なく、"WDP._wdp._tcp.local" でアドバタイズします。 サービス インスタンスの TXT レコードは、次の情報を提供します。

キー 種類 説明
S int Device Portal 用のセキュリティで保護されたポート。 0 (ゼロ) の場合、Device Portal は HTTPS 接続をリッスンしていません。
D string デバイスの種類。 これは "Windows.*" の形式 (Windows.Xbox、Windows.Desktop など) になります
A string デバイスのアーキテクチャ。 これは、ARM、x86、AMD64 のいずれかです。
T null 文字で区切られた string のリスト ユーザーが適用したデバイスのタグ。 使い方については、タグの REST API に関する説明をご覧ください。 リストは 2 つの null で終了します。

DNS-SD レコードでアドバタイズされる HTTP ポートですべてのデバイスがリッスンしているわけではないため、HTTPS ポートでの接続をお勧めします。

CSRF に対する保護とスクリプト

CSRF 攻撃に対する保護のために、すべての非 GET 要求に一意のトークンが必要です。 このトークン、X-CSRF-Token 要求ヘッダーは、セッション Cookie、CSRF-Token から派生します。 Device Portal の Web UI では、CSRF-Token Cookie が、各要求の X-CSRF-Token にコピーされます。

重要

この保護によって、スタンドアロン クライアント (コマンドライン ユーティリティなど) から REST API を使用できなくなります。 これは 3 つの方法で解決できます。

  • "auto-" ユーザー名を使用します。 クライアントはユーザー名の前に "auto-" を追加することによって、CSRF に対する保護を迂回できます。 このユーザー名は、ブラウザーから Device Portal にログインするために使用しないでください。サービスが CSRF 攻撃を受ける可能性があります。 例:デバイス ポータルのユーザー名が "admin" である場合、CSRF に対する保護を迂回するために curl -u auto-admin:password <args> を使用する必要があります。
  • クライアントで cookie-to-header スキームを実装します。 そのためには、GET 要求でセッション Cookie を確立し、それ以降のすべての要求にヘッダーと Cookie の両方を含めます。
  • 認証を無効にして、HTTP を使用します。 CSRF に対する保護は HTTPS エンドポイントにのみ適用されるため、HTTP エンドポイントに接続する場合、上記のいずれの操作も必要ありません。

クロスサイト WebSocket ハイジャック (CSWSH) に対する保護

CSWSH 攻撃を防御するために、Device Portal に対して WebSocket 接続を開くすべてのクライアントは、Host ヘッダーと一致する Origin ヘッダーも提供する必要があります。 これにより、Device Portal に対して、要求が Device Portal の UI または有効なクライアント アプリケーションからの要求であることを証明します。 Origin ヘッダーがない場合、要求は拒否されます。

関連項目

デバイス ポータル コア API リファレンス