Microsoft Intuneは、MSIX パッケージ アプリをマネージド Windows デバイスにサイレント モードで展開できます。インストール時にユーザーの操作は必要ありません。 このガイドでは、コード署名、証明書信頼の配布、アプリの作成、割り当て、トラブルシューティングなど、完全な展開ワークフローについて説明します。
前提条件
Intune を使用して MSIX アプリを展開する前に、次の内容があることを確認してください。
- MSIX パッケージがビルドされ、展開する準備ができている
- Microsoft Intune サブスクリプション (Microsoft 365 E3/E5、Enterprise Mobility + Security に含まれます)
- ターゲット ユーザーまたはデバイスを表すMicrosoft Entra ID グループ
- コード署名証明書 ( コード署名の要件を参照)
コード署名の要件
Intune 経由で展開されるすべての MSIX パッケージに署名する必要があります。 Windowsでは、MDM 経由で展開された場合でも、署名されていない MSIX パッケージはインストールされません。
証明書に署名するには、次の 2 つのオプションがあります。
オプション 1: 自己署名証明書 (コストなし、内部/マネージド デバイスのみ)
自己署名証明書は、コストなしで MSIX パッケージに署名できますが、証明書はすべてのターゲット デバイスで信頼されている必要があります。 Intune では、 信頼された証明書 構成プロファイルを使用して、この信頼を自動的に配布できます。
このオプションは、すべてのターゲット デバイスが Intune で管理され、アプリが組織外に配布されない場合に適しています。
オプション 2: Azure アーティファクト署名(旧名: 信頼された署名)(ほとんどのケースで推奨)
Azure Artifact Signing (旧称 Trusted Signing) は、ハードウェア トークンなしで CA 信頼証明書を提供します。 証明書は CI/CD パイプライン (GitHub Actions、Azure Pipelines) と直接統合されます。 現在の価格については、Azure成果物署名の価格に関するページを参照してください。
証明書は CA で信頼されているため、Windowsデバイスは自動的に信頼します。追加の Intune 構成プロファイルは必要ありません。 これは、ほとんどのエンタープライズ シナリオで低摩擦オプションです。
MSIX パッケージへの署名に関するガイダンスについては、「 SignTool を使用してアプリ パッケージに署名する」を参照してください。
オプション A: 自己署名証明書を使用してデプロイする
自己署名証明書を使用している場合は、LOB アプリを作成する 前に 次の手順を実行してください。 Azure アーティファクト署名を使用する場合は、Option B に進みます。
手順 1: 自己署名証明書を作成してエクスポートする
ビルド マシンで、自己署名証明書を作成してエクスポートします。
# Create a self-signed code signing certificate
$cert = New-SelfSignedCertificate `
-Subject "CN=MyCompany, O=MyCompany, C=US" `
-Type CodeSigningCert `
-CertStoreLocation Cert:\CurrentUser\My `
-HashAlgorithm SHA256
# Export the public key (.cer) for Intune distribution — no password required
Export-Certificate -Cert $cert -FilePath "MyCompanyCert.cer"
手順 2: MSIX パッケージに署名する
ローカル証明書ストアの証明書を使用して署名します。ビルド マシンに PFX やパスワードは必要ありません。
# Sign using the certificate thumbprint
signtool sign /fd SHA256 /sha1 $cert.Thumbprint "MyApp.msix"
ヒント
別のマシン (CI/CD パイプラインなど) にサインオンする必要がある場合は、 Export-PfxCertificate を使用して PFX をエクスポートし、パスワードをパイプライン シークレット変数として格納します。スクリプトにハードコーディングしたり、ソース管理にコミットしたりしないでください。
手順 3: Intune で信頼された証明書プロファイルを作成する
このプロファイルでは、証明書の公開キーがターゲット デバイスにプッシュされるため、Windowsは自己署名署名を信頼します。
- Intune 管理センターで、Devices>Configuration>Create ポリシーに移動します
- プラットフォームとして
Windows 10 以降 、プロファイルの種類としてTemplates を選択し、Trusted certificate - 手順 1 でエクスポートした
.cerファイルをアップロードする - 宛先ストアをローカル コンピューターに設定する - 信頼できるユーザー
- アプリを受信する同じデバイスまたはユーザー グループにプロファイルを割り当てる
- [ 作成 ] を選択します。Intune は、アクティブなオンライン デバイスにプッシュ通知を送信します。通常、数分以内に証明書をチェックインして受け取ります。 バックグラウンド同期間隔は、通知を受信していないデバイスの場合は 8 時間です。
Important
LOB アプリの 前 または 同時に、 信頼された証明書プロファイルを展開します。 証明書が信頼される前にアプリがデバイスに到達すると、インストールは失敗します。
オプション B: Azure成果物署名 (以前の信頼された署名) を使用してデプロイする
Azure Artifact Signing (旧称 Trusted Signing) を使用している場合、証明書は既にWindowsによって信頼されています。 Intune では、信頼された証明書プロファイルは必要ありません。
azure/trusted-signing-action GitHub Actions タスクまたは同等のAzure Pipelines統合を使用するか、Azure Artifact Signing (旧称 Trusted Signing) ドキュメントのローカル署名ガイダンスに従って、MSIX パッケージに署名します。
Intune で基幹業務アプリを作成する
- Intune 管理センターで、[アプリ>すべてのアプリ>追加] に移動します。
- [アプリの種類] で [基幹業務アプリ] を選択し、[選択] を選択します。
- [ アプリ パッケージ ファイル] で、署名された
.msix(または.msixbundle) ファイルをアップロードします - Intune はパッケージ メタデータを自動的に読み取ります。設定された Name、Publisher、および App version フィールドを確認します。
- 残りの必須フィールドを全て入力してください。
- 説明 — アプリの機能
- Publisher — 組織名 (パッケージから事前に入力)
- アプリのインストール コンテキスト - コンピューター全体のインストール (推奨) の 場合は [デバイス ] を選択し、ユーザーごとのインストールには [ユーザー ] を選択します
- [ 次へ ] を選択して スコープ タグ を使用する場合はスコープ タグを構成し、 次に もう一度選択します
- [ 割り当て] ページで 、アプリを割り当てます。
- 必須 - ユーザー プロンプトなしでアプリがサイレント モードでインストールされる
- 登録済みデバイスの場合はavailable - オプションのインストールのためにアプリがポータル サイトに表示されます
- アンインストール - 対象のデバイスからアプリを削除します
- [次へ] を選択し、設定を確認して、[作成] を選択します。
Intune は展開をキューに入れます。 デバイスは、次の Intune 同期サイクル中にアプリを受信してインストールします。
注
Intune 経由で 必須としてインストール された MSIX アプリは、デバイス コンテキストでサイレント インストールされます。 ユーザーに UAC プロンプトまたはインストール ウィザードが表示されません。
インストールを検証する
アプリが正常にデプロイされたことを確認するには:
- Intune 管理センターで、[ アプリ>すべてのアプリ ] に移動し、アプリを選択します
- デバイスごとの結果を表示するには、[ デバイスのインストール状態 ] または [ ユーザーのインストール状態 ] を選択します
- インストール済みの状態を探します。 インストールされていない一般的な状態:
| 地位 | 説明 |
|---|---|
| 該当なし | デバイスが割り当てられたグループに含まれていない |
| Pending | デプロイがキューに入りましたが、デバイスはまだ同期されていません。 |
| 失敗しました | インストール エラー - エラー コードの詳細を参照してください |
| インストールされていない | アプリがまだ受信されていないか、遅延インストールされている |
インストールに失敗した場合は、次に示すエラー コードに注意し、「 トラブルシューティング 」を参照してください。
アップデート管理
新しいバージョンのアプリを発行するときに、更新された MSIX パッケージを同じアプリ エントリにアップロードします。
- [アプリ] に移動>すべてのアプリでアプリを選択します
- プロパティ>を選択し、アプリ情報の横にある編集
- [ アプリ パッケージ ファイル] で、新しい
.msixファイルをアップロードします - 変更を保存する - Intune はバージョンの変更を検出し、次の同期時に割り当てられたデバイスに更新プログラムをプッシュします
注
Intune では、MSIX マニフェストの バージョン番号 を使用して更新プログラムを検出します。 各リリースをビルドする前に、必ず .appxmanifest のバージョン番号を増やしてください。
Troubleshooting
署名または証明書の信頼エラー
自己署名証明書を使用している場合、署名証明書がデバイスで信頼されていない場合、MSIX のインストールは自動的に失敗します。 診断するには:
- Intune 管理センターで、デバイスの構成プロファイルに移動し、[信頼された証明書プロファイル] に [成功] と表示されていることを確認します
- デバイスで certlm.msc を開き、署名証明書がローカル コンピューター>信頼されたユーザーに表示されていることを確認します
- プロファイルがまだ 保留中の場合は、手動同期をトリガーします ( 「保留中」でアプリがスタックしているを参照してください)
0x80073CF3 - パッケージの更新、依存関係、または競合の検証に失敗しました
このエラーは、 ERROR_INSTALL_PACKAGE_DOWNGRADE を示しています。新しいバージョンのパッケージが既にデバイスにインストールされています。 チェック:
- アップロードされた MSIX のバージョンが、ターゲット デバイスに現在インストールされているバージョンより高い
- 必要に応じて、展開を再試行する前に、デバイスから既存のパッケージをアンインストールします
- その他の原因 (依存関係の競合、フレームワークの不一致) については、MSIX 展開のトラブルシューティングを参照してください
0x80073CF0 — パッケージを開けませんでした
インストール中に MSIX パッケージを開けませんでした (ERROR_INSTALL_OPEN_PACKAGE_FAILED)。 チェック:
- パッケージ ファイルが完全にアップロードされ、破損していません
- MSIX は有効です。アップロードする前にローカルで開いてテストします
- アップロードが中断された可能性がある場合は、パッケージを再アップロードしてから、割り当てを再試行します
0x80070005 — アクセスが拒否されました
アクセス許可が不十分であることを示します (E_ACCESSDENIED)。 展開アカウントとターゲット デバイスに必要なアクセス権があることを確認し、アプリと必要な証明書プロファイルが正しく割り当てられていることを確認します。 コンテキストの不一致 (ユーザー インストールとして割り当てられているが、パッケージにマシン全体のインストールが必要な場合) が原因となることがあります。その場合は、デバイスインストールコンテキストに切り替えてください。 その他の原因と修復手順については、 MSIX 展開のトラブルシューティングに関するページを参照してください。
アプリが "保留中" で停止する
- デバイスで Intune の手動同期をトリガーするには、設定、アカウント、>職場または学校アクセス に移動し、>自分のアカウントを選択して>情報> [同期] をクリックします。
- または、Intune 管理センターから [デバイス] に移動し>デバイス >Sync を選択します
デバイス上のインストール ログの確認
より詳細な診断を行う場合は、次の 2 つのログ ソースを確認してください。
Intune 管理拡張機能ログ — LOB アプリのダウンロードと展開のアクティビティを追跡します。
%ProgramData%\Microsoft\IntuneManagementExtension\Logs\IntuneManagementExtension.log
AppxDeployment-Server イベント ログ — MSIX インストール自体を追跡します。
イベント ビューアー Applications and Services Logs Microsoft Windows AppxDeployment-Server に移動します- エラー イベントをフィルター処理し、パッケージ ファミリ名に一致するエントリを探す
または PowerShell から:
Get-AppxLog | Where-Object { $_.Message -match "MyApp" } | Select-Object TimeCreated, Message
両方のログ ソースでアプリ名またはパッケージ ファミリ名を検索し、関連するインストール試行を見つけます。