VS Code がインストール済みの Windows Sandbox を起動する方法

2020.12.23

はじめに

通常 Windows Sandbox は初期状態の Windows 10 を起動するため、普段使いするようなアプリケーションは起動後に手動で入れる作業を毎回行う必要があります。

ですが、Windows Sandbox には構成をファイルに記述し、その構成ファイルを元に Windows Sandbox を起動できる仕組みがあります。

今回はその Windows Sandbox 構成ファイルを設定して VS Code をプリインストールした状態の Windows Sandbox を起動できるように設定してみたいと思います。

Windows Sandbox とは

Windows 10 May 2019 Update で導入された新機能です。使い捨て前提の仮想マシンで、毎回初期化された Windows 10 が立ち上がります。ホストとは独立しているため安全な環境が実現できます。

やってみる

やること

全体の動作の手順としては以下の通りになります。

  1. VS Code をインストールするバッチファイルを作成する
  2. ホスト上のディレクトリを Windows Sandbox から読み込み専用で共有する
  3. 2 のディレクトリに 1 のバッチファイルを配置する
  4. Windows Sandbox 起動時に 2 のバッチファイルを自動実行する

2,4 はまとめて構成ファイルに記述します。そのため用意するのはバッチファイルと構成ファイルの2つになります。

作業ディレクトリとして C:\wsb として進めていきますが、ディレクトリパスは必要に応じて適宜読み替えてください。

バッチファイルを作成する

VS Code のインストーラーをダウンロードし、サイレントインストールを行うバッチファイルを作成します。

C:/wsb/VSCodeInstall.cmd

curl -L "https://update.code.visualstudio.com/latest/win32-x64-user/stable" --output C:\users\WDAGUtilityAccount\Desktop\vscode.exe
C:\users\WDAGUtilityAccount\Desktop\vscode.exe /verysilent /suppressmsgboxes

構成ファイルを作成する

構成ファイルの拡張子は .wsb です。XML で記述します。

C:/wsb/preinstalled-vscode.wsb

<Configuration>
  <MappedFolders>
    <MappedFolder>
      <HostFolder>C:\wsb</HostFolder>
      <ReadOnly>true</ReadOnly>
    </MappedFolder>
  </MappedFolders>
  <LogonCommand>
    <Command>C:\Users\WDAGUtilityAccount\Desktop\wsb\VSCodeInstall.cmd</Command>
  </LogonCommand>
</Configuration>

解説

やることの手順2 「ホスト上のディレクトリを Windows Sandbox から読み込み専用で共有する」をしている箇所が以下になります。ホスト側のディレクトリを指定し、読み取り専用で共有しています。

今回はこのディレクトリはバッチファイルの共有のみに使用しているため読み取り専用にしています。別途プロジェクトディレクトリを共有したい場合は同じように MappedFolder を追加してディレクトリを指定してください。

<MappedFolders>
  <MappedFolder>
    <HostFolder>C:\wsb</HostFolder>
    <ReadOnly>true</ReadOnly>
  </MappedFolder>
</MappedFolders>

やることの手順4「Windows Sandbox 起動時に 2 のバッチファイルを自動実行する」を以下で実現しています。

  <LogonCommand>
    <Command>C:\Users\WDAGUtilityAccount\Desktop\wsb\VSCodeInstall.cmd</Command>
  </LogonCommand>
</Configuration>

この時いくつか注意事項があります。

  • 実行される Windows Sandbox 内からのパスを指定する
  • 共有ディレクトリはデスクトップに共有される
  • Windows Sandbox 内のユーザは WDAGUtilityAccount

そのためホスト側では C:\wsb ですが、Windows Sandbox 側では C:\Users\WDAGUtilityAccount\Desktop\wsb になります。

起動する

それでは準備&完全に理解ができたのでWindows Sandbox を起動しましょう。

preinstalled-vscode.wsb を実行するだけ!

Windows Sandbox が起動し、ネットワークなどの初期化設定後に指定したバッチファイルが実行され、自動で VS Code インストーラーをデスクトップにダウンロード後にサイレントインストールが始まり、VS Code が起動します🎉

インストール直後の VS Code は英語ですが、拡張機能の Japanese Language Pack for Visual Studio Codeを導入すれば日本語化ができます。この作業も自動化できるので試してみてはいかがでしょうか。

まとめ

構成ファイルを記述することで VS Code がプリインストール済みの Windows Sandbox 環境を作成することができる。

参考 URL

Windows サンドボックス構成 - Windows security | Microsoft Docs