Windowsサンドボックス
Windowsサンドボックスは手軽にクリーンなWindows環境を作成して、アプリケーションのテストが行える機能です.別途ライセンスを購入する必要はなく、既存のライセンスで使用できます.Windows 10 や Windows 11 から使用できます.しかし、Homeエディションでは正式にサポートされていません.今回は、Windowsサンドボックスを使う機会があったので、ここにまとめておきます.環境は次の通りです.
Windows 11 Pro 22H2
また、本文の中で <user>
と表記しているものは、お使いのPCのユーザー名に置き換えてください.
Windowsサンドボックスを有効にする
詳しい手順は下記を参考にしてください.
基本的な環境
構築する環境は WinGet
, PowerShell
, WindowsTerminal
の3つ(最新版)をインストールした状態にすることです.この3つがあれば、その後の環境構築が快適です.ただし、簡単には行きません.また、Windowsサンドボックスは言語が英語ですが、日本語に対応する方法も紹介します.では、手順を追って説明します.
Microsoft Store
WinGet
があれば PowerShell
も WindowsTerminal
もインストールできるはずです.しかし、WindowsサンドボックスにはMicrosoft Storeがありません.Microsoft Store経由でなく、直接 WinGet
をインストールする必要があります.また、WinGet
を使ってPowerShell
はインストールできますが、WindowsTerminal
はインストールに失敗します.なので、別の方法でインストールする必要があります.
Windowsサンドボックスは毎回クリーンな環境となるので、その度にダウンロードするのは時間のムダです.ですから、3つともあらかじめダウンロードしておいて、インストールします.
それぞれのバージョンは次の通りです.
Windows Package Manager 1.4.10173
PowerShell 7.3.2
Windows Terminal 1.16.10262.0
バイナリのダウンロード
WinGet
まず、WinGet
は以下からダウンロードできます.
Releases
から Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle
をダウンロードします.また、VC++ v14 Desktop Framework Package
も必要ですので、こちらもダウンロードしておきます(Microsoft.VCLibs.x64.14.00.Desktop.appx
). リンクは上記のページにあります.
Microsoft.VCLibs.x64.14.00.Desktop.appx
は同名でもビルド番号が違ったりするので、そのときの最新版を合わせておく必要があります.
PowerShell
PowerShellのバイナリは以下からダウンロードできます.
stable版を使います. PowerShell-7.3.2-win-x64.msi
ファイルをダウンロードします.
Windows Terminal
Windows Terminalのバイナリは以下からダウンロードできます.
Releases
からMicrosoft.WindowsTerminal_Win11_1.16.10262.0_8wekyb3d8bbwe.msixbundle
をダウンロードします.
また、他にも Microsoft.UI.Xaml.x64.2.7
バンドルが必要です.これもバージョンを合わせる必要があり、2.7.3
を使用します.下記サイトにあるDownload package
リンクからダウンロードできます.
ダウンロードしたmicrosoft.ui.xaml.2.7.3.nupkg
はNuGetパッケージですが、必要なのは中に含まれている Microsoft.UI.Xaml.2.7.appx
です.nupkgはzipなので、展開して ./Tools/AppX/x64/Release/Microsoft.UI.Xaml.2.7.appx
を取り出します.取り出したら、x64
アーキテクチャとわかるように Microsoft.UI.Xaml.x64.2.7.appx
に名前を変えておきます.
Sandboxフォルダ
これまでダウンロードした以下のファイルを、 C:\Users\<user>\Sandbox
フォルダに入れておきます.フォルダがなければ任意のフォルダ名を作成して入れてください.
Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle
Microsoft.WindowsTerminal_Win11_1.16.10262.0_8wekyb3d8bbwe.msixbundle
Microsoft.VCLibs.x64.14.00.Desktop.appx
Microsoft.UI.Xaml.x64.2.7.appx
PowerShell-7.3.2-win-x64.msi
Windowsサンドボックス構成フ ァイル
Windowsサンドボックスのカスタマイズパラメータを記述する構成ファイルを用意します.拡張子は .wsb
です.ファイルはXML形式です.
まず、Windowsサンドボックスでのユーザー名は WDAGUtilityAccount
固定です.ここでは、ダウンロードしたフォルダをマウントする設定を追加します.マウント先はホームフォルダ内の Mount
とします.Sandbox.wsb
ファイルを作成し、内容を次のようにします.
<Configuration>
<MappedFolders>
<MappedFolder>
<SandboxFolder>C:\users\WDAGUtilityAccount\Mount</SandboxFolder>
<HostFolder>C:\users\<user>\Sandbox</HostFolder>
<ReadOnly>true</ReadOnly>
</MappedFolder>
</MappedFolders>
</Configuration>
このファイルはどこに置いても構いません.私はSandbox
フォルダ内に入れています.このファイルを実行すれば、Windowsサンドボックスが起動します.起動しない場合、Windowsサンドボックスに関連付けておくと便利です.
スクリプトファイル
Windowsサンドボックスを実行する前に、いくつかスクリプトファイルを作成しておきます.これらはSandbox
フォルダに入れておきます.スクリプトファイルは PowerShell です.個別に作成していますが、1つのまとまったスクリプトファイルにすることもできます
ポリシー
まず、PowerShellスクリプトファイルを実行するためにポリシーを設定する必要があります.
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
コピペでもいいのですが、それも面倒なので policy
というテキストファイルを用意して上記の内容にします.
WinGetインストールスクリプト
WinGetのインストールスクリプト install-winget.ps1
を作成します.内容は次のようになっています.
Add-AppPackage -Path C:\users\WDAGUtilityAccount\Mount\Microsoft.VCLibs.x64.14.00.Desktop.appx
Add-AppPackage -Path C:\users\WDAGUtilityAccount\Mount\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle
Add-AppPackage
はPowerShellのコマンドレットで、パッケージのインストールを行います.