AVS(Azure Virtual Desktop 旧Windows Virtual Desktop)に日本語イメージを持ち込む! Windows 10 編

はじめに

ついに日本リージョンにもコントロールプレーンが展開されていくアナウンスがあり、AVD(旧 WVD – Windows Virtual Desktop) を使ってみようと興味を持たれる方も多いと思います。
実は、Azure を利用している方ならわかると思うのですが、 Azure で作成できる仮想マシンは英語版の OS イメージとなっています。
言語パックをインストールすれば日本語を使える環境にもできますが、従来使用していた完全な日本語版イメージと同じものとは言い切れません。

そこで、今回は日本語版の Windows OS をオンプレから持ち込むための方法を紹介します。基本的なカスタマイズを行った Windows 10 日本語版イメージを使って AVD を利用できるようにします。

今回は大まかに以下の流れに沿って手順を説明します。

  1. イメージのカスタマイズ手順
  2. Azure へのアップロード
  3. AVD で日本語環境を展開する

※Windows 7を利用したい方は、下記の記事をご参考ください。
皆様ご存じの通りWindows 7 は、2020/1/14をもって延長サポートが終了しますが、
AVDに移行した場合最大で3年間無償のサポート延長が適用されます。
記事「AVD に日本語イメージを持ち込む! Windows 7 編」

Azure で利用できる Windows 10 イメージについて

Azure 上で利用可能なエディションについては製品条項(PT)で定められており、利用可能なエディションと認証方式については以下の Microsoft テックブログにて解説されています。
詳細についてはリンク先をご確認いただきたいですが、Azure で Windows 10 を利用するには、 Creators Update 以降の Current Branch で Enterprise エディションを利用する必要があります。

また、AVD としてもサポートするクライアント OS は次の通りとなっています。

  • Windows 10 Enterprise マルチセッション、バージョン 1809 以降
  • Windows 10 Enterprise、バージョン 1809 以降
  • Windows 7 Enterprise

<参考>
Windows 10 on Azure の正式解禁!
target=”_blank”Windows 10 on クラウドのライセンス認証について
Windows Virtual Desktop とはサポートされている仮想マシン OS イメージ

A. イメージのカスタマイズ

以下を目的に OS のカスタマイズを行います。

  • Microsoft 365 インストール
  • Azure へアップロードするための設定

A-1. クリーンインストール

Windows 10 1909 イメージから仮想マシンを展開します。インストール中には Enterprise エディションを選択します。

indows 10 1909 イメージから仮想マシンを展開

インストールが完了したらカスタマイズ開始です!

インストール完了後デスクトップ画面

A-2. ローカルグループポリシーの一時変更

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

th{min-width:100px; backgorund:#aaa;}
td{font-weight:normal;}

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

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

A-3. 更新プログラムの適用

[設定]>[更新とセキュリティ]>[Windows Update]>[更新プログラムのチェック]から最新の状態となるまで更新を適用します。

Windows Updateにて更新

A-4. Microsoft 365 インストール

Microsoft 365 のインストールには Office 展開ツールを利用します。(Office のインストールが不要な方は 4. と 5. はスキップしてください。)展開ツールはこちらからダウンロードします。ダウンロードした msi ファイルを実行し、ツールを展開します。Microsoft 365 のインストールは次の Docs を参考にしています。

<参考>
マスター VHD イメージに Office をインストールする

Office展開ツールを用いてインストールされた4つのファイル

展開した先に「configuration.xml」という名前で構成ファイルを作成します。「configuration.xml」を開き、以下のように編集します。
<Configuration>
<Add OfficeClientEdition=”64″ Channel=”Monthly”>
<Product ID=”O365ProPlusRetail”>
<Language ID=”ja-jp” />
<Language ID=”MatchOS” />
<ExcludeApp ID=”Groove” />
<ExcludeApp ID=”Lync” />
<ExcludeApp ID=”OneDrive” />
<ExcludeApp ID=”Teams” />
</Product>
</Add>
<RemoveMSI/>
<Updates Enabled=”FALSE”/>
<Display Level=”None” AcceptEULA=”TRUE” />
<Logging Level=” Standard” Path=”%temp%\WVDOfficeInstall” />
<Property Name=”FORCEAPPSHUTDOWN” Value=”TRUE”/>
<Property Name=”SharedComputerLicensing” Value=”1″/>
</Configuration>

「configuration.xml」での設定内容は以下のようなものです。

  • 日本語 Microsoft 365 Apps for enterprise をインストール
  • Skype for Businness、OneDrice、OneDrive for Businness、Teams のインストールはしない
    (OneDrive はこの次の手順でインストールします。)

管理者権限でコマンドプロンプトを開き、Setup.exe を実行します。confiure オプションをつけることで構成ファイルを指定します。
.\Setup.exe /configure configuration.xml

A-5. OneDrive for Businness のインストール

先ほどインストールをスキップした OneDrive をマシン単位でインストールします。こちらから OneDrive のインストールファイルをダウンロードします。

ユーザー単位での OneDrive が既にインストールされていたり、先ほどの構成ファイルの中で OneDrive のインストールを除外しなかった場合は次のコマンドを実行します。
.\OneDriveSetup.exe /uninstall
管理者権限で AllUserInstall レジストリを編集し、 マシン単位でのインストールを可能にします。
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 (x86)\Microsoft OneDrive\OneDrive.exe /background” /f
REG ADD “HKLM\SOFTWARE\Policies\Microsoft\OneDrive” /v “SilentAccountConfig” /t REG_DWORD /d 1 /f

A-6. Azure へアップロードするための設定

次の Docs を参考に OS 内の設定を行います。こちらの手順に従って設定を行っていきます。
<参考>
Azure にアップロードする Windows VHD または VHDX を準備する

設定項目が多いので直接 Docs を参照してください。Windows ファイアウォール規則の構成 のコマンドにある DisplayName は言語設定が違うので適宜変更します。変更対象のルールは次の通りです。

  • “Windows Remote Management (HTTP-In)” ⇒”Windows リモート管理 (HTTP 受信)”
  • “Remote Desktop”⇒”リモート デスクトップ”
  • “File and Printer Sharing (Echo Request – ICMPv4-In)”⇒”ファイルとプリンターの共有 (エコー要求 – ICMPv4 受信)”

A-7. ローカルアカウントの削除

コンピュータの管理(compmgmt.msc)を起動し、Administrator アカウントを有効化します。

Administratorプロパティ

操作中のローカルアカウントからサインアウトし、仮想マシンを再起動します。

仮想マシンを再起動したら Administrator アカウントでサインインします。ローカルアカウントのユーザープロファイルを削除します。

ローカルアカウントのユーザープロファイルの削除

A-8. ローカルグループポリシーを戻す

ローカルグループポリシーエディター(gpedit.msc)を起動し、先の手順で変更したポリシーを「未構成」に戻します。

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

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

A-9. イメージの一般化

コマンドプロンプトを起動し、Sysprep を実行します。Sysprep に成功したら、対象の仮想マシンの電源を入れないように気を付けます。
C:\Windows\System32\Sysprep\sysprep.exe /generalize /oobe /shutdown
エラーが発生した時は C:\Windows\System32\Sysprep\Panther 配下のログファイルを確認し、修正します。

B. Azure へのアップロード

B-1. VMDK からの変換

今回は VMDK ファイルからの変換も行ったので簡単に手順を紹介します。こちらから変換ツールのインストーラーをダウンロードします。

変換する VMDK ファイルにアクセスできる仮想マシンでダウンロードしたインストーラーを実行し、インストールします。インストールが完了したら次のコマンドで VMDK ファイルを固定長の VHD ファイルに変換します。<SourceVmdkFilePath>には変換元の VMDK ファイルのパスを、<DestVhdFilePath>には変換先のVHD ファイルを出力するパスを指定します。
ConvertTo-MvmcVirtualHardDisk -SourceLiteralPath <SourceVmdkFilePath> -destination <DestVhdFilePath> -VhdType FixedHardDisk -VhdFormat vhd
<参考>
How to Convert a VMWare VMDK to Hyper-V VHD

B-2. VHD のアップロード

以下コマンドで VHD をアップロード先となるマネージドディスクを作成します。<fullFilePathHere>にはアップロード対象ファイルのパスを指定します。

<参考>
Azure PowerShell を使用して Azure に vhd をアップロードする
$location = ‘japaneast’
$rgName = ‘myResourceGroup’
$diskName = ‘myDiskName’
$vhdSizeBytes = (Get-Item “<fullFilePathHere>”).length
$diskconfig = New-AzDiskConfig -SkuName ‘Standard_LRS’ -OsType ‘Windows’ -UploadSizeInBytes $vhdSizeBytes -Location $location -CreateOption ‘Upload’
New-AzDisk -ResourceGroupName $rgName -DiskName $diskName -Disk $diskconfig

マネージドディスクにアクセスするための SAS を入手し、AzCopy を利用して VHD ファイルをアップロードします。
$diskSas = Grant-AzDiskAccess -ResourceGroupName $rgName -DiskName $diskName -DurationInSecond 86400 -Access ‘Write’
.\AzCopy.exe copy $destVhdFilePath $diskSas.AccessSAS –blob-type PageBlob

アップロードが完了したらマネージドディスクへのアクセス権を破棄します。(これを忘れるとディスクリソースを使用することができません)
Revoke-AzDiskAccess -ResourceGroupName $rgName -DiskName $diskName
Azure ポータルから確認して[ディスクの状態]が[Unattached]となっていれば利用可能な状態です。

Azure ポータルにてディスクの状態を確認

B-3. マネージドディスクのイメージ化

作成したディスクをそのまま利用するのではなく、複製利用可能なイメージリソースへと変換します。次のコマンドを実行し、アップロードしたマネージドディスクをイメージリソース化します。

<参考>
汎用化した VHD をアップロードして Azure で新しい VM を作成する
アップロードした VHD から管理イメージを作成する
$managedDiskId = <‘myDiskName’のリソースID>
$imageName = ‘myImageName’
$imageConfig = New-AzImageConfig -Location $location
$imageConfig = Set-AzImageOsDisk -Image $imageConfig -OsType Windows -OsState Generalized -ManagedDiskId $managedDiskId -DiskSizeGB 128
New-AzImage -ImageName $imageName -ResourceGroupName $rgName -Image $imageConfig

イメージリソース化

C. AVD で日本語環境の展開

C-1. AVD でカスタムイメージから展開

アップロードしたイメージを利用して AVD のセッションホストを展開します。基本的な設定項目については省略し、アップロードした Windows 10 イメージを使うのに必要なところのみピックアップします。

マルチセッション OS ではないので[Desktop type]は[Personal]にします。

インスタンスの詳細

[Image Source]で[Managed image]を選択し、作成したイメージリソースのリソース名とリソースグループ名を設定します。

インスタンスの詳細

C-2. AVD で Windows 10 日本語環境にアクセス

展開に成功したら AVD クライアントからアクセスします。無事に日本語環境の Windows 10 が利用できています!

日本語環境のWindows 10デスクトップ画面

さいごに

今回は AVD で日本語環境を利用するためのイメージカスタマイズとアップロード方法についてまとめました。かなりボリュームがありましたが、Azure にもオンプレでカスタマイズしたイメージを持ち込むことができるとわかりました。

AVD で利用可能なマルチセッション対応の Windows 10 については Azure Marketplace でしかイメージが公開されていないため、この方法では日本語化できないのが残念です。Azure Marketplace から払い出される英語版のイメージでは満足できなかった方、一度お試しください!

Windows Virtual Desktop 概要資料
無償ダウンロードはこちら

 

この記事を書いた人

NE + Azure 編集部
こんにちは!日商エレクトロニクスでは、Microsoft Azureに関する有益な情報を皆様にお届けしていきます。クラウド移行に関するお困りごとや、Microsoft Azureに関する疑問点などお気軽にご相談ください。

ブログにしてほしいネタなどのリクエストもお待ちしております。