Engineering

Azure Virtual Desktopの日本語イメージ作成方法(Windows 11 24H2シングルセッション向け)

Azure Virtual Desktopの日本語イメージ作成方法(シングルセッション向け)のカスタムイメージの作成方法です。Windows 11 24H2で確認いたしました。
まだ、Windows 11 24H2はOSとしてのバグがありそうですので修正状況確認の上使用しましょう。

ストアアプリアップデートの停止

次に、ローカルグループポリシーエディター(gpedit.msc)を起動し、次のポリシーを変更します。これによって意図しないストアアプリの更新などによる Sysprep 時のエラーを防止します。

ポリシー設定値
コンピューターの管理\管理用テンプレート\Windowsコンポーネント\クラウドコンテンツ\Microsoftコンシューマー エクスペリエンスを無効にする有効
コンピューターの管理\管理用テンプレート\Windowsコンポーネント\ストア\更新プログラムの自動ダウンロードおよび手動インストールをオフにする有効
コンピューターの管理\管理用テンプレート\Windowsコンポーネント\ストア\最新バージョンのWindowsへの更新プログラム提供をオフにする有効

設定したらコマンドプロンプトを起動し、次のコマンドでローカルポリシーを更新します。

gpupdate /force

日本語ランゲージパックの導入

提供されているOSイメージは英語版になりますので日本語ランゲージパックを導入します。設定から変更することもできますが、コマンドラインで実行することも可能です。
PowerShell を管理者権限で起動し、下記のコマンドを実行します。かなり時間がかかります。

Install-Language ja-jp 

続いて、下記のコマンドを入力し、作業用ユーザーの言語リストに日本語を追加し、優先順位を変更します。

Set-WinUserLanguageList ja,en-US -force

日本語キーボードの設定をします。
「設定」→「Time & Language」Japaneseの「・・・」をクリックし、Langauage Optionを選択。
キーボード レイアウト から「Change layout」を押します。キーボードを 「Japanese keyboard 106/109 key」に変更をし、再起動します。

タイムゾーンと全ユーザへの日本語設定への変更

Powerhsellでタイムゾーンを変更します。

Set-TimeZone -Id Tokyo Standard Time

国と地域の変更

Set-WinHomeLocation -GeoId 122

日本語設定の全ユーザへの反映

Copy-UserInternationalSettingsToSystem -WelcomeScreen $True -NewUser $True 
Set-WinSystemLocale -SystemLocale ja-JP

設定後、再起動をします。

Windows Updateの実行

最新の状態にアップデートを行います。

Offceのインストール

Office Deployment Toolを使用してインストールを行います。
①Office Deployment Toolのダウンロード
Download Office Deployment Tool from Official Microsoft Download Center
②構成ファイルの作成
下記のものをconfig.xmlとして保存します。
自分でカスタマイズする場合はMicrosoft 365 Admin Centerを利用するのがおすすめです。
Microsoft 365 Apps Admin Center

<Configuration ID="0e9a3461-8c60-40dd-85d8-ad64084b1089">
  <Add OfficeClientEdition="64" Channel="Current" MigrateArch="TRUE">
    <Product ID="O365ProPlusRetail">
      <Language ID="ja-jp" />
      <ExcludeApp ID="Groove" />
      <ExcludeApp ID="Lync" />
    </Product>
  </Add>
  <Updates Enabled="TRUE" />
  <RemoveMSI />
  <Display Level="None" AcceptEULA="TRUE" />
</Configuration>

③インストールの実行
ダウンロードしたOfficeDeploymentToolを実行するとSetup.exeが作成されますので、管理者権限のコマンドプロンプトで下記コマンドを実行してインストールを行います。

setup.exe /configure "C:\Users\<username>\Downloads\config.xml"

マイクロソフトの解説はこちら
カスタム VHD イメージに Office をインストールする – Azure | Microsoft Learn

OneDriveのインストール

OneDrive は、通常はユーザーごとにインストールされます。 AVDのイメージでは、マシンごとにインストールする必要があります。
①OneDriveのダウンロード
https://go.microsoft.com/fwlink/?linkid=844652
②OneDriceのアンインストール
管理者権限のコマンドプロンプトで作業を行います。

OneDriveSetup.exe /uninstall

②OneDriveを全ユーザにインストールし、ログイン時に自動的に構成されるようにレジストリを変更します。

REG ADD "HKLM\Software\Microsoft\OneDrive" /v "AllUsersInstall" /t REG_DWORD /d 1 /reg:64
OneDriveSetup.exe /allusers

REG ADD "HKLM\Software\Microsoft\Windows\CurrentVersion\Run" /v OneDrive /t REG_SZ /d "C:\Program Files\Microsoft OneDrive\OneDrive.exe /background" /f
REG ADD "HKLM\SOFTWARE\Policies\Microsoft\OneDrive" /v "SilentAccountConfig" /t REG_DWORD /d 1 /f

③Windows の既知のフォルダーを OneDrive にリダイレクトおよび移動するように変更します。変更させたくない場合には飛ばしてください。<your-AzureAdTenantId>を変更して実行してください。

REG ADD "HKLM\SOFTWARE\Policies\Microsoft\OneDrive" /v "KFMSilentOptIn" /t REG_SZ /d "<your-AzureAdTenantId>" /f

最終的にはGroupPolicyで制御することを検討して下さい。

マイクロソフトの解説はこちら
カスタム VHD イメージに Office をインストールする – Azure | Microsoft Learn

Microsoft Teams on Azure Virtual Desktopのインストール

Microsoft Teams on Azure Virtual Desktop は、メディアの最適化により、映像や音声をローカル デバイスにリダイレクトすることで、通話と会議のエクスペリエンスを向上させます。

①Microsoft Visual C++ 再頒布可能パッケージのインストール
https://support.microsoft.com/help/2977003/the-latest-supported-visual-c-downloads

③Microsoft Teams on Azure Virtual Desktopを有効にするレジストリ変更
管理者権限のPowerShellで実行してください。

New-Item -Path "HKLM:\SOFTWARE\Microsoft\Teams" -Force
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Teams" -Name IsWVDEnvironment -PropertyType DWORD -Value 1 -Force

④Remote Desktop WebRTC Redirector Service をインストール
ダウンロードして実行をしてください。
https://aka.ms/msrdcwebrtcsvc/msi


②新しいTeamsのインストール
・teamsbootstrapper.exeをダウンロードします
https://go.microsoft.com/fwlink/?linkid=2243204&clcid=0x409
・MSI-x64パッケージのダウンロード
https://go.microsoft.com/fwlink/?linkid=2196106
・管理者権限コマンドラインでインストールを実行します。これにより最新のTeamsがインストールされます。

teamsbootstrapper.exe -p -o c:\Users\<username>\Downloads\MSTeams-x64.msix
成功すると下記のように出力されます。
{
  "success": true
}

Microsoft Teams on Azure Virtual Desktop を使用する – Azure | Microsoft Learn
新しい Microsoft Teams for Virtualized Desktop Infrastructure (VDI) – Microsoft Teams | Microsoft Learn

すべてのユーザーで日本語表示されるように設定

管理者権限のPowerShellで実行します。

Copy-UserInternationalSettingsToSystem -WelcomeScreen $True -NewUser $True 
Set-WinSystemLocale -SystemLocale ja-JP

BitLockerの無効化

Windows11をイメージ化する場合、Bitlockerが有効になっていると作業に失敗します。これを無効化します。
コマンドラインで解除をして下さい。

manage-bde -off c:

完了にはしばらく時間がかかりますので下記コマンド解除されるまでお待ち下さい。下記出力になると成功です。

manage-bde -status

BitLocker ドライブ暗号化: 構成ツール Version 10.0.26100
Copyright (C) 2013 Microsoft Corporation. All rights reserved.

BitLocker ドライブ暗号化で保護可能な
ディスク ボリューム:
ボリューム C: [Windows]
[OS ボリューム]

    サイズ:                 126.45 GB
    BitLocker のバージョン: なし
    変換状態:               暗号化は完全に解除されています
    暗号化された割合:       0.0%
    暗号化の方法:           なし
    保護状態:               保護はオフです
    ロック状態:             ロック解除
    識別子フィールド:       なし
    キーの保護機能:         見つかりません

Windows Remote Managementの有効化(オプション)

この作業はWindows 11では不要となっている気もしますが、あとから変更するのが嫌な方はこちらも実行しておいてください。
①Windows Remote Managementの受信を許可して下さい。

②Windows Remote Managementを自動起動(遅延起動)に設定します。

WindowsUpdate最終確認

WindowsUpdateがすべて完了してるか再確認をして、念の再起動をしましょう

ストアアプリアップデートの停止

最初に無効化したポリシーをもとに戻します。

ポリシー設定値
コンピューターの管理\管理用テンプレート\Windowsコンポーネント\クラウドコンテンツ\Microsoftコンシューマー エクスペリエンスを無効にする無効
コンピューターの管理\管理用テンプレート\Windowsコンポーネント\ストア\更新プログラムの自動ダウンロードおよび手動インストールをオフにする無効
コンピューターの管理\管理用テンプレート\Windowsコンポーネント\ストア\最新バージョンのWindowsへの更新プログラム提供をオフにする無効

Sysprepによるイメージ化

イメージのカスタマイズが完了したら、システム準備ツール (sysprep) を実行する必要があります。
管理者特権でコマンド プロンプトを開き、次のコマンドを実行してイメージを生成します。

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

下記のように実行されれば成功です。

Sysprepでエラーが出る場合

下記のようなエラーが出ることがあります。
C:\Windows\System32\Sysprep\Pantherにエラーログが出力されますのでそちらを確認して対策をします。

①Bitlockerが原因

Error                 SYSPRP BitLocker-Sysprep: BitLocker is on for the OS volume. Turn BitLocker off to run Sysprep. (0x80310039)
[gle=0x00000001]
Error                 SYSPRP ActionPlatform::LaunchModule: Failure occurred while executing 'ValidateBitLockerState' from C:\Windows\System32\BdeSysprep.dll; dwRet = 0x80310039[gle=0x00000001]
Error                 SYSPRP SysprepSession::Validate: Error in validating actions from C:\Windows\System32\Sysprep\ActionFiles\Generalize.xml; dwRet = 0x80310039
Error                 SYSPRP RunPlatformActions:Failed while validating Sysprep session actions; dwRet = 0x80310039

この場合は、Bitlockerが正常に解除されていません。Bitlockerが解除されているか確認してください。

②Windowsストアアプリの問題

2024-12-22 10:36:03, Error                 SYSPRP Package Microsoft.WidgetsPlatformRuntime_1.6.1.0_x64__8wekyb3d8bbwe was installed for a user, but not provisioned for all users. This package will not function properly in the sysprep image.
2024-12-22 10:36:03, Error                 SYSPRP Failed to remove apps for the current user: 0x80073cf2.
2024-12-22 10:36:03, Error                 SYSPRP Exit code of RemoveAllApps thread was 0x3cf2.
2024-12-22 10:36:03, Error                 SYSPRP ActionPlatform::LaunchModule: Failure occurred while executing 'SysprepGeneralizeValidate' from C:\Windows\System32\AppxSysprep.dll; dwRet = 0x3cf2
2024-12-22 10:36:03, Error                 SYSPRP SysprepSession::Validate: Error in validating actions from C:\Windows\System32\Sysprep\ActionFiles\Generalize.xml; dwRet = 0x3cf2
2024-12-22 10:36:03, Error                 SYSPRP RunPlatformActions:Failed while validating Sysprep session actions; dwRet = 0x3cf2
2024-12-22 10:36:03, Error      [0x0f0070] SYSPRP RunDlls:An error occurred while running registry sysprep DLLs, halting sysprep execution. dwRet = 0x3cf2
2024-12-22 10:36:03, Error      [0x0f00d8] SYSPRP WinMain:Hit failure while pre-validate sysprep generalize internal providers; hr = 0x80073cf2

ストアアプリが更新されたことで初期化を妨げています。下記コマンドで対象のアプリを削除します。
今回のログでは「SYSPRP Package Microsoft.WidgetsPlatformRuntime_1.6.1.0_x64__8wekyb3d8bbwe was installed for a user」と記載がありますので、Microsoft.WidgetsPlatformRuntimeを削除します。
下記コマンドをPowershellで実行します。

Get-AppxPackage -AllUsers Microsoft.WidgetsPlatformRuntime* | Remove-AppxPackage -AllUsers

AVDの展開

以上で作成完了です。
ARMでキャプチャしてイメージ化すれば完了です。

       

気になるAVDの費用は?

AVDの導入を検討しているけれど、費用イメージがつかない…とお困りの方へ。
簡易的ではありますが参考費用を算出していただけるExcelシートを作成しました。

AVD利用人数、1人当たりのスペック、利用時間、Microsoftライセンスの有無をご記入もしくはご選択いただくと、月額費用を算出していただけます。

シングルセッション、マルチセッションどちらも対応しております。
ちょっと参考費用を知りたい、という方はぜひご活用ください!

必要に応じて、詳細をお伺いしたうえで精緻なお見積りをさせていただくことも可能です。その際はページ右上のお問合せフォームよりお気軽にご連絡ください。

関連記事

コメント

この記事へのコメントはありません。

TOP