📝

Azure AD Join の session host を手作りで追加する

2023/06/06に公開

Azure AD Join の session host を手作りで追加する

手作りというものの、RdAgent の install など Azure Portal から作れば済ませられる手順は割愛しています。

前提

すでに Azure AD Join の構成で Storage Account などの構成が済んでおり、少なくとも 1 台の session host が Azure AD Join 構成で利用可能なこと。
この記事の手順は 2 台目移行をどうするかを書いています。

また、作業する remote desktop 元の端末は対象の Azure AD に対して Azure AD Join されていること。
Azure AD registered でもいいかも。

詳細についてはこちらの docs を参照してください。

https://learn.microsoft.com/azure/active-directory/devices/howto-vm-sign-in-azure-ad-windows

Azure AD Join の設定をした session host を追加する

ここは Azure Portal から通常の手順で進めることが可能です。

local admin account で Remote Desktop で login して追加の作業を実施する

まずは Azure AD アカウントではなくて、なんとなく local admin account で実施します。
ざっと手順は以下のとおりです。

  1. PowerShell を開いて、reg add HKLM\Software\Policies\Microsoft\AzureADAccount /v LoadCredKeyFromProfile /t REG_DWORD /d 1 を叩く
  2. 同様に、reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters /v CloudKerberosTicketRetrievalEnabled /t REG_DWORD /d 1 を叩く
  3. さらに、reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\domain_realm /v contoso.local /d <your-storage-account-name>.file.core.windows.net を叩く (値は変える)
  4. fslogix download から fslogix の Zip ファイルをダウンロードする
  5. zip ファイルを展開し、fslogix.admx を C:\Windows\PolicyDefinitions に配置する
  6. fslogix.adml を C:\Windows\PolicyDefinitions\en-US に配置する
  7. group policy editor (gpedit) を起動し、Computer Configuration\Administrative Templates\FSLogix\Profile Containers にある Enabled を有効にする
  8. 同様に、Computer Configuration\Administrative Templates\FSLogix\Profile Containers にある VHDLocations の値に \\<your-storage-account-name>.file.core.windows.net\containers などの file share の path を設定する
  9. 念のため、再起動する

参考 docs はこの辺です。

https://learn.microsoft.com/azure/storage/files/storage-files-identity-auth-azure-active-directory-enable

https://learn.microsoft.com/azure/virtual-desktop/create-profile-container-azure-ad

fslogix に関して、ほかに group policy で設定しておいた方がいいかもね、というのがこちらに書いてあります。

https://learn.microsoft.com/fslogix/tutorial-configure-profile-containers

hybrid user で Remote Destop し、設定を確認する

上記設定がうまくいっていれば、Azure AD Connect で同期されている user (hybrid user) で login した状態で、\\<your-storage-account-name>.file.core.windows.net\containers に account 情報を入れずにログインできるはず。
この hybrid user というのは、session host 作成時に指定した local admin account とは別のものです。
できなければ抜けた手順がないか、もっかい確認する。

さらに、fslogix が有効化されているはずなので、以下のような点から動作の確認ができるはずです。

  • diskmgmt.msc を実行すると、Profile-avduser01 というような profile 用の disk がマウントされている
  • \\<your-storage-account-name>.file.core.windows.net\containers に profile 用のフォルダが作成されており、その中に Profile_avduser01.vhd などのファイルがある

diskmgmt.msc の実行イメージはこんな感じです。

diskmgmt.msc
diskmgmt.msc

また、\\<your-storage-account-name>.file.core.windows.net\containers の中身はこんな感じです。

vhd file in profile container
vhd file in profile container

また、fslogix の動きがなんかよくわからん、というときには C:\ProgramData\FSLogix\Logs\Profile 配下に log があるので見てみると何かわかるかもしれません。

まとめ

ということで、ほんとはこれらの手順を実施してから sysprep して Azure VM capture するんでしょうが、いろいろ準備するのが多いのでじゃあ繰り返しの手順やった方が早いか、ということで記事を書いています。
実際には別の記事の準備にあたる記事となります。

参考

  • Azure AD を使用して Azure の Windows 仮想マシンにログインする - Microsoft Entra

https://learn.microsoft.com/azure/active-directory/devices/howto-vm-sign-in-azure-ad-windows

  • Azure Active Directory を使って、Kerberos 認証を使用したハイブリッド ID の SMB 経由での Azure ファイル共有にアクセスする

https://learn.microsoft.com/azure/storage/files/storage-files-identity-auth-azure-active-directory-enable

  • Azure Files と Azure Active Directory を使用してプロファイル コンテナーを作成する

https://learn.microsoft.com/azure/virtual-desktop/create-profile-container-azure-ad

  • プロファイル コンテナーの構成に関するチュートリアル - FSLogix

https://learn.microsoft.com/fslogix/tutorial-configure-profile-containers

reg add がうまくいかない点について

reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters /v CloudKerberosTicketRetrievalEnabled /t REG_DWORD /d 1reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\domain_realm /v contoso.local /d <your-storage-account-name>.file.core.windows.net に関して、docs では group policy でもうまくいくような感じに書いてあります。
ただ、group policy で実際に設定される regkey は HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\Kerberos\Parameters で、HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters とは全然違う場所にあるんですよね。
Windows 全然わからないのでこれでも本来動くはずなのかもしれませんがとりあえず動かないので、正しい場所に reg add しているという状態です。

Kerberos.admx の該当箇所はこんな感じです。

    <policy name="CloudKerberosTicketRetrievalEnabled" class="Machine" displayName="$(string.CloudKerberosTicketRetrievalEnabled)" explainText="$(string.CloudKerberosTicketRetrievalEnabled_explain)" key="Software\Microsoft\Windows\CurrentVersion\Policies\System\Kerberos\Parameters" valueName="CloudKerberosTicketRetrievalEnabled">
        <parentCategory ref="kerberos" />
        <supportedOn ref="windows:SUPPORTED_Windows_10_0" />
        <enabledValue>
          <decimal value="1" />
        </enabledValue>
        <disabledValue>
          <decimal value="0" />
        </disabledValue>
    </policy>
Microsoft (有志)

Discussion