Windows アプリの Windows 10 (S モード) 対応のテスト

Windows アプリをテストして、S モードの Windows 10 を実行するデバイスで正しく動作するか確認できます。 実際に、アプリを Microsoft Store に公開する予定がある場合、これはストアの要件であるため、テストを行う必要があります。 自分のアプリをテストするために、Windows 10 Pro を実行しているデバイスで Windows Defender Application Control (WDAC) ポリシーを適用できます。

WDAC ポリシーは、Windows 10 S で実行するために従う必要のある規則をアプリに適用します。

重要

これらのポリシーを仮想マシンに適用することをお勧めします。ただし、ローカル コンピューターに適用する場合は、ポリシーを適用する前に、このトピックの「次に、ポリシーをインストールしてシステムを再起動する」セクションに記載されているベスト プラクティスのガイダンスを必ず確認してください。

まず、ポリシーをダウンロードして 1 つを選択する

ここで WDAC ポリシーをダウンロードしてください。

次に、最も希望に合うものを 1 つ選びます。 各ポリシーの概要を以下に示します。

ポリシー 適用 署名証明書 ファイル名
監査モード ポリシー 問題をログに記録/ブロックしない ストア SiPolicy_Audit.p7b
実稼働モード ポリシー はい ストア SiPolicy_Enforced.p7b
自己署名アプリを使用する製品モード ポリシー はい AppX テスト証明書 SiPolicy_DevModeEx_Enforced.p7b

監査モード ポリシーから始めることをお勧めします。 コード整合性イベント ログを確認し、その情報をアプリの調整に役立てることができます。 続いて、最終的なテストの準備ができたら、実稼働モード ポリシーを適用します。

各ポリシーについて、もう少し詳しい情報を次に示します。

監査モード ポリシー

このモードでは、Windows 10 S でサポートされていないタスクがアプリで実行される場合でも、そのアプリを実行できます。ブロックされた可能性のある実行可能ファイルは、Windows によってコード整合性イベント ログに記録されます。

これらのログを見つけるには、[イベント ビューアー] を開き、[アプリケーションとサービス ログ] > [Microsoft] > [Windows] > [CodeIntegrity] > [Operational] の順に移動します。

code-integrity-event-logs

このモードは安全であり、システムの起動を妨げることはありません。

(省略可能) 呼び出し履歴で特定の障害箇所を見つける

呼び出し履歴で障害となっている問題が発生する特定の箇所を見つけるには、次のレジストリ キーを追加してから、カーネル モード デバッグ環境を設定します。

Key 件名 Type Value
HKEY_LOCAL_MACHINE\SYSTEM\CurentControlSet\Control\CI DebugFlags REG_DWORD 1

reg-setting

実稼働モード ポリシー

このポリシーでは、Windows 10 S に合致するコード整合性規則が適用され、Windows 10 S での実行をシミュレートできます。これは最も厳格なポリシーであり、最終的な実稼働テストに適しています。 このモードでは、アプリへの制限が、ユーザーのデバイスでの制限と同じである必要があります。 このモードを使用するには、Microsoft Store によるアプリへの署名が必要です。

自己署名アプリを使用する実稼働モード ポリシー

このモードは実稼働モード ポリシーに似ていますが、zip ファイルに含まれているテスト証明書で署名されているアプリを実行できる点が異なります。 この zip ファイル内の AppxTestRootAgency フォルダーに含まれる PFX ファイルをインストールします。 次に、PFX ファイルを使用してアプリに署名します。 この方法は、ストアによる署名を必要としないため、すばやく反復処理できます。

証明書の発行元名はアプリの発行元名と一致する必要があるため、Identity 要素の Publisher 属性値を一時的に "CN=Appx Test Root Agency Ex" に変更する必要があります。 テストを完了した後、この属性を元の値に戻すことができます。

次に、ポリシーをインストールし、システムを再起動する

これらのポリシーは起動エラーを招く可能性があるため、仮想マシンに適用することをお勧めします。 エラーが発生するのは、Microsoft Store で署名されていないコード (ドライバーを含む) の実行が、これらのポリシーによってブロックされるためです。

これらのポリシーをローカル コンピューターに適用する場合は、監査モード ポリシーから始めることをお勧めします。 このポリシーを使用すると、適用されたポリシーで重要なコードがブロックされていないことをコード整合性イベント ログで確認できます。

ポリシーを適用する準備ができたら、選択したポリシーに対応する .P7B ファイルを見つけて、SIPolicy.P7B という名前に変更したうえで、このファイルをシステム上の C:\Windows\System32\CodeIntegrity\ に保存します。

次に、システムを再起動します。

Note

システムからポリシーを削除するには、.P7B ファイルを削除してからシステムを再起動します。

次のステップ

質問に対する回答を見つける

ご質問があるでしょうか。 Stack Overflow でお問い合わせください。 Microsoft のチームでは、これらのタグをチェックしています。

App Consult Team が投稿した詳細なブログ記事を確認する

Windows 10 S でのデスクトップ ブリッジを使用したデスクトップ アプリケーションの移植とテストに関する記事を参照してください。

S モードの Windows でのテストを容易にするツールについて理解する

APPX のアンパッケージ、変更、再パッケージ、署名に関する記事をご覧ください。