vSphere上の仮想マシンは、vSphere仮想基盤が提供している仮想のBIOS情報を参照している
この状態だと、物理サーバのBIOS内にあるキー情報などが読み取れないため、OEM版Windowsライセンスの認証が行えない。
これを解消するために「SMBIOS.reflectHost=TRUE」という設定を入れる、という話がある
DELLでも「Dell PowerEdgeシステムでROKメディアを使用するためのハイパーバイザーを準備する」にて vmxファイルにsmbios.reflectHost = TRUE を追加する、と記載している
他にBIOS情報を仮想マシンに反映するための設定ってあるのか?と探してみると「How to Pass Host Hardware Information to a VMware Workstation VM」に下記の様な記述が
I powered off the VM and used Notepad to add these three lines to the end of the VMX file:
SMBIOS.reflectHost = “TRUE”
SMBIOS.noOEMStrings = “TRUE”
smbios.addHostVendor = “TRUE”
SMBIOS.noOEMStrings 設定について調べると、例えば富士通/エフサスの出している「VMware vSphere 9 ソフトウェア説明書」の”PRIMERGY添付のWindows OS メディアの使用」の項目に、smbios.reflectHost=TRUE と SMBIOS.noOEMStrings=TRUE を追加する、と記載している。
他に調べると https://github.com/magliocchetti/SafeExamPwner/blob/main/AddToYourVmxFile.txt を発見
SMBIOS.reflectHost = "TRUE"
SMBIOS.assettag = "INTEL"
SMBIOS.useShortSerialNumber = "TRUE"
SMBIOS.noOEMStrings = "TRUE"
SMBIOS.addHostVendor = "TRUE"
これらをTRUE/FALSE設定していって状況を確認
lshwコマンドの出力結果
標準状態はコレ
localhost.localdomain
description: Computer
product: VMware20,1
vendor: VMware, Inc.
version: None
serial: VMware-56 4d e4 49 78 d4 97 14-30 0a 2d e4 84 66 f9 db
SMBIOS.reflectHost = “TRUE” だけを設定
localhost.localdomain
description: Computer
product: NucBox_G10
vendor: GMKtec
version: None
serial: Default string
注:GMKtec NucBox_G10 にはシリアルがちゃんと設定されていないのでこんな値になっている
SMBIOS.useShortSerialNumber = “TRUE”だけを設定
localhost.localdomain
description: Computer
product: VMware20,1
vendor: VMware, Inc.
version: None
serial: VMWVk3kSXjUlxQwCi3khGb52w
SMBIOS.reflectHost = “TRUE” と SMBIOS.useShortSerialNumber = “TRUE” を設定
localhost.localdomain
description: Computer
product: NucBox_G10
vendor: GMKtec
version: None
serial: Default string
このことから「SMBIOS.useShortSerialNumber」はVMwareが生成するserialに関する設定であるため、SMBIOS.reflectHost = “TRUE” を設定した際には効果がないと判断できる
SMBIOS.noOEMStrings , smbios.addHostVendor, SMBIOS.assettag については、試験した環境では lshw 上で有意な変化が見られなかった。(一部のUSBバスの番号が変わったりしたけど)
結論としては、基本的には「SMBIOS.reflectHost = “TRUE” 」を設定するだけで問題ない、ということになるかと思う
2026/02/20追記
ESXiをインストールする時にいろいろトラブルがあった影響で知った「localcli hardware platform get」コマンドで関連する情報が見れると知って試してみた
標準状態

SMBIOS.assettag = “TEST”だけ設定すると、「BIOS Asset Tag」に設定した文字列が入る
SMBIOS.noOEMStrings = “TRUE”とSMBIOS.assettag = “TEST”を設定では、変化無し
SMBIOS.noOEMStrings = “TRUE”、SMBIOS.addHostVendor = “TRUE”、SMBIOS.assettag = “TEST”を設定でも変わらず
上記3つに SMBIOS.useShortSerialNumber = “TRUE” を追加すると、”Serial Number”の文字列が変わる
ここにSMBIOS.reflectHost=TRUEを追加すると、”Product Name”,”Vendor Name”, “Serial Number”が物理サーバ由来の値に置き換わるが、”BIOS Asset Tag”については設定値を引き継いでいる
今度は逆にいくつかFALSEに変更
SMBIOS.noOEMStrings と SMBIOS.useShortSerialNumbeをFALSEとし、SMBIOS.reflectHostとSMBIOS.addHostVendor はTRUEのままとした場合、reflectHostの設定が最も優先されているので、状況に変化がない
SMBIOS.reflectHostだけTRUE(他はfalse)としても変化はない
SMBIOS.noOEMStrings と SMBIOS.addHostVendor はESXi 7.0以降では活用されていない設定なのか?