SB C&Sの最新技術情報 発信サイト

C&S ENGINEER VOICE

AVD環境でMSIX app attachを利用する

Microsoft Azure
2021.06.21

はじめに

「Windows Virtual Desktop」(WVD)の名称が「Azure Virtual Desktop」(AVD)に変わりました。
このブログでは、表記をWVDのままにしています。

WVDでMSIX app attachを利用する環境を構築してみましたので、その概要をご説明します。
MSIX app attachは、プレビューの時からとても面白そうな機能と思っていました。
今回、これがGAされ環境構築も比較的簡単にできるようになっています。
このブログでは、デスクトップアプリケーションをMSIXイメージ化して、WVDのセッションホストで利用できるところまでのポイントをご紹介します。
MSIXイメージの作成後に、MSIXイメージを仮想マシン上で動作確認をする内容も含めています。

MSIX app attachの概要

MSIX app attachは、MSIXパッケージを配信する機能です。
MSIX自体はアプリケーションの新しいパッケージ形式です。アプリケーションをMSIXパッケージ化してMSIXイメージ化し、OSにアタッチすることで利用可能となります。
いったんMSIX app attachを準備できれば、OSに対してのインストーラーを実行せずにアプリケーションを利用できるようになります。
つまりWVD環境においてはOSとアプリケーションを分離して管理ができるようになります。
それによって、アプリケーションを追加するためだけにマスターイメージを更新する必要がなくなります。


事前に準備した環境等

・Hyper-V環境、および、仮想マシン(WVDセッションホストと同じバージョンのWin10)
・WVD環境(AD DS利用)
・Azure Files(AD DS認証のファイル共有)
・MSIXイメージ化するアプリのインストーラー(今回は、Chrome Browserダウンロード版)


手順の全体概要

手順の概要は大きく分けると、以下の4つになります。

手順1. 自己証明書作成とエクスポート

Image0-01.png

手順2. アプリのMSIXパッケージ化・イメージ作成

Image0-02.png

手順3. MSIXイメージの動作確認(省略可)

Image0-03.png
作成したMSIXイメージの動作確認をしない場合は、ここの作業は不要です。

手順4. WVDへの適用

Image0-04.png


手順

手順1. 自己証明書作成とエクスポート

ここでは、MSIXを利用するために必要な証明書の作成と、他の端末でも利用できるように証明書ファイル(pfx)をエクスポートします。
事前に準備したHyper-Vの仮想マシン上で作業を行います。
手順2の準備のため、作業前にスナップショットも取得しておきます。

1. 自己証明書作成

以下のPowerShellを実行します。
Image1-01.png

以下のような証明書が作成されます。
Image1-02.png

2. 自己証明書のエクスポート

作成した自己証明書をエクスポートします。
「秘密キー」付きでエクスポートすることがポイントです。
エクスポートした証明書ファイル(pfx)はいったん別のデバイス等に保存しておきます。
Image1-03.png
証明書の作成作業は、以上となります。


手順2. アプリのMSIXパッケージ化・イメージ作成

仮想マシンでアプリケーションのインストールをキャプチャーしてMSIXのパッケージ化をおこないます。
そのあとからVHDファイルに展開してイメージ化します。

1. MSIXイメージ作成環境準備

作業を行う仮想マシン上で不要なプロセスのキャプチャーを防ぐため、以下のコマンドを実行します。
Image2-01.png

2. MSIX Packaging ToolでアプリのMSIXパッケージ作成

「MSIX Packaging Tool」をインストールし、デスクトップアプリケーションからMSIXパッケージを作成します。
そのために、まずMicrosoft Storeで「MSIX Packaging Tool」を検索・インストールします。
Image2-02.png


MSIX Packaging Toolを起動して、適宜パラメーターを入力します。
続けてデスクトップアプリケーション(今回はChrome Browser)のインストールをキャプチャーして、MSIXパッケージを作成します。
既定値のままの場合、キャプチャー後はデスクトップにMSIXパッケージが作成されます。
Image2-03.png Image2-04.png Image2-05.png Image2-06.png

下の例では、デスクトップ上にMSIXパッケージが作成されたことが確認できます。
Image2-07.png

3. msixmgrツールでMSIXイメージを作成

msixmgrツールで、2で作成したMSIXパッケージをMSIXイメージ化します。
下記のURLから、msixmgrツールをダウンロードします。
msixmgr ツールのダウンロード
https://docs.microsoft.com/ja-jp/azure/virtual-desktop/app-attach-image-prep#expand-msix

ダウンロードしたmsixmgrツール「msixmgr.zip」を任意の場所に展開します。
以降の例では「msixmgr.zip」をc:\msixmgrに展開し、作業フォルダーとしてc:\tempを指定しています。
Image2-08.png

次に、手順2の2で作成したmsixパッケージを作業フォルダーにコピーします。
msixmgrツールとPowerShellを使って、MSIXパッケージからMSIXイメージをつくります。
以下のPowerShell を実行し空のドライブを作成します。
Image2-09.png


次の作業で必要となるため、作成されたドライブレターを確認しておきます。
以下の例ではEドライブが該当します。
Image2-10.png


MSIXパッケージをディスクに展開するため、以下のコマンドを実行します。
展開先のドライブは先ほど確認したものになります。
Image2-11.png


また、手順2で必要となるVolumeIDを取得するために、mountvolコマンドを実行します。
実行結果から該当するドライブレターのVolumeIDの値をメモします。
以下の例では赤枠内のd3809a6a-0f29-4718-8717-c0bd1507b0d3 が該当する値となり、これをメモします。
Image2-12.png

ここの手順で行った場合のMSIXイメージは、c:\tempフォルダーにchromebwsr.vhd として作成されます。
このMSIXイメージは以降の手順で利用しますので、別のデバイス等に保存しておきます。
MSIXイメージの作成は、以上となります。


手順3. MSIX app attachの動作確認(省略可)

仮想マシンにMSIXイメージをマウントして、アプリケーションの動作確認をします。

作成したMSIXイメージの正常動作を確認するため、別の仮想マシンで手順を進めます。
参考URL
https://docs.microsoft.com/ja-jp/azure/virtual-desktop/app-attach

1. 自己証明書とMSIXイメージの配置

自己証明書とMSIXイメージをローカルにコピーし、自己証明書のインポートをおこないます。
まず、手順1の自己証明書ファイルと手順2のMSIXイメージファイルを、仮想マシンのローカルの任意のフォルダーにコピーします。
以下の例では、c:\temp フォルダーにコピーしています。
Image3-01.png


自己証明書ファイルをダブルクリックして証明書のインポートをします。
インポートウィザードの中で、保存場所として「ローカルコンピュータ」を選び、ストアは「信頼されたユーザー」を選択します。
Image3-02.png Image3-03.png Image3-04.png

2. ステージングと登録

MSIX イメージのマウントと登録を、PowerShell でおこないます。

Hyper-V用のコマンドが必要なため、以下のPowerShellを実行してHyper-V機能を有効化します。
Image3-05.png
(再起動の要求があった場合は、再起動します)

ここからは、実行結果を紹介しておきます。
このスクリプトでは、変数の値を以下のようにしています。
Image3-06.png


Image3-07.png

3. 動作確認

正常にMSIX app attach が接続され、アプリケーションが実行可能なことを確認します。

「スタートメニュー」にアプリが登録されていることを確認します。
ここでは、「Google Chrome」の登録が確認できます。
Image3-08.png


「設定」>「アプリ」>「アプリと機能」の中に該当のMSIXアプリケーションがインストールされていることを確認します。
「Google Chrome」がインストールされています。
Image3-09.png


「ディスクの管理」でドライブレターのないディスクがマウントされていることを確認します。
Image3-10.png


アプリケーションを起動して実行できることを確認します。
「Google Chrome」が起動しブラウジングできることを確認します。
Image3-11.png

4. 登録解除とステージング解除

登録したアプリの解除とステージングの解除を行い、エラーがないことを確認します。
MSIX の登録解除と、マウントしたMSIXのイメージをアンマウントするPowerShellスクリプトを実行します。
Image3-12.png
MSIX app attach の動作確認は、以上となります。


手順4. WVDへの適用

1. セッションホストへ自己証明書のインストール

各セッションホストにサインインして、自己証明書を「信頼済みユーザー」ストアへのインポートを実行します。
通常は、事前にマスターイメージにインストールしておくことをおススメします。

2. Azure Filesへの配置

Azure Filesのファイル共有上に、MSIXイメージを配置します。
「アップロード」を選択して、手順2で作成したMSIXイメージをアップロードします。
Image4-01.png


MSIXイメージへのパスを確認するため、「接続」を選択して表示されるスクリプト内のパスのメモを取ります。
以下の場合は、\\sbcs45stgac.file.core.windows.net\wvdmsixhdd\chromebwsr.vhd となります。
Image4-02.png


セッションホストがAzure Filesのファイル共有にアクセスできるようにします。
セッションホストのデバイスグループに対して「ストレージ ファイル データのSMB共有の管理者特権の共同作成者」ロールを割り当てます。
Image4-03.png

3. WVDへの登録

WVDの登録設定を行います。
ホストプールからMSIXパッケージで、「追加」を選択します。
Image4-04.png


前の手順でメモをした\\sbcs45stgac.file.core.windows.net\wvdmsixhdd\chromebwsr.vhd をMSIXパッケージパスとして入力します。
Image4-05.png


次に、アプリケーショングループで「アプリケーション」を選び「追加」を選択します。
Image4-06.png


MSIXパッケージを選択し、アプリケーション名を入力します。
Image4-07.png


MSIXアプリケーションの割り当ては、デスクトップと同一のユーザーグループとなります。
Image4-08.png

4. WVDでの動作確認

WVDのセッションホストにサインインして、アプリケーションがインストールされていることを確認します。
Image4-09.png


また、MSIXイメージがドライブレターなしでマウントされていることも確認します。
Image4-10.png


アプリケーションを起動して、動作の確認ができれば終了です。
Image4-11.png


まとめ

MSIX app attachがGAされる前に、PowerShellスクリプトを使った方法でMSIXイメージのアタッチを検証していました。
Active Directoryのグループに対してGPOにスクリプトを記入し、ユーザーがサインインする前にファイル共有に配置したMSIXイメージをアタッチさせる方法など、いろいろと試行錯誤した経験があります。
現在はAzure Portal上の操作で利用することが可能となりましたが、配布がアプリケーショングループ単位になるなど、やや自由度が無くなった感もあります。
しかし、MSIX app attachを利用するとWVDの運用におけるOSイメージからアプリケーションを分離した運用管理ができるようになるなど、メリットは大きいと考えられます。
今後、追加のアップデートがあればご紹介していきたいと思います。

著者紹介

ICT事業本部 ICT事業戦略・技術本部 技術統括部 第1技術部 3課
光永 正明