*Intuneのアップデートで動作がある程度改善されたので特別対応しなくてもインストールされるはずです。
*推奨される方法ではないのでご注意ください。当然動作も保証できません

管理者が指定したアプリをユーザ側で任意にインストールすることができるMicrosoftストアアプリのCompany Portal(カンパニーポータル)を初回セットアップ時(Autopilot含む)確実にインストールさせる方法の紹介です。

だらだらと説明が続きますのでやり方だけ知りたい方はスクロールして飛ばしてください。

ビジネス向けMicrosoft Storeの廃止に伴ってUWPアプリの配布方法に「Microsoft Store アプリ (新規)」が追加されたことはご存じの方は多いかと思います。

裏ではWindows Package ManagerのWingetが動いているわけですが、コイツが結構厄介で、うまいこと動いてくれない・想定していたゼロタッチが実現できない状態が続いていました。

なぜ配布がうまくいかないのか

→ インストールされている「アプリインストーラー」が古いから

そもそもですがWinget自体が発展途上であるのに、Wingetを利用したアプリ配布をIntune上で実装してリリースしてしまっていることも原因だと思っています(Win32アプリの配布に関しては現段階でプレビューなので文句言っても仕方ありませんが…)。

Githubのレポジトリを確認するに、アップデートは頻繁に行われており、これらのアップデートはパッケージマネージャー元となるMicrosof Store上の「アプリインストーラー」に適用されるので、我々の利用しているPCへも自動更新される(はず)ですが、初回PC起動直後では更新が行われず、一時的に古いバージョンのままになります(しかもいつ更新されるかわからない)。これによって、Intuneが想定しているWingetの動作がデバイス側で反映されないといったことが発生しているようです。ここに関してはPC出荷時段階のWindowsに組み込まれたアプリインストーラーバージョンに依存するのでどうしようもありません。

今使っているWingetのバージョンを知りたい場合は、アプリインストーラーのバージョンではなく、winget -v でwingetコマンド自体のバージョンを確認しましょう。

Wingetのバージョンが低いと”Microsoft Storeにログインしないとストアアプリをインストールできない”という致命的な問題に出くわしますので、最新のバージョンをインストールすることは必須となります。当然、Microsoft Storeへのログインはビジネスアカウントではできず、MSAが必要になりますから詰みますw

Wingetの仕様の罠

Autopilot時点で必要アプリ(Win32アプリ)をインストールさせて、ユーザがデスクトップに到達した時点ですぐに使いだせるようにしているパターンがほとんどだと思います。

既にMicrosoft Store アプリ (新規)をお試しした方はご存じだと思いますが、Microsoft Store アプリ (新規)で設定したアプリはAutopilot中にインストールさせることができません。これはESP(登録ステータスページ設定)のインストールされるまでデバイスの使用をブロックする機能を個別選択としたときに、ストアアプリが出てこないことから仕様だということが伺えます。

これに関しては納得の理由がここに書いてありました。

winget ツールは、ユーザーとして Windows に初めてログインし、Microsoft Store をトリガーして非同期プロセスの一部として Windows パッケージ マネージャーを登録するまで使用できるようになりません。

https://learn.microsoft.com/ja-jp/windows/package-manager/winget/

Windowsに初めてログインしてからWinget機能が有効化されるまで待たないとダメだよと言っているのです。そりゃAutopilotしている時点でインストールできないわけです。どれくらい待てば使えるようになるのでしょうか?誰もわかりません。私が確認した限りでは、一度デバイスの再起動を挟むと利用できるようになりました。

これに関しては、ドキュメントにも記載がありますが以下のコマンドを叩くと即時使えるようになります。ほう…(面倒くさい…)

Add-AppxPackage -RegisterByFamilyName -MainPackage Microsoft.DesktopAppInstaller_8wekyb3d8bbwe

UWPアプリを確実にインストールさせる手順

上記を踏まえると以下の手順を実施すれば、初回起動後だとしても確実にwingetが使えるようになります。

  • Wingetコマンドを初回ログイン直後に利用できるようコマンドを叩く
  • アプリインストーラー(Winget)を更新する

Powershellスクリプトは以下になります。

// Wingetコマンドを有効化しておく
Add-AppxPackage -RegisterByFamilyName -MainPackage Microsoft.DesktopAppInstaller_8wekyb3d8bbwe

// Wingetを配布パッケージから直接更新する
Add-AppxPackage -Path "Winget最新版.msixbundle"

// 好きなアプリをサイレントで配布する(ここではカンパニーポータル)
winget install --id "9WZDNCRFJ3PZ" --accept-package-agreements --accept-source-agreements

これをintunewinファイルへ変換してWin32アプリとして配布すれば、登録ステータス画面時点でインストールさせることができ、デスクトップに到達した時点ですぐに利用ができる状態になります。

ちなみにMicrosoft Store アプリ (新規)で設定したアプリと上記コマンドで配信させるアプリ同じものをダブらせても大丈夫です。どっちも問題なくインストール済みとして判定されます。

Q.動かないんだけど

A. これは推奨される方法ではありません。IntuneのUWPアプリがESPでイントールを強制できるように待ちましょう。もしくは、ポータルをインストールさせるバッチ(Powershell)をデスクトップに配布してユーザに実行してもらいましょう。

手動でWingetを更新しても大丈夫なのか

msixbundleファイルを利用して直接更新した場合、今後の更新がどうなるのか気になる方はいるかもしれませんが、これに関しては問題なく通常通り更新させることができます。

投稿者 miyu_sakatsuki

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です