このページの本文へ

前へ 1 2 次へ

Windows Info 第388回

アプリ評価環境「Windows SandBox」のWindows 11での状況

2023年07月16日 10時00分更新

文● 塩田紳二 編集● ASCII

  • この記事をはてなブックマークに追加
  • 本文印刷

Sanboxのログオンコマンドのデバッグ

 Sandboxの使い方は人それぞれだろうから、必要なアプリケーションや設定も異なるはずだ。wingetのインストールなどは、すべてログオンコマンドからだと時間はかかるものの、手動操作なしに環境設定したSandboxが起動できる。

 ただし、ログオンコマンドはコンソールウィンドウを表示しないため、デバッグが面倒になる。その場合はログオンコマンドで、スタートアップフォルダにバッチファイルをコピーし、起動したWindowsにこれを実行させるといい。

 こうすることで、コンソールが表示され、PowerShellなどのデバッグ機能が利用できるようになる。ちゃんと動作するようになったら、ログオンコマンドに直接スクリプトを指定するのだが、ログオンコマンドは、コンソールが表示されない関係で、実行がエラーになるコマンドもあるので注意したい。

 たとえば、add-appxpackageコマンドは、プログレスバーを「$ProgressPreference="SilentlyContinue"」で停止させないとウィンドウが表示されていないコンソールでは実行できない。

 cmd.exeのバッチファイルは、無設定で実行可能であり、スタートアップフォルダに入れるだけで自動的に起動できる。実行タイミングは、デスクトップが表示され、ユーザー環境が動き出したときになる。

 具体的には、以下のリストようなwsbファイルを使う。

<Configuration>
  <MappedFolders>
    <MappedFolder>
      <HostFolder>D:\temp</HostFolder>
      <SandboxFolder>C:\temp</SandboxFolder>
    </MappedFolder>
  </MappedFolders>
  <LogonCommand>
    <Command>cmd.exe /c copy "C:\temp\Logon2nd.bat" "C:\Users\WDAGUtilityAccount\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup" </Command>
  </LogonCommand>
</Configuration>

 このwsbファイルでは、ホスト側のD:\tempを、Sandbox側のC:\tempにマウントさせている(以下、この設定で解説する)。以下のスクリプトで参照しているファイルはすべてホスト側ではD:\tempに置き、スクリプト内では、C:\temp以下としてアクセスする。

 ログオンコマンドは、単にファイルを、Sandbox標準ユーザー(WDAGUtilityAccount)のスタートアップフォルダにコピーしている。起動後、スタートアップフォルダが処理され、バッチファイルが起動する。

 バッチファイル(C:\temp\Logon2nd.bat)は、以下のようなものになっている。

powershell.exe -ExecutionPolicy Bypass -File C:\temp\logoncommand.ps1

 PowerShell.exeが実行するコマンドは、以下のリストのようなものだ。

# Set-PSDebug -Trace 1
$x=Get-WinUserLanguageList
if($x.LanguageTag -notcontains "ja"){
    $x.Insert(0,"ja-JP")
    Set-WinUserLanguageList -Force -LanguageList $x
#    read-host "Enter to restart"
    # Windows Sandboxを再起動して言語設定を有効にする
    shutdown.exe /f /r /t 0
}
$ProgressPreference="SilentlyContinue"
# パスを環境に合わせて書き換えること
add-appxpackage "C:\temp\Microsoft.VCLibs.x64.14.00.Desktop.appx"
add-appxpackage "C:\temp\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe.msixbundle"
C:\temp\PowerShell-7.3.5-win-x64.msi /quiet
winget install Microsoft.WindowsTerminal.Preview --accept-source-agreements --accept-package-agreements --silent --disable-interactivity
copy "C:\temp\settings.json" "C:\Users\WDAGUtilityAccount\AppData\Local\Packages\Microsoft.DesktopAppInstaller_8wekyb3d8bbwe\LocalState"
winget configuration "C:\temp\DevMode.yaml" --accept-configuration-agreements
wt.exe
Set-PSDebug -off
read-host "Enter"

 最初の部分では、言語リストの先頭に日本語を置き、再起動している。注意するのは再起動後に再び、ログオンスクリプトが動作する点だ。このため、再起動を行うログオンスクリプトやそこから起動するプログラムは、2回実行されても問題ないように作る必要がある。それがリストの3行目にあるif文の役目である。

 再起動後は、言語リストに「ja」が含まれるため、言語リストは書き換えず、再起動もしない。なお、2行目から9行目を削除あるいは注釈化することで、日本語への切替をしないようにできる。

 winget configureでは、開発者モードをオンにしている。yamlファイルは以下のリストのようになる(前回解説したものの一部を利用)。

properties:
  resources:
    - resource: Microsoft.Windows.Developer/DeveloperMode
      directives:
        description: Enable Developer Mode
        allowPrerelease: true
      settings:
        Ensure: Present
  configurationVersion: 0.2.0

 環境設定が自動でできると、Sandbox利用の敷居が下がる。初期設定スクリプトを完成させるのが少し面倒だが、1度完成すれば、あとは自動で処理されるため、初期化が終了するまで放置しておけばいい。Sandboxは仮想環境に比べるとリソース消費が小さく、終了させればきれいな状態に戻るので、アプリなどのテストに利用できる。また、日本語環境内で簡単に英語環境を起動できるため、アプリの国際化対応の評価などにも対応できる。

前へ 1 2 次へ

カテゴリートップへ

この連載の記事

ASCII倶楽部

注目ニュース

  • 角川アスキー総合研究所

プレミアム実機レビュー

ピックアップ
1
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
Anker PowerLine III Flow USB-C & USB-C ケーブル Anker絡まないケーブル 240W 結束バンド付き USB PD対応 シリコン素材採用 iPhone 17 / 16 / 15 / Galaxy iPad Pro MacBook Pro/Air 各種対応 (1.8m ミッドナイトブラック)
¥1,890
2
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
Anker USB Type C ケーブル PowerLine USB-C & USB-A 3.0 ケーブル iPhone 17 / 16 / 15 /Xperia/Galaxy/LG/iPad Pro/MacBook その他 Android 等 USB-C機器対応 テレワーク リモート 在宅勤務 0.9m ホワイト
¥740
3
CIO フラットスパイラルケーブル CtoC 1m (Type-C/USB-C) PD 急速充電 平型 磁石 マグネット吸着 まとまる 充電ケーブル PD 240W データ転送 480Mbps (ライトブラック, 1m)
CIO フラットスパイラルケーブル CtoC 1m (Type-C/USB-C) PD 急速充電 平型 磁石 マグネット吸着 まとまる 充電ケーブル PD 240W データ転送 480Mbps (ライトブラック, 1m)
¥1,980
4
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
エレコム 電源タップ 6個口 3m 雷ガード 個別スイッチ ほこりシャッター付 耐熱 PSE技術基準適合 ブラック T-K6A-2630BK
¥2,111
5
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
Anker iPhone充電ケーブル PowerLine II ライトニングケーブル MFi認証 超高耐久 iPhone 14 / 14 Pro Max / 14 Plus / 13 / 13 Pro / 12 / 11 / X/XS/XR / 8 Plus 各種対応 (0.9m ホワイト)
¥990
6
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
【Amazon.co.jp限定】 ロジクール 静音 ワイヤレス トラックボール マウス M575SPd Bluetooth Logibolt 無線 windows mac iPad OS Chrome トラックボールマウス ブラック M575 M575SP 国内正規品 ※Amazon.co.jp限定 壁紙ダウンロード付き
¥7,040
7
Verbatim バーベイタム 1回録画用 ブルーレイディスク BD-R 25GB 50枚+3枚増量パック インクジェットプリンタ対応 ホワイト 片面1層 1-6倍速
Verbatim バーベイタム 1回録画用 ブルーレイディスク BD-R 25GB 50枚+3枚増量パック インクジェットプリンタ対応 ホワイト 片面1層 1-6倍速
¥2,480
8
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
UGREEN USB Type Cケーブル PD対応 100W/5A 超急速充電 USB C ナイロン編み 断線防止 iphone17/16/15シリーズ/iPad/MacBook Pro/Galaxy S24/Matebook/iPad/Xperia等USB-C各種対応(1m, ブラック)
¥1,299
9
Amazon Kindle - 目に優しい、かさばらない、大きな画面で読みやすい、6週間持続バッテリー、6インチディスプレイ電子書籍リーダー、ブラック、16GB、広告なし
Amazon Kindle - 目に優しい、かさばらない、大きな画面で読みやすい、6週間持続バッテリー、6インチディスプレイ電子書籍リーダー、ブラック、16GB、広告なし
¥19,980
10
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
KIOXIA(キオクシア)【日本製】USBフラッシュメモリ 32GB USB2.0 国内サポート正規品 KLU202A032GL
¥980

Amazonのアソシエイトとして、ASCII.jpは適格販売により収入を得ています。

デジタル用語辞典

ASCII.jpメール デジタルMac/iPodマガジン