このページの本文へ

前へ 1 2 次へ

Windows Info 第388回

アプリ評価環境「Windows SandBox」のWindows 11での状況

2023年07月16日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

 Windows Sandbox(以下、Sandbox)は、Professionalエディション以上に付属する、アプリケーション評価用の軽量デスクトップ環境だ。

Windows Sandbox

Windows sandboxは、再起動が可能になり、wingetとの組み合わせで便利に使えるようになった。ログオンコマンド用にスクリプトを書けば、環境設定やアプリのインストール、日本語環境への切り替えなどが自動でできる

 本連載でも昨年の記事で扱ったのだが(「Windows 11の大型アップデート「Ver.22H2」ではこんな改良点がある」)、このときはプレビュー版での評価だったため、言語切り替えなどが動作していなかった。あらためてWindows 11 Ver.22H2で使い方などをまとめる。

 詳細に関しては、過去記事(「Windows 10の新機能であるアプリテスト用環境「Sandbox」の技術を見る」「Windows 10のアプリテスト用環境「Windows Sandbox」の構成ファイル」)も合わせて参照してほしい。

Sandbox構成ファイル

 Sandboxは、拡張子がwsbの構成ファイルを使うことで、動作設定を指定して起動できる。Windows 11 Ver.22H2からは、再起動と終了が区別されるため、たとえば言語設定などをして、日本語環境に切り替えることが可能になった。

 このwsbファイルだが、ほぼXML形式で「<」と「>」でキーワードを囲んだタグで設定を指定する。現在有効なタグには、以下の表のようなものがある。

Windows Sandbox

 また、タグの解説は以下のリンク先にある。日本語のページは自動翻訳でわかりにくいところがあるので、英語のページを見た方が早いかもしれない。

●Windows サンドボックス構成(日本語)
 https://learn.microsoft.com/ja-jp/windows/security/application-security/application-isolation/windows-sandbox/windows-sandbox-configure-using-wsb-file
●Windows Sandbox configuration(英語)
 https://learn.microsoft.com/en-us/windows/security/application-security/application-isolation/windows-sandbox/windows-sandbox-configure-using-wsb-file

 このうち、Windows 11で新設されたのが「ProtectedClient」タグで、「AppContainer分離」機能を有効化するためのものだ。

 AppContainer分離はUWPに使われていたセキュリティ技術で、コンテナを使って、レガシーアプリケーションからのファイルなどのリソースアクセスに制限を掛ける。ただし、通常のWindows 11での利用は現在プレビュー中で、現状Sandboxの中でだけ正式機能になっている。基本的には企業向けの機能で、アプリケーション自体を対応させる必要があるため、ここではこれ以上解説しない。

ユーザー言語の切り替え

 日本語版のWindows 11でSandboxを立ち上げても、ユーザーインターフェース言語は英語のまま。これはデフォルトユーザー(WDAGUtilityAccount)の言語設定が英語(en-US)になっているからだ。

 Windows 11 Ver.22H2のSandboxでは、再起動することができるため、言語を追加するなどして再起動してユーザーインターフェースの言語を切り替えることができる。

 この操作はPowerShellから可能だ。一番簡単な方法としては、Sandbox内で標準で組み込まれているWindows PowerShellを起動して、以下のコマンドを実行すればよい。

Set-WinUserLanguageList -Force ja-JP

 これで言語が日本語に切り替わるので、「shutdown.exe /r /t 0 /f」で再起動する。再起動後、スタートメニューや設定ページが日本語になっているはずだ。この方法では、日本語の言語パックのみがインストールされた状態に切り替わる。

 「米国英語」の言語パックを残したまま、日本語にするには、言語リストを取り出し、その先頭に日本語設定を挿入して、言語リストを再設定する。具体的には、

$x=Get-WinUserLanguageList
$x.Insert(0,"ja-JP")Set-WinUserLanguageList -Force ja-JP Set-WinUserLanguageList -Force -LanguageList $x

とする。

wingetを最初に入れると便利

 前回解説したように(「WinGet ConfigurationとPowerShell DSC」)、wingetはアプリのインストールだけでなく、設定変更も可能になったので、これを最初に導入しておくといいだろう。あとは必要に応じて、Windows TerminalでもVS Codeでも多くのアプリケーションをwinget経由で入れることができる。

 ただし、Sandboxからのネットワークダウンロードは、ホスト側より遅い。可能ならパッケージのみをダウンロードしておき、これをログオンコマンドで起動するスクリプト内でインストールするほうがいいだろう。

 具体的なインストール方法だが、まず、「Microsoft.VCLibs.x64.14.00.Desktop」が必要になる。これは、以下のリンクからダウンロードできる。

●Microsoft.VCLibs.x64.14.00.Desktopダウンロード
 https://aka.ms/Microsoft.VCLibs.x64.14.00.Desktop.appx

 これをwingetの前にインストールする。具体的には「Add-AppxPackage Microsoft.VCLibs.x64.14.00.Desktop.appx」とする。

 次にWingetプレビュー版を入れる。こちらもあらかじめ以下のリンクからダウンロードしておく。

●Windows Package Manager 1.6.1573-preview
 https://github.com/microsoft/winget-cli/releases/download/v1.6.1573-preview/Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle

 同じく「Add-AppxPackage」でインストールする。

 Wingetをスクリプトから利用する場合、初回起動時にライセンス確認などがなされる。これを抑制するには、以下のように「--accept-source-agreements」と「--accept-package-agreements」オプションを付ける。

winget install Microsoft.WindowsTerminal.Preview --accept-source-agreements --accept-package-agreements

 また、Winget configurationを利用する場合、事前に設定が必要だが、この設定ファイルはユーザーフォルダの下にあるパッケージフォルダに直接書き込んでおけばよい。具体的には、

copy settings.json C:\Users\WDAGUtilityAccount\AppData\Local\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState

として、sittings.jsonを書き込んでおく(先ほどの前回記事を参照してほしい)。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

注目ニュース

ASCII倶楽部

プレミアムPC試用レポート

ピックアップ

ASCII.jp RSS2.0 配信中

ASCII.jpメール デジタルMac/iPodマガジン