現在プレビュー中のWindows 11 Ver.24H2(OSビルド25120.1843、9月20日公開)向けに、Windowsサンドボックスのプレビュー版が公開されている。
このプレビュー版では、コマンドラインからのサンドボックス制御やウィンドウ内のメニューによる設定変更が可能になった。ここでは、新しいプレビュー版のWindowsサンドボックス(以下、プレビュー版)について解説する。現行のWindows 11 Ver.23H2に同梱されているWindowsサンドボックスを「現行版」とする。
そもそもWindowsサンドボックスとは?
Windowsサンドボックスは、Windowsの軽量仮想マシン環境を使う、ソフトウェアなどの検証環境である。インストールされているWindowsと同じバージョン、同じアップデートが適用された、まっさらなWindows環境を起動できる。ここではソフトウェアのインストールやシステム設定などが自由にできるが、終了後は一切記録が残らず、ホスト側への影響もほとんどない。
このため、セキュリティ的に心配だったり、開発中のソフトウェアの検証に利用できる。それ以外にも、レジストリ変更などをしたらどのようになるかも試せる。逆に言えば、こうした作業が必要ない場合は、ほとんど使い道がない。主にソフトウェア開発や、企業でのシステム管理などを想定した機能と言える。
Windowsサンドボックスは、Windows 10 Ver.1903(2019年の上半期にリリースされたWindows 10)で最初に搭載された。Hyper-Vによる仮想環境と異なり、簡易な仕組みで、Windowsのライセンスは別途不要、仮想ハードディスクファイルなどを作る必要もない。
なお、従来版のWindowsサンドボックスは、Windows 11自体に含まれており、「コントロールパネル」→「プログラムと機能」→「Windowsの機能の有効化または無効化」で設定できる。
現行版Windowsサンドボックスはシステムフォルダ(C:\Windows\System32)にある
C:\WINDOWS\system32\WindowsSandbox.exe
が本体で、Windowsサンドボックスの仮想マシン環境を起動する。その表示は、おそらくWSLなどと同じRDPベースのクライアントがする。それが、同じフォルダにある
C:\WINDOWS\system32\WindowsSandboxClient.exe
と考えられる。
これに対して、プレビュー版は、Microsoftストア経由で配布されるようになった(記事冒頭画面)。wsb.exeは、アプリ実行エイリアスで、ユーザーフォルダ以下の場所に置かれている。
$env:LOCALAPPDATA\Microsoft\WindowsApps\Wsb.exe
%LOCALAPPDATA%\Microsoft\WindowsApps\Wsb.exe
これは、「Windows Sandbox Command Line Interface」と呼ばれている。ここには「WindowsSandboxRemoteSession.exe」と「WindowsSandboxServer.exe」もあり、「wsb.exe start」でサンドボックスを起動すると、WindowsSandboxServer.exeが起動し、「wsb.exe connect」でサンドボックスウィンドウを開くと、WindowsSandboxRemoteSession.exeが起動する。どちらも実体は、以下のパッケージのインストール先にある。
C:\Program Files\WindowsApps\MicrosoftWindows.WindowsSandbox_0.2.24.0_x64__cw5n1h2txyewy
ただし、プレビュー版25120.1843では、「C:\WINDOWS\system32」以下に「WindowsSandbox.exe」と「WindowsSandboxClient.exe」が残っていた。
構成ファイルからコマンドライン指定に
これまでのWindowsサンドボックスは、起動時にXMLで記述された構成ファイル(.WSBファイル)を読み込んで環境を構築していた。以下の表にWSBで使われるXMLタグ定義を示す。
Windows 11 Ver.22H2では、リスタートとシャットダウンが区別できるようになり、再起動でサンドボックスが終了しなくなった。一方でこれより前のサンドボックスでは、再起動でシステムが終了してしまっていた。
このためWindows 10では、言語切り替えなど再起動が必要な設定を変更できず、日本語版Windowsであっても、サンドボックスは英語版でしか起動できなかったのだ。
また、Windows 11では、既定の言語設定がサンドボックスに取り込まれたため、日本語版Windowsでは、日本語で起動可能になった。
しかし、必要なアプリケーションの設定や、ホスト側との共有フォルダなどの設定は、単一のWSBファイルにあらかじめすべて起動しておく必要があった。部分的には同じ構成であっても、それぞれを別ファイルとして作成しなければならず、管理が面倒だった。
一方でプレビュー版サンドボックスは、コマンドラインオプションで環境構成を指定できる。また、サンドボックスウィンドウのタイトルバーに設定アイコン(3つのドットが横に並んだアイコン)が設置され、その場で設定を変更可能になった。
以下の表にwsb.exeの引数を示す。
基本的な書式は、
wsb.exe <サブコマンド> <サブコマンドオプション>
wsb.exe <オプション> となる。
従来のサンドボックスでwsbファイルでしていた設定は、プレビュー版ではコマンドラインと設定メニューで可能になる。
wsbファイルの場合、一回設定したクリップボードやオーディオ入力、ビデオ入力に関しては、サンドボックスの起動中には停止できず、サンドボックス自体を終了するまで有効だった。しかし、プレビュー版では、メニューを使って、有効無効を随時設定可能になった。セキュリティという点ではより安全になったと思われる。
基本的なwsbコマンドの使い方としては、
#サンドボックスの起動
wsb.exe start
#起動している<SandboxID>の取得
wsb.exe list
#サンドボックスウィンドウの表示
wsb.exe connect --id <SandboxID>
#サンドボックス内でコマンドを起動
wsb exec --id <SandboxID> --command "explorer.exe" --run-as ExistingLogin
#サンドボックスの終了
wsb.exe stop --id <SandboxID>
という流れになる。wsb.exeで起動した場合、サンドボックスウィンドウをタイトルバーの終了ボタンから閉じても、サンドボックスのインスタンス自体は残り続ける。これを停止するには、wsb.exeのstopサブコマンドを使う必要がある。
このコマンド体系を見るに、設定関連のコマンドは、<SandboxID>を指定する必要がある。複数のサンドボックス・インスタンスを<SandboxID>で切り替えて処理できそうだが、プレビュー版は、従来と同じくインスタンスを1つしか同時に起動できない。将来的には、複数のサンドボックスを同時に起動できるようにする布石なのかもしれない。
従来のサンドボックスでは、起動前に.wsbファイルを作成する必要があり、複数設定を使う場合には、共通部分があっても、それぞれファイルを用意する必要があった。しかし、コマンドラインからの制御が可能となり、必要に応じたサンドボックス環境をコマンドラインから指定できるようになった。
ということは、その場その場でコマンドを打って環境を構築可能なだけでなく、事前に作成したスクリプトの組み合わせでも環境設定ができる。また、プレビュー版では、wsbファイルによる設定、起動にも対応しており、その後wsb.exeによる管理も可能だ。
このため、共通する基本的な設定をwsbファイルでして、その後コマンドラインやスクリプトで設定を部分的に変更できる。
従来のようにwsbファイルやスタートメニューのWindowsサンドボックスから起動した場合、サンドボックスウィンドウを閉じると自動的にサンドボックスのインスタンスが終了になる点に注意が必要だ。
人によっては、さまざまな用途に使えるWindowsサンドボックスだが、今回のコマンドラインからの制御で使い勝手が上がった。多様な環境を事前に作っておく必要がなく、コマンドラインから作成したのち、必要なコマンドを並べてスクリプトすることで、同じ環境が再開できる。
できれば、完成までには、複数のインスタンスを同時起動できるようになると、さらに便利になりそうだ。なお、今回の解説はあくまでもプレビュー版によるもので、最終製品では仕様が異なる可能性がある。24H2の配布が開始され、Windowsサンドボックスが正式版となったら再度評価したい。
この連載の記事
-
第458回
PC
Windows上でhostsファイルを活用する -
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる -
第456回
PC
あらためてIPv6基本のキ -
第455回
PC
Windowsで現在どのネットワークアダプタがインターネット接続に使われているかを調べる方法 -
第454回
PC
Windows 11 24H2では「デバイスの暗号化」の条件が変わり、より多くのPCでドライブが暗号化される -
第453回
PC
Windows 11 24H2の配布開始後もすぐにはやってこない Windows UpdateとSafeguard Holds -
第452回
PC
Windows 11 Ver.24H2が登場 Copilot+ PCとそうでないPCで実質Windowsが2つに分かれる -
第450回
PC
ユニコードで文字数を数える方法 -
第449回
PC
WSLはプレビュー版でGUIでの設定が加わった! リリース2.3.xの新機能を見る -
第448回
PC
PowerShellで面倒なオブジェクトはPSCustomObjectに変換するのが早道 - この連載の一覧へ