とっても便利なんだけどなかなか癖があって扱いづらい(当社比)Windowsサンドボックスを、ちょっとだけ扱いやすくする起動用wsb。
あまり使い方の例がないのもあって、ちょっと敷居が高い感じのあるこのファイル形式、作例も兼ねてchocolateyをセットアップするwsbファイルを作ったので、ここに書きます。
なお、ファイル情報だけのものはこちらにアップしましたので、詳細が要らないという方は以下をご覧ください。
ファイルを作成する
以下のファイル群を作成するフォルダはsandbox
とします。このフォルダはそのままサンドボックスからアクセスできるようになるため、フォルダ名は変えないようにしてください。
wsbファイル
まずはwsbファイル。wsbファイルには相対パス表記や環境変数が使えない(こちらはUserVoiceなどで上がっているらしい)のですが、それは嫌なので後述するPowerShellスクリプトで書き換えます。
<Configuration>
<VGpu>Default</VGpu>
<Networking>Default</Networking>
<MappedFolders>
<MappedFolder>
<HostFolder>%CURRENT%</HostFolder>
<ReadOnly>true</ReadOnly>
</MappedFolder>
</MappedFolders>
<LogonCommand>
<Command>C:\Users\WDAGUtilityAccount\Desktop\sandbox\run.cmd</Command>
</LogonCommand>
</Configuration>
書き換え用PowerShellスクリプト
wsbファイルの中の%CURRENT%という語句を実際にスクリプトがあるフォルダ名に置き換え、そのファイルをtempフォルダに保存して実行します。
Set-Content -Path "$env:TEMP\temp.wsb" -Value (Get-Content "$PSScriptRoot\template.wsb" | % { $_ -replace "%CURRENT%", $PSScriptRoot })
Start-Process $env:TEMP\temp.wsb -Wait
Remove-Item "$env:TEMP\temp.wsb"
サンドボックス環境下で実行するバッチファイル
そして最後に、サンドボックス環境下で実行し、各種環境設定を行うバッチファイル。
これですが、どうも厄介なことに、ファイル名を単体で記載しないと動かない模様。cmd.exe C:\Users\WDAGUtilityAccount\Desktop\sandbox\run.cmd
などではなく、ファイル名だけで起動する必要があるようです(Microsoftのサンプルではそんなこと書いてないみたいなんですけどねえ)。
rem chocolateyをインストールする
"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"
rem Teamsをインストールする
choco.exe install -y -f microsoft-teams
rem Chromium Edgeをインストールする
choco.exe install -y -f microsoft-edge
rem 必要があればここに他のインストールコマンドを書き足す
rem UI設定を日本語にする
powershell Set-WinUserLanguageList -Force ja-JP
rem カレンダー設定を日本語にする
powershell Set-Culture -CultureInfo ja-JP
実際本当にコメントを書いてしまうと文字化けを起こしたりして面倒なので、コメントは実際には書かない方がいいです(たぶんShift-JISで書けば問題はないのですが)。
「必要があればここに他のインストールコマンドを書き足す」の行に、自分が環境で使用するツールを書き足せば、もちろんそのアプリもインストールしてくれますので、お好みの環境構築がかなり楽になるのではないでしょうか?
ここまでの処理でだいたい、PowerShellファイルを起動してからサンドボックスの構成が完了するまで2分半ほどかかりましたが、毎回これと同じことを手作業でやることを考えると、結構楽になるのではないかなと思います。
まとめ
Windows 10 Proに割とひっそり(?)追加された機能、Windowsサンドボックス。
個人的には、書籍やWebメディアに掲載するためのスクリーンショット撮影(なるべくPCの出荷状態に近い状態で撮影したい)とか、アプリの出荷前テスト(なるべくPCの出荷状態に近い形で動作確認したい)に、非常に重宝しています。
とはいえ環境構築がちょっと面倒くさい ということきはこのへんを参考にして構成ファイルを作っておくと良いんじゃないでしょうか?
※ なお、Windows 10 2004 Verでは構成ファイルに使えるタグがちょっと増えています。このままの構成では動かない可能性があるのでご注意ください。