Introduction

備忘録。

試してみよう試してみようと思っていたが、ついに試す機会が訪れたので試した。
きっかけは

  • 非 msi のインストーラの中身を取り出したいが環境を汚染したくない
  • インストーラが正しく依存コンポーネントをインストールできるか試したいが環境を汚染したくない
    • 何度もアンインストールするのは面倒

というこれ以上ないシチュエーション。

Windows Sandbox は Windows 10 1903 以降で利用できる。
Windows のバージョン毎に細かい機能強化はあるが使い捨てという目的の達成なら 1903 以降であれば問題ない。

How to do?

インストール

GUI からのインストールなど手間以外の何物でもない。
公式の Windows サンドボックスをインストールする に従い、管理者権限を付与した Powershell からインストール。

1
$ Enable-WindowsOptionalFeature -FeatureName "Containers-DisposableClientVM" -All -Online

windows sandbox

状況によっては再起動が必要。

windows sandbox

起動

スタートメニューに Windows Sandbox が追加されるのでクリックして起動。

windows sandbox

ファイルはリモートデスクトップのようにクリップボード経由で転送できるし、後述の設定によりホストマシンとフォルダを共有もできる。

メモリを増やしたい

サンドボックスは既定で 4GB のメモリが確保されているが、これでは少ないことがあるので調整できる。
GUI が用意されているわけではなく、既定の設定を記述した拡張子 .wsb を持つ xml ファイルをダブルクリックすることで設定が反映されたサンドボックスが起動する。

下記は 8GB のメモリをアサインするサンドボックス用の設定。

1
2
3
<Configuration>
<MemoryInMB>8192</MemoryInMB>
</Configuration>

ファイルを共有したい

読み取り専用にしたり、複数のディレクトリを共有できる。

1
2
3
4
5
6
7
8
9
10
11
12
<Configuration>
<MappedFolders>
<MappedFolder>
<HostFolder>d:\to_sandbox</HostFolder>
<SandboxFolder>c:\from_host</SandboxFolder>
<ReadOnly>true</ReadOnly>
</MappedFolder>
<MappedFolder>
...
</MappedFolder>
</MappedFolders>
</Configuration>

ネットワークを無効にしたい

設定を適用するとネットワークアダプタに既定のアダプタが表示されなくなる。
この状態でもコピー&ペーストによるファイルのやり取りやファイル共有は可能。

1
2
3
<Configuration>
<Networking>Disable</Networking>
</Configuration>