Azure AD Join の session host を手作りで追加する
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 を参照してください。
Azure AD Join の設定をした session host を追加する
ここは Azure Portal から通常の手順で進めることが可能です。
local admin account で Remote Desktop で login して追加の作業を実施する
まずは Azure AD アカウントではなくて、なんとなく local admin account で実施します。
ざっと手順は以下のとおりです。
- PowerShell を開いて、
reg add HKLM\Software\Policies\Microsoft\AzureADAccount /v LoadCredKeyFromProfile /t REG_DWORD /d 1
を叩く - 同様に、
reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters /v CloudKerberosTicketRetrievalEnabled /t REG_DWORD /d 1
を叩く - さらに、
reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\domain_realm /v contoso.local /d <your-storage-account-name>.file.core.windows.net
を叩く (値は変える) - fslogix download から fslogix の Zip ファイルをダウンロードする
- zip ファイルを展開し、fslogix.admx を
C:\Windows\PolicyDefinitions
に配置する - fslogix.adml を
C:\Windows\PolicyDefinitions\en-US
に配置する - group policy editor (gpedit) を起動し、
Computer Configuration\Administrative Templates\FSLogix\Profile Containers
にあるEnabled
を有効にする - 同様に、
Computer Configuration\Administrative Templates\FSLogix\Profile Containers
にあるVHDLocations
の値に\\<your-storage-account-name>.file.core.windows.net\containers
などの file share の path を設定する - 念のため、再起動する
参考 docs はこの辺です。
fslogix に関して、ほかに group policy で設定しておいた方がいいかもね、というのがこちらに書いてあります。
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
また、\\<your-storage-account-name>.file.core.windows.net\containers
の中身はこんな感じです。
vhd file in profile container
また、fslogix の動きがなんかよくわからん、というときには C:\ProgramData\FSLogix\Logs\Profile
配下に log があるので見てみると何かわかるかもしれません。
まとめ
ということで、ほんとはこれらの手順を実施してから sysprep
して Azure VM capture するんでしょうが、いろいろ準備するのが多いのでじゃあ繰り返しの手順やった方が早いか、ということで記事を書いています。
実際には別の記事の準備にあたる記事となります。
参考
- Azure AD を使用して Azure の Windows 仮想マシンにログインする - Microsoft Entra
- Azure Active Directory を使って、Kerberos 認証を使用したハイブリッド ID の SMB 経由での Azure ファイル共有にアクセスする
- Azure Files と Azure Active Directory を使用してプロファイル コンテナーを作成する
- プロファイル コンテナーの構成に関するチュートリアル - FSLogix
reg add
がうまくいかない点について
reg add HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters /v CloudKerberosTicketRetrievalEnabled /t REG_DWORD /d 1
と reg 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>
Discussion