コンテンツにスキップ
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 を資産管理ツールへ伝播