Sandboxの構成ファイルであらかじめ環境を設定しておく
Sandboxの構成ファイルは、WSBという拡張子を持ち、最初からSandboxと関連付けてあるため、構成ファイルのダブルクリックでSandboxを起動できる。複数の構成ファイルをつくっておけば、用途に合わせて環境を切り替えて使うこともできる。残念なことにSandboxは単独でしか実行できず、複数のインスタンスを同時に起動することができない。面倒でも複数環境は1つ1つ起動して利用するしかない。
WSBファイルの中身はXML形式だが、その構造は単純で、タグで囲まれている部分のみを書き換えれば、ほとんどの用途をカバーできる。また、システム側との共有フォルダーがサポートされたたため、環境構築のスクリプトやインストールするアプリなども共有フォルダーに置いておけるようになった。
構成ファイルには、大きく、以下の設定要素がある。
<VGpu>:vGPU利用の可否
<Networking>:ネットワーク利用の可否
<MappedFloders>:共有フォルダー(複数可)の指定
<LogonCommand>:ログオンコマンド
構成ファイルは、以下のようなもので、タグで囲まれた部分を書き換えて設定する。
「vGPU」の利用の可否では、仮想環境からGPUの仮想化を介してGPU機能を利用するか、Windows組み込みのソフトウェアレンダリングを使うかを切り替える。設定値は「Disable」と「Default」のどちらか。普通は「Default」のままでいいだろう。Disableとすると、組み込みのソフトウェアレンダリングを利用する。
「Networking」は、ネットワーク接続の有無を切り替えるもの。ネットワーク接続を禁止することで、よりシステム側のセキュリティが高まる。ただ、よほど危険と思われる場合以外は、「Default」としてネットワークを許可しておいてもいいだろう。「Disable」を設定することでネットワークを禁止できる。
「MappedFloders」は、ホスト側との共有フォルダーを指定するもの。複数のフォルダーが指定可能で、読み出しのみ可能で書き込みを禁止することもできる。このタグの下に複数の「MappedFolder」(単数形であることに注意)を書き、複数の指定をする。
なお、指定したフォルダーは、すべてデスクトップの直下にマッピングされる。このとき,フォルダー名のみが有効となり、元のパスは使われないため注意が必要だ。たとえば、「C:\temp\SandboxTest\Script」というホスト側フォルダーをマッピングすると、Sandbox内では、「C:\users\WDAGUtilityAccount\Desktop\Script」というフォルダーが見えるようになる。このため、同名のフォルダーは、たとえパスが違っても同時に指定することができない。
「LogonCommand」は、起動直後に実行されるコマンドを指定する。マイクロソフトは、いわゆる「ログイン」を「ログオン」といったり「サインイン」というなど、用語が乱れている感がある。Sandboxではいわゆる「サインイン」操作は不要で起動するといきなりデスクトップが表示され、サインイン状態で起動する。このときに実行されるコマンドを「LogonCommand」タグで指定する。
ここに直接exeファイルを記述することもできるが、1行のみなので、バッチファイルを指定したほうがいいだろう。ただ、直接バッチファイル名を書くと、cmd.exeが起動したままとなり、コンソールウィンドウが残ったままになる(最初の起動なので暗黙的に常駐オプションが指定されるのだと思われる)。このため、以下のようにcmd.exeに/cオプションを使って指定したほうがいい。
<LogonCommand>
<Command>cmd.exe /c C:\users\WDAGUtilityAccount\Desktop\Script\auto.bat</Command>
</LogonCommand>
また、こうしたスクリプト自体も共有する可能性があるため、専用に1つフォルダーを作っておき、これをMappedFolderで指定して起動する。前述のようにSandbox内では、スクリプトへのパスが違うため、バッチファイルを記述する場合には注意が必要だ。
XMLファイルは、文字エンコードを原則UTF-8を用いており、もし、注釈などに日本語をいれた場合には、保存時の文字コードに注意したい。メモ帳なら、初回の保存時にUTF-8を指定しておく。アルファベットのみならASCIIコード(メモ帳の表記はANSI)のままでもかまわないが、のちのち変なトラブルに巻き込まれないようにUTF-8で保存することをお勧めする。
WSB構成ファイルを使うことで、Sandboxは環境設定が可能になった。ただ、Windowsのオプション機能やMicrosoftストアなど一部対応していない部分もある。また、「コンテナー実行エージェント」(CExecSvc.exe)など、明らかにSandboxの中で動作していることを知られてしまうようなプロセスが見えてしまう。悪意のあるソフトウェアなら、こうしたプロセスの有無から挙動を変えることもしかねない。もう少しという感じがあるのだが……。
この連載の記事
-
第460回
PC
Windowsでsftpを使う -
第459回
PC
WSL 2.4.4ではtar形式でのディストリビューションが配布でき、企業での利用が容易になってきた -
第458回
PC
Windows上でhostsファイルを活用する -
第457回
PC
IPv6アドレスは先頭を見ればどんな種類かわかる -
第456回
PC
あらためてIPv6基本のキ -
第455回
PC
Windowsで現在どのネットワークアダプタがインターネット接続に使われているかを調べる方法 -
第454回
PC
Windows 11 24H2では「デバイスの暗号化」の条件が変わり、より多くのPCでドライブが暗号化される -
第453回
PC
Windows 11 24H2の配布開始後もすぐにはやってこない Windows UpdateとSafeguard Holds -
第452回
PC
Windows 11 Ver.24H2が登場 Copilot+ PCとそうでないPCで実質Windowsが2つに分かれる -
第451回
PC
新しいWindowsサンドボックスではコマンドラインからの制御が可能に -
第450回
PC
ユニコードで文字数を数える方法 - この連載の一覧へ