Windows Virtual Desktop 用のマスターイメージを作成してみる!

Windows Virtual Desktop 用のマスターイメージ作成にあたり、最低限やっておきたい事を記載したい思います。


全体の流れ

Step1:Windows 10 日本語化とタイムゾーンの変更 + Windows Update
Step2:FSLogixのインストール
Step3:RDP系レジストリ設定
Step4:デスクトップ系レジストリ設定
Step5:Office 365 ProPlusのインストール
Step6:初期化とイメージ化

マスターイメージ用として、MarketplaceからWindows 10 Multi-session VMを作成
[Windows 10 Enterprise for Virtual Desktops Preview, Version 1909]
※以下手順は、すべてこのVM上にて実施

O365インストール済みのVMもある
[Microsoft Windows 10 + Office 365 ProPlus]


Step1:Windows 10 日本語化とタイムゾーンの変更

最後に[Windows Update]を実施

【Host Poolの作成に失敗する場合】





Step2:FSLogixのインストール

FSLogixの2大プロファイル機能に「Profile Containers」「Cloud Cache」があります。
基本的には「Profile Containers」で検討し、出張などで複数のリージョンを行き来する場合や保存先として[Blob]を利用したい場合は、「Cloud Cache」を選択して下さい。

設定する方法は2つあります。
「レジストリから設定する方法」「GPOから設定する方法」 ※GPOオススメ

※機能詳細については「ユーザープロファイル問題を解決する「FSLogix」とは?

FSLogixをダウンロード

FSLogixAppsJavaRuleEditorSetup.exe = Java Redirection
FSLogixAppsRuleEditorSetup.exe = App Masking
FSLogixAppsSetup.exe = Cloud Cache / Profile Container / Office 365 Container

【GPO設定の準備】
[fslogix.adml]を「C:\Windows\PolicyDefinitions\en-US」にコピー
[fslogix.admx]を「C:\Windows\PolicyDefinitions」にコピー

ファイル名を指定して実行[gpedit.msc]

【Profile Containers】の場合

[Enabled][Delete local profile when FSLogix Profile should apply]を有効化

[VHD Location]にプロファイルの保存先を記載
例:優先度1=ファイルサーバー(Active)、優先度2=ファイルサーバー(Passive)
\\10.0.0.4\Share01;\\10.0.0.4\Share02;

【Cloud Cache】の場合

[Enabled][Delete local profile when FSLogix Profile should apply]を有効化

[Clear local cache on logoff]を有効化
[Cloud Cache Locations]にプロファイルの保存先を記載

例:優先度1=ファイルサーバー(Active)、優先度2=Page Blob(Active)
type=smb,connectionString=\\10.0.0.4\ProCon;type=azure,connectionString=
“DefaultEndpointsProtocol=https;AccountName=userpro;AccountKey=R5iA~YgkQ==;
EndpointSuffix=core.windows.net”;

【気になるところ】
・Dynamic VHD(X) allocation:Enable or Disable ※Thin Provisioning
・Size In MBs:500MB~1TB ※Quota(Default 30GB)
・Vitual Disk Type:VHD or VHDX
・VHDX Sector Size:4KB or 512B

ファイルサーバーを確認すると、VHD(ユーザープロファイル)が作成されています。

ちなみに、下記のように共有フォルダを設定すると、他ユーザーのプロファイルを隠せます。

VDIを確認すると、VHD(ユーザープロファイル)がマウントされています。

Page Blobを確認すると、VHD(ユーザープロファイル)が作成されています。

[Blobアクセスキーの隠蔽方法]

C:\Program Files\FSLogix\Apps\frx.exe add-secure-key -key blobkey -value Rl~fg==
※”blobkey”(表示名)という名称で、アクセスキーを登録します。

type=azure,connectionString=”DefaultEndpointsProtocol=https;AccountName=
userpro;AccountKey=|fslogix/blobkey|;EndpointSuffix=core.windows.net”;
※”AccountKey”部分を、登録した名称に置き換えます。





Step3:RDP系レジストリ設定

RDPにまつわる、タイムアウト値をマスターイメージ作成のタイミングで行います。
※PowerShell(管理者)で実施

・RemoteAppLogoffTimeLimit:RemoteApp Client終了後から、自動ログオフまでの時間
・fResetBroken:タイムアウトにより、RDP切断されるところを、ログオフに変更する
・MaxConnectionTime:RDP接続可能時間。超過するとログオフします
・MaxDisconnectionTime:RDP切断後から、自動ログオフまでの時間
・MaxIdleTime:無操作許容時間。超過するとログオフします

※指定する時間は環境に合わせてください。

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 fResetBroken /t REG_DWORD /d 1 /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

RDP 帯域の削減に効果が見込めそうな設定

[コンピューターの構成]ー[管理用テンプレート]ー[Windowsコンポーネント]ー[リモートデスクトップサービス]ー[リモートデスクトップセッションホスト]ー[リモートセッション環境]
※WVDのRDPプロパティで設定可能


Step4:デスクトップ系レジストリ設定

こちらの方法をオススメします。
Windows Virtual Desktop 最適化ツールを試す!

デスクトップにまつわる、タイムアウト値をマスターイメージ作成のタイミングで行います。
※PowerShell(管理者)で実施

・fEnableTimeZoneRedirection:RDSデスクトップにクライアントのローカルタイムを表示
・StoragePolicy:ストレージセンサーを無効にする
・NoAutoUpdate:Windows Updateの自動更新を無効にする

reg add “HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services” /v fEnableTimeZoneRedirection /t REG_DWORD /d 1 /f

reg add “HKCU\Software\Microsoft\Windows\CurrentVersion\StorageSense\
Parameters\StoragePolicy” /v 01 /t REG_DWORD /d 0 /f

reg add “HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU” /v NoAutoUpdate /t REG_DWORD /d 1 /f


Step5:Office 365 ProPlusのインストール

先ず、Office 展開ツールをダウンロードします。※必要なのは、「Setup.exe」のみ

下記、内容を「configuration.xml」として保存

<Configuration>
<Add OfficeClientEdition=”64″ Channel=”Broad”>
<Product ID=”O365ProPlusRetail”>
<Language ID=”ja-jp” />
<ExcludeApp ID=”Access” /> ←適宜インストール除外アプリを記載ください。
<ExcludeApp ID=”Groove” />
<ExcludeApp ID=”Lync” />
<ExcludeApp ID=”OneDrive” />
<ExcludeApp ID=”OneNote” />
<ExcludeApp ID=”Publisher” />
</Product>
</Add>
<Property Name=”SharedComputerLicensing” Value=”1″ />
</Configuration>

先程の「Setup.exe」にて「configuration.xml」をPowerShelldで実行します。

setup.exe /configure C:\<path>/configuration.xml

PowerPointの場合、[ファイル]ー[アカウント]ー[PowerPointのバージョン情報]
[共有コンピューターのライセンス認証]と表示されていれば大丈夫です!

【 Office365 PACファイル作成 】

Office365向け通信をProxyからバイパスさせるための”PACファイル”を作成します。

先ず、PACファイルを生成するためのPowerShellスクリプトをダウンロード

PowerShellにて”Get-PacFile.ps1″を実行して下さい。※赤字のみ環境に合わせて変更

.\Get-PacFile.ps1 -Type 2 -Instance Worldwide -TenantName Contoso -ClientRequestId b10c5ed1-bad1-445f-b386-b919946339a7 -DefaultProxySettings “PROXY 192.168.0.250:8080” > O365.pac

作成したPACファイルをWebサーバーに配置し、その配置場所を記載します。





Step6:初期化とイメージ化

こちらの方法をオススメします!
マスターイメージ管理サービス! 共有イメージギャラリー を試す!

今後のマスターイメージ更新のために、ここでスナップショットの取得をおすすめします。

必要な設定を終えたら、最後に[sysprep.exe]を実行します。

[キャプチャ]を選択し、イメージを作成します。

マスターイメージ完成!

Host Pool 作成時に、マスターイメージを指定すればOK

お疲れ様でした~!