この記事のWVDは”Windows Virtual Desktop Spring 2020 Release”が対象です。
Gallery から展開したWindows 10 Enterprise の初期状態について確認した結果を紹介します。
目次
1. OS イメージ
今回展開しているOSは”Windows 10 Enterprise for Virtual Desktops, Version 1909 + Office 365 ProPlus”になります。
ここからは実際に展開したAzure 上の仮想のWindows 10 についてスクリーンショットを交えながら紹介していきます。
1.1. Windows Settings > System > About
Windows specifications セクションでEdition やVersionを確認することが可能です。”Windows 10 Enterprise for Virtual Desktops”とあるように”for Virtual Desktops”と明記されているからには付与されていないEnterprise Edition とは何かしら違いがあるのかもしれません。
1.2. systeminfo コマンドの実行結果
systeminfo コマンドの実行結果です。 ポイントをハイライトします。
OSはGUI と同様に”Windows 10 Enterprise for Virtual Desktops”です。
言語系がen-us なのはFall 2019 と変わらず。これはWindows Virtual Desktop の仕様というよりはAzure のマーケットプレイスで提供されているOSイメージの仕様です。 日本国内で利用する際には変更して使う人がほとんどになると思います。
あとTime Zone がUTC になっています。 ここもご利用の地域に応じて変更することになるでしょう。 グローバルに利用する場合はログオンスクリプトなどで変更するなど利用者の居る場所に応じて変更した方が利用者にやさしいかもしれません。 VMware Horizon なんかはローカル端末側のTime Zone を自動的に仮想OSに反映する機能が標準で提供されていますがWindows Virtual Desktop にそのような機能があるかは不明。現時点で言えるのは標準ではローカル端末側のTime Zone を自動的に仮想のWindows 10 に反映はされません
あと、この仮想マシンはActive Directory ドメインに参加しています。PDC エミュレーターのFSMO の役割をもつドメインコントローラの時刻と自動的に同期します。 今回の環境ではドメインコントローラは Azure AD Domain Services を利用しています。
C:\Users\wvdadmin>systeminfo Host Name: B4ms-0 OS Name: Microsoft Windows 10 Enterprise for Virtual Desktops OS Version: 10.0.18363 N/A Build 18363 OS Manufacturer: Microsoft Corporation OS Configuration: Member Server OS Build Type: Multiprocessor Free Registered Owner: N/A Registered Organization: N/A Product ID: 00432-70000-00001-AA475 Original Install Date: 5/7/2020, 10:17:41 AM System Boot Time: 5/7/2020, 10:19:06 AM System Manufacturer: Microsoft Corporation System Model: Virtual Machine System Type: x64-based PC Processor(s): 1 Processor(s) Installed. [01]: Intel64 Family 6 Model 85 Stepping 4 GenuineIntel ~2095 Mhz BIOS Version: American Megatrends Inc. 090007 , 6/2/2017 Windows Directory: C:\windows System Directory: C:\windows\system32 Boot Device: \Device\HarddiskVolume1 System Locale: en-us;English (United States) Input Locale: en-us;English (United States) Time Zone: (UTC) Coordinated Universal Time Total Physical Memory: 16,384 MB Available Physical Memory: 13,928 MB Virtual Memory: Max Size: 19,328 MB Virtual Memory: Available: 16,966 MB Virtual Memory: In Use: 2,362 MB Page File Location(s): D:\pagefile.sys Domain: m.bigriver.jp Logon Server: \MWO7THDJCO57D-0 Hotfix(s): 5 Hotfix(s) Installed. [01]: KB4532938 [02]: KB4517245 [03]: KB4537759 [04]: KB4552152 [05]: KB4549951 Network Card(s): 1 NIC(s) Installed. [01]: Microsoft Hyper-V Network Adapter Connection Name: Ethernet 2 DHCP Enabled: Yes DHCP Server: 168.63.129.16 IP address(es) [01]: 10.0.0.6 [02]: fe80::7916:bc22:e384:f8e2 Hyper-V Requirements: A hypervisor has been detected. Features required for Hyper-V will not be displayed. |
1.3. ライセンス認証
slmgr.vbs コマンドでOSライセンスの状態を確認します。
“VOLUME_KMSCLIENT channel” からわかるようにKMS 認証を利用しています。 KMS Server は”kms.core.windows.net:1688″、IPアドレスは”23.102.135.246″とAzure で共通のものです。
Expressroute などで強制トンネリングを利用している環境では公式ドキュメント「強制トンネリングを使用したライセンス認証の問題」を参考にカスタムルートを構成することになると思います。
2. OS の設定 / 構成
次にOS の設定や構成を見ていきます。
2.1. 環境変数
まずは環境変数。 ポイントをハイライトします。
まず”CLIENTNAME”でローカル端末のコンピュータ名が取得できます。 企業利用などで接続端末を限定できる環境であればこの環境変数とログオンスクリプトを使えば色々出来そうです。 特定の端末にプリンタを登録する、先頭2文字でグループを判定しレジストリを変更する等なんでもできそうです。
”DATACENTER” にリージョン情報があります。これを使えば上で書いたUTCの自動変更のスクリプトを実行することも出来そうですね。
“LOGONSERVER”ではサインインで使用したドメインコントローラのコンピュータ名を確認できます。 トラブルシューティング目的でどのドメインコントローラにサインインしているかを記録する処理をログオンスクリプトで実行するときによく使う環境変数です。 “echo %LOGONSERVER% > c:\temp\logonserver.txt” などを実行しておくだけでトラブルシューティングが大分楽になります。 あとは前後に時刻情報を出力する、別途ファイル共有に吐き出すなどすればほとんどのケースに対応できると思います。
”MONITORING~” はAzure 特有の情報が入っています。今すぐ何かに使えそうなものはないですが何百台、数千台ある環境ではこの情報を残しておくことでAzure 側での障害発生時に障害範囲の特定などに役立ちそうです。
“SESSIONNAME” もWindows Virtual Desktop の情報のようです。この情報もログオン記録として時間などと一緒に残しておくと識別子として使えそうです。
”USER~”はオンプレのVDI でもよく見ている環境変数でどのドメインにどのユーザの情報でサインしてどのプロファイルを使っているかなど確認出来ます。
C:\Users\wvdadmin>set ALLUSERSPROFILE=C:\ProgramData APPDATA=C:\Users\wvdadmin\AppData\Roaming CLIENTNAME=XXXXXX-PC CommonProgramFiles=C:\Program Files\Common Files CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files CommonProgramW6432=C:\Program Files\Common Files COMPUTERNAME=B4ms-0 ComSpec=C:\windows\system32\cmd.exe DATACENTER=japaneast DriverData=C:\Windows\System32\Drivers\DriverData HOMEDRIVE=C: HOMEPATH=\Users\wvdadmin LOCALAPPDATA=C:\Users\wvdadmin\AppData\Local LOGONSERVER=\MWO7THDJCO57D-0 MONITORING_AGENT_CLUSTER=WUS2R0C100 MONITORING_AGENT_RING=R0 MONITORING_CONFIG_VERSION=1.5 MONITORING_DATA_DIRECTORY=C:\windows\system32\config\systemprofile\AppData\Roaming\Microsoft\Monitoring MONITORING_ENV=PROD MONITORING_GCS_ACCOUNT=RDSAgentProd MONITORING_GCS_AUTH_ID=RDSAgentPROD.geneva.keyvault.RDSAGENT.WVD MONITORING_GCS_AUTH_ID_TYPE=AuthKeyVault MONITORING_GCS_CERTSTORE=LOCAL_MACHINE\MY MONITORING_GCS_ENVIRONMENT=Diagnostics Prod MONITORING_GCS_NAMESPACE=RDSAgentProd MONITORING_GCS_REGION=japaneast MONITORING_MDM_ACCOUNT=RDSAgentProd MONITORING_RESOURCE=202004 MONITORING_ROLE=bigriver20200507 MONITORING_ROLE_INSTANCE=B4ms-0.m.bigriver.jp MONITORING_TENANT=PROD NUMBER_OF_PROCESSORS=4 OneDrive=C:\Users\wvdadmin\OneDrive OS=Windows_NT Path=C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\;C:\windows\System32\OpenSSH\;C:\Users\wvdadmin\AppData\Local\Microsoft\WindowsApps; PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC PROCESSOR_ARCHITECTURE=AMD64 PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 85 Stepping 4, GenuineIntel PROCESSOR_LEVEL=6 PROCESSOR_REVISION=5504 ProgramData=C:\ProgramData ProgramFiles=C:\Program Files ProgramFiles(x86)=C:\Program Files (x86) ProgramW6432=C:\Program Files PROMPT=$P$G PSModulePath=C:\Program Files\WindowsPowerShell\Modules;C:\windows\system32\WindowsPowerShell\v1.0\Modules PUBLIC=C:\Users\Public SESSIONNAME=rdp-sxs200326004#4 SystemDrive=C: SystemRoot=C:\windows TEMP=C:\Users\wvdadmin\AppData\Local\Temp TMP=C:\Users\wvdadmin\AppData\Local\Temp USERDNSDOMAIN=M.BIGRIVER.JP USERDOMAIN=M USERDOMAIN_ROAMINGPROFILE=M USERNAME=wvdadmin USERPROFILE=C:\Users\wvdadmin windir=C:\windows |
上記の環境変数ですがどこで設定されているものなのか確認します。
コントロールパネルからSystem Properties > Environment Variables を確認します。 ”MONITORING~”は システムの環境変数ですが”CLIENTNAME”や”SESSIONNAME”のWindows Virtual Desktop 特有の環境変数はシステム環境変数には含まれてはいません。
2.2. ディスク構成
Disk Management からディスクの構成情報を確認します。
C: ドライブは128GB のPage BLOB です。
E: ドライブにDVD があります。 どうやって使うのだろうか。使ってみようとしたことも使ったこともなかったのですぐに出てきません。
WVD の展開する際、ディスクの種類は選択出来たのですがサイズの情報はなく展開後に確認しようと考えていました。 以下はAzure Portal でのHosts pool 作成時の画面ですが、”os disk type”を選ぶことは出来ますがサイズに関する指定は見当たりません。
2.3. ネットワーク構成
ipconfig /all で構成情報を確認します。
Fall 2019 と変わらずAzure 上の仮想マシンは基本的にDHCP によるIPアドレス構成となります。DHCP Server のIPアドレスとして 168.63.129.16 が設定されていますがこちらはブロックしないよう気を付ける必要があります。
しかし、Lease Expires 見てちょっとびっくり、Azure のDHCP では136年もリース期間が設定されています。 仮に仮想マシンが停止することなかったとして次のリース更新が68年後ですね。
C:\Users\wvdadmin>ipconfig /all Windows IP Configuration Host Name . . . . . . . . . . . . : B4ms-0 Primary Dns Suffix . . . . . . . : m.bigriver.jp Node Type . . . . . . . . . . . . : Hybrid IP Routing Enabled. . . . . . . . : No WINS Proxy Enabled. . . . . . . . : No DNS Suffix Search List. . . . . . : m.bigriver.jp reddog.microsoft.com Ethernet adapter Ethernet 2: Connection-specific DNS Suffix . : reddog.microsoft.com Description . . . . . . . . . . . : Microsoft Hyper-V Network Adapter #2 Physical Address. . . . . . . . . : 00-0D-3A-CC-F3-93 DHCP Enabled. . . . . . . . . . . : Yes Autoconfiguration Enabled . . . . : Yes Link-local IPv6 Address . . . . . : fe80::7916:bc22:e384:f8e2%4(Preferred) IPv4 Address. . . . . . . . . . . : 10.0.0.6(Preferred) Subnet Mask . . . . . . . . . . . : 255.255.255.0 Lease Obtained. . . . . . . . . . : Thursday, May 7, 2020 10:19:13 AM Lease Expires . . . . . . . . . . : Sunday, June 13, 2156 10:50:16 PM Default Gateway . . . . . . . . . : 10.0.0.1 DHCP Server . . . . . . . . . . . : 168.63.129.16 DHCPv6 IAID . . . . . . . . . . . : 117443898 DHCPv6 Client DUID. . . . . . . . : 00-01-00-01-26-45-36-07-00-15-5D-72-02-0B DNS Servers . . . . . . . . . . . : 10.0.0.4 10.0.0.5 NetBIOS over Tcpip. . . . . . . . : Enabled |
2.4. Windows Update
ちょうど適用できるパッチがあるので試しに適用してみます。
2つのパッチ適用時のPerformance Monitor のスクリーンショットは以下です。 4つのvCPU の1つをまるまる使っている感じです。 Network はほとんど使っていないです。すでにダウンロードまで終わっていたからですかね。
適用が完了し、OS再起動が求められています。とりあえず再起動しておきます。
再起動、その後のWindows Virtual Desktop への再接続も特に問題なく行えました。
なお、Delivery Optimization (配信の最適化)が有効です。 以下の設定の場合同じVNET上のWindows 10 とダウンロードキャッシュをPeer to Peer 通信で共有します。 Microsoft Update サイトとの通信量を6-7割程度削減出来ます。 逆に言うと3割程度は通信は発生しますし、Windows 10 同士で勝手に通信しあいますし、そのためのCPUやディスクリソースも消費することに注意は必要です。
さらにDelivery Optimization はいろいろなモードがあるのですがほとんどのモードでは管理機能はMicrosoft 上のサーバで実施されます。 先ほどPeer to Peer と言いましたがそのPeer to Peer 通信を始める前にこのサーバとインターネットを介して通信します。
Delivery Optimization は昔からあるBranch Cache と一緒にがっつり検証したことがあるのですが記事を何本もかけるくらい奥が深いです。この辺にしておきますが詳しくは公式ドキュメントを確認してください。
2.5. アプリケーション
Marketplace から展開した直後のインストール構成は次の通りです。
以下の5つがWindows Virtual Desktop 特有のアプリケーションと思われます。
- Remote Desktop Agent Boot Loader
- Remote Desktop Services Infrastructure Agent
- Remote Desktop Services Infrastructure Agent
- Remote Desktop Services Infrastructure Geneva Agent 43.3.4
- Remote Desktop Services SxS Network Stack
Office は以下2つでTeams クライアントはありません(ユーザーモードでインストールできるからマスタにはいらないということか)。 Skype はありますが。
- Microsoft Office 365 ProPlus – en-us
- Microsoft OneDrive
Optional Features は以下の通りです。
Internet Explorer 11 を削除できるようです。
Windows Media Player など一時期無くなったと思ったらまだあったんですね。
OpenSSH もこのOptional にあることがわかりました。 ちょっと使ってみます。 普通に使えますね。
3. まとめ
Fall 2019 との違いはちゃんと比較していないので今回はあまり触れていません。 Spring 2020 を実環境での利用を考えた際に見るべきところを見ていきました。 そんな中でも気になったのは以下です。
- ”Windows 10 Enterprise for Virtual Desktops” は他のEnterprise と何が違うのか?(引き続き確認する必要がある)
- 言語とTime Zone は変更する方法を考える必要がある
- 環境変数ではログオンスクリプトで使えそうな変数が結構ある
- Marketplace イメージを利用する場合はディスクは128GB固定(自分でイメージをカスタマイズすればいけそう)
以上