App Attach を使用すると、アプリケーション パッケージから Azure Virtual Desktop のユーザー セッションにアプリケーションを動的にアタッチできます。 アプリケーションはセッション ホストまたはイメージにローカルにインストールされないため、セッション ホストのカスタム イメージを少なくし、organizationの運用オーバーヘッドとコストを削減できます。 また、App Attach を使用してアプリケーションを配信すると、ユーザーがリモート セッションでアクセスできるアプリケーションをより詳しい方法で制御できます。
この記事では、Azure portalとAzure PowerShellを使用して、Azure Virtual Desktop で App Attach を使用してアプリケーションを追加および管理する方法について説明します。 Azure CLI を使用してアプリアタッチ アプリケーションを追加または管理することはできません。 開始する前に、 Azure Virtual Desktop の App Attach の概要を確認してください。
前提条件
Azure Virtual Desktop で App Attach を使用するには、次のものが必要です。
セッション ホスト、アプリケーション グループ、ワークスペースを含む既存のホスト プール。
セッション ホストは 、サポートされている Windows クライアント オペレーティング システム を実行する必要があり、少なくとも 1 つの電源をオンにする必要があります。 Windows Serverはサポートされていません。
セッション ホストは、Microsoft Entra IDまたはActive Directory Domain Services (AD DS) ドメインに参加する必要があります。
セッション ホストと同じ Azure リージョン内の SMB ファイル共有。 ホスト プール内のすべてのセッション ホストは、自分のコンピューター アカウントで 読み取り アクセス権を持っている必要があります。 このファイル共有は、アプリケーション イメージを格納するために使用されます。 ファイル共有の要件の詳細については、「ファイル 共有」を参照してください。
セッション ホストがMicrosoft Entra IDに参加したときにAzure Filesを使用するには、閲覧者とデータ アクセス Azure ロールベースのアクセス制御 (RBAC) ロールを Azure Virtual Desktop と Azure Virtual DesktopARM Provider サービス プリンシパルの両方に割り当てる必要があります。 この RBAC ロールの割り当てにより、セッション ホストはアクセス キーまたはMicrosoft Entraを使用してストレージ アカウントにアクセスできます。 ストレージ アカウントは、セッション ホストに使用している VM と同じサブスクリプションに存在する必要があります。
Azure Virtual Desktop サービス プリンシパルに Azure RBAC ロールを割り当てる方法については、「Azure Virtual Desktop サービス プリンシパルへの RBAC ロールの割り当て」を参照してください。 今後の更新では、 Azure Virtual Desktop ARM Provider サービス プリンシパルを割り当てる必要はありません。
ファイル共有に格納されているアプリケーション パッケージまたは App-V パッケージから作成した MSIX または Appx ディスク イメージ。 詳細については、「 イメージの作成」を参照してください。ここで、テスト用に事前構築済みの MSIX パッケージをダウンロードすることもできます。 App-V を使用している場合は、「 App-V 仮想化アプリケーションの作成と管理」を参照してください。
MSIX イメージを追加するには、リソース グループに割り当てられた デスクトップ仮想化共同作成者 Azure ロールベースのアクセス制御 (RBAC) ロールが最低限必要です。 アプリケーション グループにユーザーを割り当てるには、アプリケーション グループに対する
Microsoft.Authorization/roleAssignments/write
アクセス許可も必要です。 このアクセス許可を含む組み込みの RBAC ロールは 、ユーザー アクセス管理者 と 所有者です。Azure PowerShellをローカルで使用する場合は、「Azure Virtual Desktop でAzure PowerShellを使用する」を参照して、Az.DesktopVirtualization モジュールと Microsoft Graph PowerShell モジュールがインストールされていることを確認してください。 または、Azure Cloud Shellを使用します。
App Attach をサポートするコマンドレットを含む Az.DesktopVirtualization PowerShell モジュールのバージョン 4.2.1 以降を使用する必要があります。 Az.DesktopVirtualization PowerShell モジュールは、PowerShell ギャラリーからダウンロードしてインストールできます。
重要
- すべての MSIX および Appx アプリケーション パッケージには、証明書が含まれています。 証明書が環境内で信頼されていることを確認する責任があります。 自己署名証明書は、適切な信頼チェーンでサポートされています。
注意
現在、この問題は、Windows 11 バージョン 24H2 の CimFS イメージに影響を与え、イメージのマウントを妨げます。 2025 年 6 月に利用可能になると推定される修正プログラムに積極的に取り組んでいます。 回避策は、代わりに VHDX イメージを使用するか、24H2 より前のバージョンのWindows 11を使用することです。
アプリケーションを追加する
MSIX イメージ、Appx イメージ、または App-V パッケージ内のアプリケーションをアプリアタッチ パッケージとして Azure Virtual Desktop に追加するには、シナリオに関連するタブを選択し、手順に従います。
Azure portalを使用して、MSIX イメージ、Appx イメージ、または App-V パッケージを App Attach パッケージとして追加する方法を次に示します。
Azure portal にサインインし
検索バーに「 Azure Virtual Desktop 」と入力し、一致するサービス エントリを選択して Azure Virtual Desktop の概要に移動します。
[ アプリアタッチ] を選択し、[ + 作成] を選択します。
[ 基本 ] タブで、次の情報を入力します。
パラメーター 説明 サブスクリプション MSIX イメージ、Appx イメージ、または App-V パッケージを追加するサブスクリプションをドロップダウン リストから選択します。 リソース グループ 既存のリソース グループを選択するか、[ 新規作成 ] を選択して名前を入力します。 ホスト プール ドロップダウン リストから既存のホスト プールを選択します。 場所 App Attach パッケージの Azure リージョンを選択します。 このタブが完了したら、[ 次へ] を選択します。
[ イメージ パス ] タブで、次の情報を入力します。
パラメーター 説明 イメージ パス イメージが Azure Files または入力 UNC に格納されている場合は、[ストレージ アカウントから選択] から選択して UNC パスを指定します。 後続のフィールドは、選択するオプションによって異なります。 ストレージ アカウントから選択する ストレージ アカウント イメージが含まれているストレージ アカウントを選択します。 ファイル共有 [ ファイルの選択] を選択し、イメージのファイル共有とディレクトリを参照します。 追加するイメージの横にあるチェック ボックスをオンにします(たとえば、 MyApp.cim
して 選択します)。MSIX パッケージ イメージから MSIX または Appx パッケージを選択します。 入力 UNC UNC イメージ ファイルへの UNC パスを入力します。 MSIX パッケージ イメージから MSIX または Appx パッケージを選択します。 いずれかのオプション 表示名 アプリケーションのフレンドリ名を入力します。 バージョン 予想されるバージョン番号が表示されていることを確認します。 登録タイプ 使用する 登録の種類 を選択します。 状態コード パッケージの 初期状態 を選択します。 エラー時の正常性チェック状態 セッション ホストでのステージングに失敗した場合は、パッケージの状態を選択します。 この状態は、セッション ホストの正常性チェック状態の AppAttachHealthCheck に対して報告されます。 このタブが完了したら、[ 次へ] を選択します。
ヒント
このタブが完了したら、必要に応じてアプリケーションをホスト プール、ユーザー、グループに割り当てることができます。 または、割り当てを個別に構成する場合は、[ 確認と作成] を選択し、[ アプリアタッチ パッケージの割り当て] に移動します。
省略可能: [ 割り当て ] タブで、次の情報を入力します。
[ ホスト プール] で、アプリケーションを割り当てるホスト プールを選択します。
[ ユーザーまたはユーザー グループの追加] を選択し、アプリケーションを割り当てるユーザーまたはグループを検索して選択します。 完了したら、[選択] を 選択します。
追加した割り当てを確認し、[ 次へ] を選択します。
省略可能: [ タグ ] タブで、必要な名前と値のペアを入力し、[ 確認と作成] を選択します。
[ 確認と作成 ] タブで、検証が合格したことを確認し、デプロイ中に使用される情報を確認してから、[ 作成 ] を選択してアプリケーションを追加します。
App Attach パッケージを割り当てる
ホスト プールとグループとユーザーに App Attach パッケージを割り当てる必要があります。 シナリオに関連するタブを選択し、手順に従います。
注:
ユーザー アカウントはハイブリッド アカウントである必要がありますが (AD DS で作成され、Azure AD に同期されます)、グループは同期されません。
Azure portalを使用して、アプリケーション パッケージをホスト プール、ユーザー、グループに割り当てる方法を次に示します。
ホスト プール
Azure Virtual Desktop の概要から、[ アプリのアタッチ] を選択し、割り当てるアプリアタッチ パッケージの名前を選択します。
[ 管理] セクションで、[ ホスト プール] を選択します。
[ + 割り当て] を選択し、ドロップダウン リストから 1 つ以上のホスト プールを選択します。 前提条件に記載されているように、ホスト プール内のすべてのセッション ホストが自分のコンピューター アカウントで 読み取り アクセス権を持っている必要があることを確認します。
[追加] を選択します。
グループとユーザー
Azure Virtual Desktop の概要から、[ アプリのアタッチ] を選択し、割り当てるアプリアタッチ パッケージの名前を選択します。
[ 管理] セクションで、[ ユーザー] を選択します。
[ + 追加] を選択し、一覧から 1 つ以上のグループまたはユーザーを選択します。
[ 選択] を選択します。
注:
パッケージを追加してアクティブに設定し、ホスト プールとユーザーに割り当てると、アプリケーションがデスクトップ セッションで自動的に使用できるようになります。 RemoteApp を使用する場合は、アプリケーションを RemoteApp アプリケーション グループに追加する必要があります。 詳細については、「 RemoteApp アプリケーション グループを使用して MSIX または Appx アプリケーションを発行する」を参照してください。 アプリアタッチを使用して、MSIX または Appx アプリケーションをデスクトップ アプリケーション グループに追加することはできません。
登録の種類と状態を変更する
MSIX パッケージと Appx パッケージは、 登録の種類 と 状態を変更することで管理できます。 シナリオに関連するタブを選択し、手順に従います。
Azure portalを使用してパッケージの登録の種類と状態を変更する方法を次に示します。
Azure Virtual Desktop の概要から、[ アプリアタッチ] を選択します。 ホスト プール内のすべての既存のパッケージの一覧が表示されます。
変更するパッケージの名前を選択します。
登録の種類を変更するには、[ オンデマンド ] または [ ログオン時に登録] を選択し、[保存] を選択 します。
状態を変更するには、[非アクティブ] または [アクティブ] を選択し、[保存] を選択します。
RemoteApp アプリケーション グループを使用して MSIX または Appx アプリケーションを発行する
ユーザーが MSIX アプリケーションと Appx アプリケーションを使用できるようにするには、RemoteApp アプリケーション グループを使用して発行します。 App Attach パッケージを 割り当てるだけで済むので、App Attach を使用する場合は、デスクトップ アプリケーション グループにアプリケーションを追加する必要はありません。 発行するアプリケーションをホスト プールに割り当てる必要があります。
この記事で追加したパッケージから、Azure portalを使用して RemoteApp アプリケーション グループにアプリケーションを追加する方法を次に示します。
Azure Virtual Desktop の概要で、[ アプリケーション グループ] を選択し、アプリケーションを追加する RemoteApp アプリケーション グループを選択します。
[ アプリケーション] を選択し、[ + 追加] を選択します。 アプリケーション グループが割り当てられているホスト プールで、少なくとも 1 つのセッション ホストの電源がオンになっていることを確認します。
[ 基本 ] タブで、次の情報を入力します。
パラメーター Value/Description アプリケーション ソース ドロップダウン リストから [ アプリアタッチ] を選択します。 [スタート] メニューから、またはファイル パスを指定してアプリケーションを追加する場合は、「RemoteApp を使用してアプリケーションを発行する」を参照してください。 パッケージ ドロップダウン リストからホスト プールで使用できるパッケージを選択します。 リージョン パッケージは 、App Attach からのパッケージです。 アプリケーション ドロップダウン リストからアプリケーションを選択します。 アプリケーション識別子 アプリケーションの一意の識別子を入力します。 表示名 ユーザーに対するアプリケーションのフレンドリ名を入力します。 説明 アプリケーションの説明を入力します。 このタブが完了したら、[ 次へ] を選択します。
[ アイコン ] タブで、[ 既定] を選択してアプリケーションの既定のアイコンを使用するか、[ ファイル パス ] を選択してカスタム アイコンを使用します。 [ ファイル パス] で、次のいずれかのオプションを選択します。
Azure Files参照して、Azure ファイル共有のアイコンを使用します。 [ ストレージ アカウントの選択 ] を選択し、アイコン ファイルを含むストレージ アカウントを選択し、[ アイコン ファイルの選択] を選択します。 アイコンが含まれているファイル共有とディレクトリを参照し、追加するアイコンの横にあるボックス (
MyApp.ico
など) をチェックしてから、[選択] を選択します。.png
ファイルを使用することもできます。 [ アイコン インデックス] に、使用するアイコンのインデックス番号を指定します。 この数値は通常 0 です。ファイル 共有のアイコンを使用するための UNC ファイル パス。 [ アイコン パス] に、アイコン ファイルへの UNC パスを入力します (例:
\\MyFileShare\MyApp.ico
)。.png
ファイルを使用することもできます。 [ アイコン インデックス] に、使用するアイコンのインデックス番号を指定します。 この数値は通常 0 です。
このタブが完了したら、[ 確認と追加] を選択します。
[ 確認と追加 ] タブで、検証に合格したことを確認し、アプリケーションの追加に使用される情報を確認してから、[ 追加 ] を選択して、アプリケーションを RemoteApp アプリケーション グループに追加します。
既存のパッケージを更新する
既存のパッケージを更新するには、更新されたアプリケーションを含む新しい MSIX イメージ、Appx イメージ、または App-V パッケージを指定します。 詳細については、「 新しいバージョンのアプリケーション」を参照してください。
既存のパッケージをインプレースで更新するには、シナリオに関連するタブを選択し、手順に従います。
Azure portalを使用して既存のパッケージを更新する方法を次に示します。
Azure Virtual Desktop の概要から、[ アプリアタッチ] を選択します。 既存のすべてのパッケージの一覧が表示されます。
更新するパッケージを選択し、概要から [ 更新] を選択します。
更新されたパッケージの情報を入力します。
サブスクリプション と リソース グループ には、現在のパッケージの値が事前に入力されています。
パッケージを更新する ホスト プール を選択します。
[ ストレージ アカウントから選択 ] または [ 入力 UNC] からイメージ パスを選択します。 後続のフィールドは、選択するオプションによって異なります。
- [ ストレージ アカウントから選択] で、更新されたイメージを含む ストレージ アカウント を選択します。 [ ファイルの選択] を選択し、イメージのファイル共有とディレクトリを参照します。 追加するイメージの横にあるチェック ボックスをオンにします(たとえば、
MyApp.cim
して 選択します)。 - [ 入力 UNC] に、イメージ ファイルへの UNC パスを入力します。
- [ ストレージ アカウントから選択] で、更新されたイメージを含む ストレージ アカウント を選択します。 [ ファイルの選択] を選択し、イメージのファイル共有とディレクトリを参照します。 追加するイメージの横にあるチェック ボックスをオンにします(たとえば、
MSIX パッケージの場合は、イメージから MSIX または Appx パッケージを選択します。
フィールドが完了したら、[ 更新] を選択します。
App Attach パッケージを削除する
不要になった App Attach パッケージを削除できます。 最初にホスト プールまたはユーザーとグループの割り当てを解除する必要はありません。 シナリオに関連するタブを選択し、手順に従います。
ヒント
また、他のアプリケーションの種類と同じ方法で、RemoteApp として発行された MSIX パッケージ内のアプリケーションをアプリケーション グループから削除することもできます。 詳細については、「 アプリケーションの削除」を参照してください。
Azure portalを使用して App Attach パッケージを削除する方法を次に示します。
Azure Virtual Desktop の概要から、[ アプリアタッチ] を選択します。 既存のすべてのパッケージの一覧が表示されます。
削除するパッケージの名前の横にあるチェック ボックスをオンにし、[削除] を選択 します。 パッケージは、割り当てられているホスト プールからも削除されます。
自動更新を無効にする
MSIX アプリケーションと Appx アプリケーションの自動更新を無効にすることをお勧めします。 自動更新を無効にするには、セッション ホストで次のレジストリ値を設定する必要があります。
キー: HKLM\Software\Policies\Microsoft\WindowsStore
- 型: DWORD
- 名前: AutoDownload
- 値: 2
- 説明: Microsoft Store の自動更新を無効にします。
キー: HKCU\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager
- 型: DWORD
- 名前: PreInstalledAppsEnabled
- "Value/値": 0
- 説明: コンテンツ配信の自動ダウンロードを無効にします。
キー: HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager\Debug
- 型: DWORD
- 名前: ContentDeliveryAllowedOverride
- 値: 2
- 説明: コンテンツ配信の自動ダウンロードを無効にします。
これらのレジストリ値は、セッション ホストの管理方法に応じて、グループ ポリシーまたはIntuneを使用して設定できます。 また、各セッション ホストで管理者として次の PowerShell コマンドを実行して設定することもできますが、これを行う場合は、オペレーティング システム イメージにも設定する必要があります。
# Disable Microsoft Store automatic update
If (!(Test-Path "HKLM:\Software\Policies\Microsoft\WindowsStore")) {
New-Item -Path "HKLM:\Software\Policies\Microsoft\WindowsStore" -Force
}
New-ItemProperty -Path "HKLM:\Software\Policies\Microsoft\WindowsStore" -Name AutoDownload -PropertyType DWORD -Value 2 -Force
# Disable content delivery automatic download
If (!(Test-Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager")) {
New-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Force
}
New-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" -Name PreInstalledAppsEnabled -PropertyType DWORD -Value 0 -Force
# Disables content delivery automatic download
If (!(Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager\Debug")) {
New-Item -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager\Debug" -Force
}
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager\Debug" -Name ContentDeliveryAllowedOverride -PropertyType DWORD -Value 2 -Force
次の手順
スタート メニューまたは RemoteApp を使用してファイル パスからアプリケーションを発行する方法について説明します。 詳細については、「アプリケーションの 発行」を参照してください。