Windows 11 Sandboxで「スマートアプリコントロール」にブロックされる問題の解決策(25H2対応)

folder_openPC・スマートフォン

Windows 11 22H2/23H2/25H2以降、Windows Sandboxを起動すると「スマートアプリコントロール(SAC)」が標準で有効になるケースが増えています。 これにより、ホストから共有した自作アプリや署名のないツールを起動した際にスマートアプリコントロールが安全でない可能性のあるアプリをブロックしました」と表示され、強制的にブロックされるという、開発者にとって致命的な問題が発生しています。

未署名のアプリをブロックするとは何の為のサンドボックス環境か分かりませんね。
Windowsはまたしても迷走を始めたようで…

今回はSandbox上でこのSACを無効化する方法です。

なぜ普通の設定ではダメなのか

Sandboxは起動のたびに初期化されるため、UIから設定を変更しても保存されない。

開発中のバイナリは「信頼性が低い」とみなされ、SACの標的になりやすい。

解決策:構成ファイル (.wsb) で起動時に無効化する

結論として、以下の .wsb ファイルを作成し、そこから Sandbox を起動することで解決できます。ポイントはレジストリの書き換えと、それを即時反映させる CiTool.exe です。

作成するファイル:DisableSAC.wsb

メモ帳を開いて以下のコードを貼り付けてから DisableSAC.wsb と言う名前で保存します。

 

<Configuration>
  <LogonCommand>
    <Command>reg add "HKLM\SYSTEM\CurrentControlSet\Control\CI\Policy" /v VerifiedAndReputablePolicyState /t REG_DWORD /d 0 /f</Command>
	<Command>CiTool.exe -r</Command>
  </LogonCommand>
</Configuration>

このDisableSAC.wsb をダブルクリックで起動すると、SACが無効になった状態でSandboxが立ち上がります。
Sandboxをよく使う人はデスクトップなどに保存しておくと良いでしょう。

解説:なぜこの2行が必要か

VerifiedAndReputablePolicyState
この値を 0 にすることで、スマートアプリコントロールを「オフ」の状態に指定します。

CiTool.exe -r
通常、レジストリの変更は再起動が必要な場合がありますが、このコマンドを実行することで、再起動なしにコード整合性ポリシーをリフレッシュし、即座にブロックを解除させます。

まとめ

この .wsb ファイルを使えば、毎回手動で設定を変える必要もなく、開発環境として快適に Sandbox を利用できるようになります。フォルダ共有設定などが必要な場合は、これに以下のタグを追加してカスタマイズしてみてください。

開発効率を上げる!フォルダ共有設定の追加方法

SACを無効化するだけでなく、ホストPC上のソースコードやインストーラーをSandboxと共有するための設定を追加しましょう。.wsb ファイルを以下のように編集します。

<Configuration>
  <MappedFolders>
    <MappedFolder>
      <HostFolder>C:\Users\YourName\Projects\AppDebug</HostFolder>
      <SandboxFolder>C:\Users\WDAGUtilityAccount\Desktop\SharedProject</SandboxFolder>
      <ReadOnly>false</ReadOnly>
    </MappedFolder>
  </MappedFolders>

  <LogonCommand>
    <Command>reg add "HKLM\SYSTEM\CurrentControlSet\Control\CI\Policy" /v VerifiedAndReputablePolicyState /t REG_DWORD /d 0 /f</Command>
    <Command>CiTool.exe -r</Command>
  </LogonCommand>
</Configuration>

【解説ポイント】
HostFolder
あなたのPC上のフォルダパスです。ここにあるファイルがSandboxから見えます。

SandboxFolder
Sandbox内でのパスです。C:\Users\WDAGUtilityAccount\Desktop\… と指定することで、Sandboxを起動した瞬間にデスクトップに共有フォルダが現れるようになり、アクセスが非常に楽になります。

ReadOnly
false に設定することで、Sandbox内で行ったビルド結果やログ出力を、そのままホスト側のフォルダに保存できます。

以上 Windows Sandbox のTips でした。

 

関連記事

keyboard_arrow_up