WindowsSandboxを使用する

いろいろと仮想化関連を触ってはいるのですが、ライセンス関連で仮想化上のWindowsには触る機会はありませんでした。

自分のようにまっさらな状態から環境構築しながら、テストをしていくような内容のエントリーを書いていると、アプリによっては一度インストールや環境構築を行うと表示内容が変わってしまう状況はかなり痛いなと感じています。そのため、Windows環境のものはその影響が強く、テストしてからの画面キャプチャを行うというよりは、初回のテストを行いながらキャプチャを行っていくため、順序がめちゃくちゃになりがちという悩みがありました。

たまたま知ったのですが、WindowsProのライセンスではWindowsSandboxの機能があり、起動しているWindowsとは別で仮想上のWndows(以降サンドボックス)を立ち上げることができるようです。また、このサンドボックスは終了すると初期状態に戻ってしまうため、テストが失敗したらそのまま終了することで、母艦環境を変化させることがないという安心感を得ることができます。

今回はそのサンドボックス機能を有効化し、使ってみようという内容になります。自分にとっては結構うれしい機能です。

WindowsSandboxの機能の有効化

デフォルトではこの機能はONになっていないため、有効化の設定を行う必要があります。

まずはWindowsPro上で【コントロールパネル】を開き、【プログラム】をクリックします。

【プログラム】をクリックすると以下のような画面になります。続いて【プログラムと機能】の中にある【Windowsの機能の有効化または無効化】をクリックします。

Windowsの機能の有効化または無効化】のダイアログが開くので、チェックボックスのリストをスクロールさせて

Windowsサンドボックス】のチェックを入れ、ダイアログの【OK】ボタンをクリックします。

インストール処理が行われて

再起動を促すダイアログ表示となるので、【今すぐ再起動】ボタンのクリックを行います。

これで、サンドボックス機能が有効化されます。

サンドボックス機能を使用する

機能が有効化されれば、あとは起動して使用するだけです。Windowsのスタートメニュー【田】を押して、【WindowsSandbox」と入力することで候補が上がってきます。あとは【開く】を選べば

サンドボックス化されたまっさらなWindowsがWindow化して起動します。

サンドボックスの動きを確認する

Windowsの初期状態のスナップショットが起動しているというイメージ。

起動のスプラッシュスクリーン

初期状態

インターネットの使用に関して

また、このWindowsはインターネットの通信も可能になっているので、ブラウザからの動きをみることも可能です。ブラウザがEdgeChromeブラウザベース)のみとはなります。もちろん新たにブラウザをインストールすることも可能です。

yahooを表示してみました

ファイルやアプリのインストールに関して

サンドボックスなので、ファイルの操作やアプリのインストールは可能です。ただし、一度サンドボックスを終了させるとそれらの変更はなかったことになります。今回はNode.jsサンドボックス側にインストールしてからサンドボックスを終了させて、初期状態に戻ったかを確認してみます。

まずは母艦の状態を確認します。母艦となるWindowsProにはNode.jsはインストールされていません。

コンソールからNode.jsの起動確認(失敗)

ではサンドボックスを起動し、ブラウザからNode.jsのサイトを開き、LTSバージョンのNode.jsをインストールします。

LTSバージョンのNode.jsインストーラーをダウンロード

デスクトップにインストーラーを保存

インストーラーを起動

インストール後にはスタートメニューから検索が可能に

CLIからの実行ができます

無事にインストールができたので、このサンドボックスを終了させて再起動し、状態を確認します。 終了時にはクリアされることを確認するダイアログが表示されます。

再起動すると、先程デスクトップに保存していたNode.jsのインストーラーがなくなっています。

また、スタートメニューからNode.jsを検索してみても存在していません(代わりにcmdが表示されています)

ターミナルからNode.jsを実行しても、実行に失敗します。

また、サンドボックスでインストールしたアプリは母艦側のWindowsProには全く影響がありません。

ストレージの容量とメモリの消費に関して

ストレージは40GBになっていました。このサイズは母艦によって異なるのか、あるいは固定なのかはわからないですが、最小限のサイズになっているようです。(母艦のWindowsのストレージサイズは500G)

サンドボックス起動時のメモリもかなりありそうな気がするのですが、5.5GBのメモリ消費になっています。

サンドボックス起動時の母艦側のタスクマネージャーの状態

ここでサンドボックスを終了すると以下のように変化しました。メモリ消費が4.1GBになっているのでサンドボックスでの消費がなくなっているようです。

サンドボックス終了後の母艦側のタスクマネージャーの状態

ちなみにサンドボックス側のタスクマネージャを起動してメモリ消費をみてみると1.0GBのメモリが使用されていました。このあたりは母艦側のWindowsProとメモリはシェアされているのかなと思います。

おわりに

自分のように環境構築の再現性とかまで確認したい人間にとってはこのWindowsSandboxの機能はかなり助かる機能かなと思います。実際使用している環境を壊すことなく設定が可能になるので大きな安心感があります。

現在のWindowsWSLの環境があるので、Linuxも環境も使用できますし、今回のSandboxの機能Windowsの環境も使用できます。最近ではWindows Subsystem for AndroidもでてきているのでAndroid環境も動作できるようになってきているようです。

個人ではWindowsのProライセンスの効果ってそれほど大きくなかった印象ではありますが、このSandboxの機能だけでも自分は意味があるかなと思ったり。

/* -----codeの行番号----- */