LoginSignup
6
2

検証用のAVD環境をパッパッパッと作る

Last updated at Posted at 2023-03-10

こんにちは、駆け出しアーキテクトのやまぱんです。

まず初めにこの記事は次の記事のインスパイア記事です。

上記をトレースしつつ、UIが変わっていたり、自分がハマったポイントなども少しあったり、自分なりに補足する形でリライトした記事になります。

というわけで Azure Virtual Desktop、いわゆるAVD(旧WVD)の環境をサクッとサクッと作りたい方向けの記事になります。
所要時間は習熟度にもよると思います待ち時間が結構ある (特にAADDS) 部分もあるので3~4時間ぐらいだと思います。

Azureサブスクリプション

ここではMicrosoftアカウントに紐づけたVisual Studioサブスクライバー向けのAzureを使っていますが、無料トライアルなどでもOKでしょう。
今回、新規にAzure AD Domain Servicesを構築するため、Azure ADに対しては"全体管理者"特権が必要です。
Visual Studioや無料トライアルなどでMicrosoftアカウントに紐づけたサブスクリプションをご利用であればこの権限があるはずですが、企業アカウントの場合はこの権限がないかもしれないのです。

ユーザー

こちらもインスパイア元の記事を踏襲しています。
AD管理のためのユーザーを1名、検証用ユーザーを2名用意することにします。
新規に作成する例をここでは取り上げますが、既存であればそちらを使ってもかまいません。

ユーザー名 役割
mgr 管理者
hanako 利用者1
taro 利用者2

検証環境全体図

こんな環境を作っていきます。(こちらの図もインスパイア元の記事をそのまま借りています。)

RGの作成

RG-AVD-test というリソースグループの作成。
image.png

Vnet(仮想ネットワーク)作成

image.png

default の vnet をAVD の VM 用に利用するものとする。

AADDSの作成(Azure AD(Active Directory) Domain Services)の作成

今回はAADのADDS機能を使う(オンプレADDSとの連携はしない)シンプルな環境です。

余談

このほかに、オンプレのADDSと連携したり、AADもオンプレADもDSなしで構成する Azure AD Join という構成も可能です。
SBSC&Sさんの記事で Azure AD Join のものがありましたので紹介しておきます。

では、はじめましょう!

Azure Portal の検索窓から AAD などで検索して Azure AD Domain Services を選択
image.png

2023/03/08(水)時点ではAADDSの作成の画面が英語 Azure Portal になっていた。
ローカルランゲージへの翻訳は遅れがあるので、しばらくすると日本語に変わると思われる。

AADDSとは

AADDSはIaaS(オンプレ)のADDSのAADバージョンです。
前者のAAD版とオンプレ版のADDSの機能の違いについては下記に記載されています。
https://learn.microsoft.com/ja-jp/azure/active-directory-domain-services/compare-identity-solutions
下記はその抜粋
image.png

Basic タブ

今回フォレストタイプはユーザーを指定する。
image.png

Networking タブ

ネットワークでは、先ほど作成した仮想ネットワーク Vnet-avd を選び、サブネットは専用のサブネットを新規作成するため、表示されたまま (新規作成 - New) にします。

image.png

他のタブはそのまま

他のタブはそのままの設定

image.png

デプロイ確認

image.png

(抄訳)このディレクトリに対して Azure AD Domain Services を有効にすることで、NTLM および Kerberos 認証に必要な資格情報ハッシュを Azure AD に格納することに同意したことになります。

image.png

デプロイ開始

時間がかかる

大体一時間ぐらいで完了します。
image.png

完成確認

AADDSブレードに作成したAADDSサービス (konoha.avd.test) ができていることを確認
image.png

AADDSの設定

DNSサーバの設定を行う

初回アクセス時は出ないことがあるのでその場合は Refresh をクリックして下記の警告メッセージを表示させクリックする。
image.png

Run をクリック

Click the "Run" 、日本語ブレードに変わっていたら(おそらく) "実行" をクリック。
image.png
【上記英文抄訳】
ネットワーク診断は、Azure AD Domain Services が設計どおりに動作するのを妨げる不足または既知の構成について、論理的な Azure Resource Manager ネットワーク環境をチェックする機能を提供します。
[実行] をクリックして、Azure AD Domain Services をホストしているネットワーク サブネットを診断します。

fix をクリック

image.png

さらに fix をクリック

image.png

【抄訳】

  • 問題が見つかりました
    マネージド ドメイン サービス IP 10.0.1.5、10.0.1.4 の DNS サーバー設定は、仮想ネットワーク Japan East/Vnet-avd 用に構成する必要があります
  • 解決
    Azure AD Domain Services のネットワーク構成ガイドラインに従って、次の修正が提案されています。
    東日本/Vnet-avd でマネージド ドメイン サービス IP 10.0.1.5、10.0.1.4 の DNS サーバー設定を追加します。
    修正は、手動で実行するか、下の [修正] をクリックして実行できます。下の [修正] をクリックすると、提案された修正がお客様に代わって実行されることに同意したことになります。

Running が表示される

image.png

なぜかそのまま warning がのこっていた が、その後、メッセージに表示されている vnet (Vnet-avd) の画面でDNS設定を見てfix (DNSのIPアドレス( IP 10.0.1.5、10.0.1.4 ) が適応)されていること を確認する。
image.png

グループ・ユーザーの作成

Azure ADにAVDを利用できるユーザーのグループを作成します。
Azure Portal → AAD を選択する。
image.png

AADのブレードの中から "グループ" を作成する
image.png

セキュリティグループの作成

AVD_Users を作成する
image.png

**3分 ~ 5分ぐらいすると、グループブレードの中に作成したグループが確認できます。
image.png

ユーザーの作成

下記のユーザーを作成します。

ユーザー名 名前 グループ
mgr AD Manager AAD DC Administrators
hanako Hanako Micro AVD_Users
taro taro Micro AVD_Users

AADのユーザーブレードから作成します。
この時、初期パスワードを設定しておきます。
また、ドメインが konoha.avd.test (先ほどAADDSで設定したしたものになっていなくても今回は問題ありません。 デフォルトで出てくるもののままで結構です。
このドメイン名は Azure にログインする際に必要となりますのでメモしておきましょう。
なお、AADDSで設定したドメインはAVDのVMに入る際に必要になります。

  • できたユーザー一覧
    image.png

作成したユーザーで一度ログインする

mgrユーザーの初期パスワードを恒常的なパスワードに変更するため、一度ログインします。
例えばブラウザEdgeを右クリックしてInPrivateウインドウを開き、Azure Portal に作成したmgrアカウントでログインします。
ここでログインするアカウントのドメインは、Azure AD のドメイン名(今回は mgr@XXXXXXXX.onmicrosoft.com)で、AADDS のドメイン konoha.avd.test ではない ことに注意してください。
image.png

Azure Files (プロファイル保管用ファイルサーバー)の作成

まずストレージ アカウントの作成

ストレージ アカウントの名前は小文字英文字かつユニークである必要があるので適当につけます。
今回は下記のように作成しました。
image.png

ファイル共有の作成

"profile" というファイル共有を作成します。
image.png

AADDSのユーザーからのアクセスをできるようにする。

AADDSのユーザーを受け入れるようにストレージ アカウント側で設定。

"Active Directory:構成されていません" をクリックして下記の流れで設定します。
image.png

image.png

つぎに設定したAADDSのグループに対してアクセス権を設定します。

image.png

こんな感じで設定します。
ロールは "記憶域ファイルデータのSMB共有の管理者特権の共同作成者" です。

Docsとしてはこのあたりになります。

image.png

ファイル共有の URLをコピー

image.png

あとでつかうので URL を コピーしておきます
"https://konohaavdpro XXX .file.core.windows.net/profile"

グループポリシーの設定

管理用の Azure VM の作成

AD DSのポリシー設定をするため、管理用のVMを作成します。
こちらはMicrosoftのドキュメントがありますので、これを参考に作成します。

・Windows Server VM をマネージド ドメインに参加させる

今回は Windows Server 2016 で作成します。

  • リソースグループ;RG-AVD-test
  • VM名:VM-AVDmanagewins2016
  • イメージ:Windows Server 2016 Gen1 [samalldisk]

検証用なので、smalldiskでサイズもB2msで下記のようなパラメータで作成します。

image.png
image.png

管理用の Azure VM のドメイン参加

作成した Azure VM に作成時に作成したローカルユーザーでRDPして、ドメイン参加します。
ここで参加するのはAADのドメインではなく、AADDSのドメインです。
つまり今回であれば mgr@konoha.avd.testです。
*一応日本語化してますが、後述する通りなので検証用AVD環境を作る目的であればいったん英語版のまま進めてもよいかと思います。

下記の要領でドメイン参加します。
(ついでにキリが悪いので コンピューター名も -wi を削除しています。)
image.png

パスワードを間違えすぎると下記のようなメッセージがでますので注意しましょう。

参照されたアカウントは現在ロックアウトされているため、ログオンできない可能性があります。
2023-06-12_15h44_13.png

Ref:)
・Azure Active Directory Domain Services マネージド ドメインでアカウントがロックアウトされる問題を解決する
https://learn.microsoft.com/ja-jp/azure/active-directory-domain-services/troubleshoot-account-lockout#common-account-lockout-reasons

”既定では、2 分間で 5 回パスワードの入力に失敗すると、アカウントは 30 分間ロックアウトされます。”

日本語化の影響かドメイン参加後にRDP使用とした際にNLAエラーが出たので、もしでた際にはこちらを参考にしてください

グループポリシーの機能の追加

下記を参考に追加して、再起動
image.png

FSLogix ポリシー設定

FSLogix とは

https://learn.microsoft.com/ja-jp/fslogix/overview
上記より抜粋。

FSLogix は、Windows リモート コンピューティング環境でのユーザー プロファイルを強化して有効にします。 物理デバイスを使用するときに、FSLogix を使用して、移植性の高いコンピューティング セッションを作成することもできます。

  • FSLogix には次のものが含まれます。
    プロファイル コンテナー
    Office コンテナー
    Application Masking
    Java Version Control
  • FSLogix を使うと、次のことができます。
    リモート コンピューティング セッション ホスト間でユーザー データをローミングする
    仮想デスクトップ環境へのサインイン時間を最小限にする
    ホストやクライアントとリモート プロファイル ストアの間のファイル IO を最適化する
    ローカル プロファイル エクスペリエンスを提供し、ローミング プロファイルを不要にする
    アプリケーションと "ゴールド イメージ" の管理を簡素化する
    特定の URL とアプリケーションによって使われる Java のバージョンを指定する

必要ファイルのダウンロード

まず、ここ(https://aka.ms/fslogix_download) にあるファイルをWindows Server内にダウンロードします。
ダウンロードしたZipファイルを展開したら、下記のファイルをコピーします。

ファイル コピー先
fslogix.admx C:\Windows\PolicyDefinitions
fslogix.adml C:\Windows\PolicyDefinitions\en-US

Group Policy Management の設定

Group Policy Managementを起動して、AADDC Computer GPOを右クリックし、Edit..
グループポリシーの管理(Group Policy Management)を起動
image.png

AADDC Computer GPOを右クリックし、Edit(編集)..
image.png

開いたGroup Policy Management Editorから、下記のようにFSLogixのProfile Containersを開き、下記の設定を行います。
image.png

Setting Value
Enabled On
Delete local profile when FSLogix Profile should apply On
VHD Location <ファイルシェアへのパス>を設定

ファイルシェアへのパスは、Azure Filesの項目で作成したファイル共有へのURLをUNCで記述します。
例えば
"https://konohaavdpro XXX .file.core.windows.net/profile"
であれば、
\\konohaavdpro XXX .file.core.windows.net\profile となります。
一応の補足すると"\"は "半角¥マーク"でも入力できます。
2023-06-12_17h23_15.png

タイムゾーンのリダイレクト設定

  • [コンピューターの構成] → [ポリシー] → [管理用テンプレート:ローカル~~] → [Windows コンポーネント] → [リモートデスクトップサービス] → [デバイスとリソースのリダイレクト] → ”タイムゾーン リダイレクトを許可する” を"有効"にします。

英語版

  • [Computer Configuration] → [Policies] → [Administrative Templates] → [Windows Components] → [Remote Desktop Services] → [Remote Desktop Session Host] → [Device and Resource Redirection] → "Allow time zone redirection"を"Enabled"に設定します。

image.png

マスターイメージの作成

イメージ用仮想マシンの作成

セッションホスト用のマスターイメージを作成します。今回は、Windows 10 multi-sessionを利用します。
Azure でしかつかえない AVD 向けのOSらしいです。
イメージ作成用で、AVDユーザーが利用するわけではありませんから、VMのサイズなどはあまり気にしなくて構いません。
下記のような設定値で作成します。OSは必ずマルチセッションを指定します。
image.png

FSLogix のインストール

Azure VM の作成が終わったら管理用のWindows Server と同様にここ(https://aka.ms/fslogix_download) にあるファイルを Windows 内にダウンロードします。
ダウンロードしたZipファイルを展開します。
展開した中から、x64\Release\FSLogixAppsSetup.exe を実行して、FSLogixをインストールします。

数秒で終わるはず。
image.png
image.png

イメージの汎用化準備 (Windowsアップデート&日本語化)

諸々アップデートして各種表示を日本語、時刻もUTC+9:00化します。
言語パックインストールして再起動後もWindows Update を確認してこれ以上アップデートが無いことを確認

言語パック周りが原因でsysprepでエラーでるのでここは丁寧に!!
日本語化が目的でなければいったん英語版のまま進めてもOKだと思います。
一度、sysprep で下記のようなエラーが出ました。

C:\Windows\System32\Sysprep\Panther\setupact.log
> Package Microsoft.LanguageExperiencePackja-JP_19041.56.182.0_neutral__8wekyb3d8bbwe was installed for a user, but not provisioned for all users. This package will not function properly in the sysprep image.

下記参考にする

イメージの汎用化

下記コマンドにて sysprepを行い、OSを一般化します。

C:\Windows\System32\Sysprep\sysprep.exe /generalize /oobe /shutdown

10分ぐらいかかります。
image.png

マスターイメージのキャプチャ

イメージを保存するため、先ほどsysprepした仮想マシンのキャプチャを行います。
状態が停止済みであることを確認して、キャプチャを押します。
image.png

共有イメージギャラリーにイメージを置かず、キャプチャした後はこのVMを使わなくなりますので、削除します。
image.png

作成したイメージの確認

Azure Portal → イメージ にて作成したイメージが確認できる
image.png

AVD環境構築

ようやくAVDの構築です。

ホストプールの作成

Azure Portal → "azure virtual desktop" を検索し選択します。
image.png

そしてホストプールの作成に進みます。
image.png

ホストプールの作成ボタンを押して、作成していきます

こんな感じで作成していきます。

基本タブ

image.png

仮想マシンタブ

イメージで先ほど作成したイメージを選択します。
image.png

検証用なのでチープな感じで作成。
image.png

ワークスペースタブ

ワークスペースを作成しておきます、
image.png

以上の設定をして作成します

AVDホストプール作成設定まとめ&作成

image.png
"作成"を押して、20分くらいで完了。

ホストプールの作成が終われば、最後に、利用できるユーザーを割り当てます。
作成の際にアプリケーショングループができているので、これを開き、割り当てを選択して、AVD_Usersを追加します。
ホストプール → アプリケーショングループ → host-pool-DAG(作成されているアプリケーショングループ) → 割り当て → 追加

image.png

Azure VM の確認

設定したprefix の Azure VM が設定した台数分作成されていることが確認できます。

image.png

接続テスト

WEbClient

  • AVDに入る
    AADのアカウントでログインします。
    image.png

アカウント作成後はじめてのログインの場合はパスワードを変更する必要あり。
image.png

こんな画面に行きつきます。
image.png

  • AVDのVMに入る
    こちらはAADDSのドメインユーザーで参加します。
    こちらの例では hanako@konoha.avd.test

image.png

無事にログイン完了!

image.png

デスクトップクライアントもある

今回は省略しますが、下記からダウンロードできます。

Windowsクライアントにソフトウェアをインストールして利用します。
下記のものが用意されていますので、環境に合わせてインストールします。クライアントに管理者権限がなくても大丈夫。
• Windows (64 ビット) https://go.microsoft.com/fwlink/?linkid=2068602
• Windows (32 ビット) https://go.microsoft.com/fwlink/?linkid=2098960
• Windows ARM64 https://go.microsoft.com/fwlink/?linkid=2098961

クライアントをインストールして起動すると、登録ボタンを押して進みます。
image.png

image.png

入れました
image.png

マルチディスプレイにも対応!
image.png

参考 URLなど

公式Docs

AVD 系に詳しいブログ

  • くらう道
    AVD で気になることがある場合下記のMS 社員のブログが非常にオススメです。

AVDって完全閉域環境で使えるのか?だと下記を読めばわかります。

その他の必要な通信はプライベートリンク以外から通す必要がありますので、完全に閉域化できるわけではありません。

途中でも紹介した URLたち

  • MSサポートの公式ブログ
    ・AVD ARM 日本語化イメージ作成手順について | Microsoft Japan Windows Technology Support Blog (jpwinsup.github.io)

  • MS社員のブログ
    ・Azure Image Builder で 日本語化を楽し隊 | クラウドを勉強し隊 (kentsu.website)

下記のスクリプトを使うことで自動化することもできるよう。(今回は試していません。)
・azureimagebuilder/AIBscript.ps1 at main · NakayamaKento/azureimagebuilder (github.com)

6
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
2