Zenn Dev 8chikuwa3 Articles 823044f9878c90
Microsoft Storeアプリのオフライン展開
- URL: https://zenn.dev/8chikuwa3/articles/823044f9878c90
- 日付: 2026-06-26
- Tier: Tier 3
- 要旨: インターネット非接続環境(自治体の三層分離ネットワーク等)で Windows 標準ストアアプリ(付箋・電卓・Snipping Tool 等)をオフライン展開・更新する方法を、Appx/MSIX パッケージの仕様から丁寧に解説した実務向け記事。winget でのオフラインパッケージ取得から、システム権限による Add-AppxProvisionedPackage と一般ユーザー権限による Add-AppxPackage の2層デプロイ設計、PowerShell スクリプトおよび資産管理ツール(SKYSEA 等)向けキックバッチの実装まで網羅している。
詳細
パッケージ取得(インターネット接続環境で実施):
- winget source update 後、winget download –id –architecture x64 –accept-package-agreements –accept-source-agreements
- Microsoft Entra ID 認証が必要(コマンド実行時に認証画面が表示される)
- Downloads// 配下にパッケージ本体と依存関係・ライセンスファイルがダウンロードされる
代表的パッケージID: Snipping Tool=9MZ95KL8MR0L、付箋=9NBLGGH4QGHW、電卓=9WZDNCRFHVN5、ターミナル=9N0DX20HK701 など
Appx 展開の2ステップ構造:
- Staging: %ProgramFiles%\WindowsApps にファイルをコピー(デバイス単位、ユーザー不要)
- Registration: ユーザーログオン時に各プロファイルへ登録
2層デプロイ設計:
- システム層: SYSTEM 権限 + Add-AppxProvisionedPackage(強制プロビジョニング)
- ユーザー層: サインインユーザー権限 + Add-AppxPackage(ログオンスクリプトで同期実行)
PowerShell スクリプト(AppDeploy.ps1)のポイント:
- -Mode System / -Mode User の引数で分岐
- 共有フォルダ(\Server\AppDeploy\Packages)を自動スキャン、依存関係を自動収集
- -SkipLicense: winget 取得の無料アプリのみ有効。有償 LOB アプリは -LicensePath で明示指定
- 処理結果を共有フォルダのログファイルに出力(コンピューター名・実行ユーザー付き)
キックバッチ(DeployWrapper.bat)の工夫:
- SKYSEA 等が 32bit エージェントの場合、%SystemRoot%\sysnative で 64bit PowerShell を明示指定
- start コマンド不使用で同期実行し、PowerShell の ExitCode を資産管理ツールへ伝播