Windows アプリの S モードの Windows 10 をテストする

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

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

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

呼び出し履歴でブロックに関する問題が発生している特定のポイントを見つけるには、次のレジストリ キーを追加してから、カーネル モード デバッグ環境をセットアップします。

キー 名前
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 ファイルをインストールします。 次に、それを使用してアプリに署名します。 この方法では、ストアによる署名を必要としないため、迅速に反復できます。

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

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

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

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

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

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

注意

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

次の手順

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

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

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

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

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

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