今回は、Azure Virtual Desktop (AVD) のホストプール作成時に使用するイメージ (Windows 10/11) を作成する方法について、自分の整理も兼ねて、まとめてみようと思います。
Azure Virtual Desktop (AVD)用イメージの作成手順
Azure 仮想マシン上に AVD用 Windows 10/11 のデプロイ
1) Azure ポータルに接続し、「Virtual Machines」を選択します。
2) 「+ 作成」-「+ Azure 仮想マシン」を選択します。
3) 「基本」-「イメージ」-「すべてのイメージを表示」を選択します。
4) 「Microsoft Windows 11」-「選択」-「Windows 11 Enterprise multi-session, ...」のイメージを選択します。
※ Microsoft 365 をイメージに含める場合、「Windows 11 Enterprise multi-session + Microsoft 365 Apps」などのイメージを選択します。(2021/12月時点で Preview)
※ Windows 10 イメージを作成する場合は、「Microsoft Windows 10」から該当のイメージを選択します。
5) 「ライセンス」:「マルチテナントをホストする権利を持つ有効な Windows 10 ライセンスを所有しています。」にチェック後、必要項目を入力し、仮想マシンをデプロイします。
Azure Virtual Desktop (AVD) 用 Windows 10/11 の日本語化
Azure 仮想マシンに Windows 10/11 をデプロイした場合、言語が英語になります。
Azure Virtual Desktop (AVD) で日本語化された Windows 10/11 を使用する必要がある場合は、OS の日本語化を実施します。
Windows 11 の日本語化
Windows 10 の日本語化
Azure ファイル共有 (FSLogix プロファイル 配置用) 作成
1) Azure Storage サービスをデプロイし、FSLogix プロファイル (ユーザー プロファイル) 配置用の「ファイル共有」(例: profiles など) を作成します。
2) Azure Storage サービス - 「データ ストレージ」-「ファイル共有」を選択します。
3) 「ファイル共有の設定」-「Azure Directory : 構成されていません」を選択します。
4) 「Azure Active Directory Domain Services」-「セットアップ」を選択します。
5) 「このファイル共有に対して Azure Active Directory Domain Services (Azure AD DS) を有効にする。」にチェックし、「保存」を選択します。
※ 正常に処理が完了後「Azure Active Directory Domain Services」が「有効」になったことを確認します。
参考 URL
6) 1) で作成した ファイル共有 (例: profiles など) を選択します。
7) 「アクセス制御(IAM)」-「+ 追加」-「ロールの割り当ての追加」を選択します。
8) 「ロール」: 「ストレージ ファイル データの SMB 共有の管理者特権の共同作成者」を選択し、「次へ」を選択します。
9) 「メンバー」: 「アクセスの割り当て先」-「ユーザー、グループ、またはサービス プリンシパル」を選択し、AVDにログインするユーザー、グループを選択後、「レビューと割り当て」を選択し、ロールの割り当てを追加します。
Azure ファイル共有 (FSLogix プロファイル 配置用) 用のプライベート リンク作成
今回、Azure Virtual Desktop の FSLogix プロファイル を、Azure ファイル共有に配置しますが、Azure Virtual Desktop 用 Windows 10/11 仮想マシン から Azure ファイル共有 への接続を プライベート接続 で実現するため、Azure ファイル共有への接続用 プライベート エンドポイント を作成します。
1) Azure ポータル から Private Link を選択し、「作成」を選択します。
2) 「プライベート エンドポイント」-「+作成」を選択します。
3) プライベート エンドポイント名などの必要項目を入力後、「次: リソース」を選択します。
4) リソースの種類 :「Microsoft.Storage/storageAccounts」、リソース :「ファイル共有を作成している Azure Storage アカウント名」、対象サブリソース :「file」を選択し、「次: 仮想ネットワーク」を選択します。
5) ネットワーク : プライベート エンドポイントを展開する「仮想ネットワーク」、「サブネット」を選択後、「プライベート IP 構成」を選択し、「次: DNS」を選択します。
6) プライベート DNS ゾーンと統合する :「はい」を選択後、プライベート リンクを作成するサブスクリプション、リソースグループを選択し、「次: タグ」を選択します。
7) 必要に応じて「タグ」を入力し、「次: 確認および作成」を選択後、プライベート エンドポイントの作成を実施します。
※ プライベート エンドポイント作成後、Azure 仮想マシン上より プライベート エンドポイント に紐づけられた Azure ファイル共有 URL の名前解決 (nslookup コマンドなど) を実施すると、「10.0.2.4」のように プライベート アドレス が返されるようになります。
Azure ファイル共有 (FSLogix プロファイル 配置用) のアクセスキー取得
1) Azure ポータル から 作成した Azure ファイル共有 を選択後、「接続」を選択します。
2) 「Windows」-「認証方法」:「ストレージ アカウント キー」を選択し、表示されたコマンドをコピーして控えます。
3) AVD用 Windows 11/10 仮想マシンに戻り、PowerShell を管理者として起動します。
4) 2) でコピーしたコマンドを実行し、ネットワーク ドライブの割り当てが正常に行わえたことを確認します。
[補足]
AVD ユーザーが自身のユーザー プロファイル コンテナの作成を許可、かつ、作成者のみが作成したユーザー プロファイル コンテナへのアクセスを許可させる場合には、以下のコマンドを実行し、アクセス権限を変更します。
icacls <ドライブレター>: /grant <ユーザー(グループ) アカウント e-mail>:(M) icacls <ドライブレター>: /grant "Creator Owner":(OI)(CI)(IO)(M) icacls <ドライブレター>: /remove "Authenticated Users" icacls <ドライブレター>: /remove "Builtin\Users" |
[参考情報]
Install FSLogix Agent - FSLogix | Microsoft Docs
Profile Container registry configuration settings - FSLogix | Microsoft Docs
Azure Files Active Directory Domain Services を使用した FSLogix プロファイル コンテナーの作成 - Azure | Microsoft Docs
FSLogix インストール/設定
FSLoigix は、AVD接続ユーザーのユーザープロファイル情報を管理する機能 (ユーザープロファイルをVHD/VHDX形式でAzure Blob/Files、Microsoft 365上などに配置) が備わっており、以下のような機能を使用することが可能になっています。
- Profile Containers : 複数のファイルサーバーなどを指定可能。
※ 複数のファイルサーバーを指定した場合、Active/Standby構成になり、Active 側にのみユーザープロファイル情報が更新されるため、Standby側にActive側に保存されたユーザープロファイルを同期する仕組みを別途検討する必要がある。
- Cloud Cache : ファイル サーバーとAzure Blobなどを併用し、Active/Active構成を実現可能。
※ VHD/VHDX形式のユーザープロファイルをマウントする際にキャッシュ データが読み込まれるため、ログオン/ログオフのパフォーマンスが低下する可能性あり。
- Office Containers : Outlook/OneNote/OneDrive などを使用
- Application Masking : WVDイメージにインストールしたアプリケーション (Excel/Word など) を、管理者が指定したユーザーにのみ使用を制限することが可能
- Java Version Control : ブラウザなどで各種アプリケーションなどに使用される Javaのバージョンを制御することが可能
※ 今回は「Profile Containers (Azure Files)」を使用することにします。
参考情報
1) AVD用 Windows 10/11 仮想マシンに リモート デスクトップ (RDP) で接続し、管理者アカウントでログインします。
2) 「https://aka.ms/fslogix_download」から FSLogix をダウンロード (zip形式) 後、AVD用 Windows 10/11 仮想マシン上の任意のパスに展開します。
※ 今回は「c:\FSLogix」配下に展開します。
3) 2) で回答したパス - x64 - Release に移動し、「FSLogixAppsSetup.exe」を起動し、インストールを実施します。
4) 「I agree to the license terms and conditions」にチェックし、「install」を選択します。
5) インストールが完了後、「Close」を選択し、画面を閉じます。
6) レジストリ エディタ (regedit) を開きます。
7) 「コンピューター\HKEY_LOCAL_MACHINE\SOFTWARE\FSLogix」- 右クリック -「 新規」-「キー」を選択します。
7) 「Profiles」というキーを作成します。
8) 7) で作成したキー - 右クリック -「新規」-「DWORD (32ビット) 値(D)」を選択します。
9) 名前:「Enabled」、データ : 0x00000001 (1) に変更します。
10) 7) で作成したキー - 右クリック -「新規」-「複数行文字列値(M)」を選択します。
11) 名前:「VHDLocations」、データ :「ユーザー プロファイルを配置するAzure ファイル共有のパス」に変更します。
※ 今回の場合、Azure ファイル共有パスに「\\****.file.core.windows.net\profiles」を設定します。
12) レジストリ エディタ (regedit) を終了します。
AVD用 Windows 10/11 OS 設定変更
1) AVD用 Windows 10/11 仮想マシンに リモート デスクトップ (RDP) で接続し、管理者アカウントでログインします。
2) 以下の URL を参照し、各種設定を変更します。
- Windows Defender を構成する
- 自動更新を無効にする
- Windows 10 PC のスタート画面のレイアウトを指定する (省略可能)
- タイム ゾーン リダイレクトを設定する
- ストレージ センサーを無効にする
[参考情報]
Windows Server 2016 または2019で Microsoft Defender ウイルス対策の除外を構成する - Windows security | Microsoft Docs
4) リモート デスクトップ (RDP) 関連の設定を変更します。
- RemoteAppLogoffTimeLimit:RemoteApp Client終了後から自動ログオフまでの時間を設定 (ミリ秒)
- fResetBroken:
有効 (1):タイムアウトの時間に達したセッションをすべて終了 (ログオフ)
無効 (0):タイムアウトしたセッションは、リモート デスクトップ サービスによって常に切断
- MaxConnectionTime (ミリ秒):RDP接続可能時間を設定。閾値を超えた場合、ログオフが行われる。
- MaxDisconnectionTime (ミリ秒):RDP接続の切断後から、自動ログオフまでの時間を設定。
- MaxIdleTime (ミリ秒):最大アイドルタイムアウト時間を設定。閾値を超えた場合、ログオフが行われる。
# コマンド実行例 (PowerShell (管理者権限) から実行。設定値は要件に応じて変更)
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v RemoteAppLogoffTimeLimit /t REG_DWORD /d 0 /f reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v MaxConnectionTime /t REG_DWORD /d 10800000 /f reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v MaxDisconnectionTime /t REG_DWORD /d 5000 /f reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v MaxIdleTime /t REG_DWORD /d 7200000 /f |
※ 必要に応じて、ドメインのグループポリシーで設定することも可能。
[参考情報]
Azure VM でリモート デスクトップの接続が頻繁に切れる - Azure Virtual Machines | Microsoft Docs
AVD 用 イメージ 作成
1) AVD用 Windows 10/11 仮想マシンに リモート デスクトップ (RDP) で接続し、管理者アカウントでログインします。
2) 管理者としてコマンドプロンプトを起動し、「%windir%\system32\sysprep」へパスを移動後、「sysprep.exe」を実行します。
3) 「システム準備ツール」を以下のように設定後、「OK」を選択します。
※ sysprep 処理が実行された後、AVD用 Windows 10/11 仮想マシンがシャットダウンされます。
- システム クリーンアップ アクション : 「システムの OOBE (Out-of-Box Experience) に入る」
- 「一般化する」にチェック
- シャットダウン オプション : 「シャットダウン」
[補足]
sysprep 処理を実行後、以下の画面が表示された場合
「C:\Windows\System32\Sysprep\Panther\setupact.log」、「C:\Windows\System32\Sysprep\Panther\setuperr.txt」を確認し、sysprep処理が失敗した原因を確認します。
[例] sysprep 処理が以下のようなエラーにより失敗している場合
SYSPRP Package Microsoft.LanguageExperiencePackja-JP_19041.35.109.0_neutral__8wekyb3d8bbwe was installed for a user, but not provisioned for all users. This package will not function properly in the sysprep image. |
本エラー内容としては、「Microsoft.LanguageExperiencePackja-JP_19041.35.109.0_neutral__8wekyb3d8bbwe」がインストールされているため、sysprep処理ができないという内容になっています。
そのため、PowerShell から該当のパッケージが存在していることを確認後、該当のパッケージの削除を実施することで、sysprep処理を実行することが可能になります。
>Import-Module Appx >Import-Module Dism >Get-AppxPackage -AllUser | Select-String -Pattern "Microsoft.LanguageExperiencePackja-JP_19041.35.109.0" Microsoft.LanguageExperiencePackja-JP_19041.35.109.0_neutral__8wekyb3d8bbwe >Remove-AppxPackage -Package Microsoft.LanguageExperiencePackja-JP_19041.35.109.0_neutral__8wekyb3d8bbwe |
[補足]
本例では、 「Microsoft.LanguageExperiencePackja-JP_19041.12.28.0_neutral__8wekyb3d8bbw」がインストールされていたことに起因し、sysprep処理が失敗していたため、本パッケージをアンインストールすることで対処しています。
4) Azure ポータルに移動して、sysprep 処理を実行した AVD用 Window 10/11 仮想マシンを選択します。
5) 「概要」-「キャプチャ」を選択します。
6) 必要項目を入力後、「確認および作成」を選択します。
7) 内容が正しいことを確認後、「作成」を選択します。
まとめ
今回は、Azure Virtual Desktop (AVD) のホストプール作成時に使用するAVD用イメージ (Windows 10/11) を作成する方法についてまとめてみました。
AVD のメリットの一つとして、DaaS (Desktop as a Service) の中で唯一、Windows 10/11 をマルチセッションとして、複数ユーザーで共有して利用することが出来る点だと思います。
しかしながら、マルチセッションとして利用するためには、ユーザー プロファイルを管理するために FSLoigix を利用する必要がある点に注意が必要かと思います。
※ 今回の手順は、以下 構築手順 に含まれています。
- 【保存版】Azure Virtual Desktop (AVD) 構築手順
1. Azure Virtual Desktop (AVD) のメリット
2. Azure Virtual Desktop (AVD) 構築
・事前準備
・Azure 無償/有償 サブスクリプション
・Microsoft 365 無償/有償 サブスクリプション
・Azure Active Directory カスタムドメイン設定
・構築
・Azure AD Connect 同期設定
・Azure AD Domain Services 構築
・Azure Virtual Desktop (AVD) 用イメージの作成手順
・Azure Virtual Desktop (AVD) ホストプール作成手順
・デスク トップ アプリケーション グループへ接続ユーザーの登録
・Azure Virtual Desktop (AVD) 接続手順
3. まとめ
※ 2022年9月更新