Introduction
マシンの固有情報を取得する方法について調べている。
そのうち、SMBIOS (System Management BIOS) の UUID に注目しているが、仮想マシン上だとどうなるのか調べてみた。
普通に考えれば、ホストマシンの SMBIOS 情報なんて拾ってこないはずだが…
How to check?
SMBIOS の UUID を取得するプログラムを作った。
いや、取得するだけなら Powershell でも WMI でもできるが…プログラムから固有情報を取得できるようにしたかったのでこうなった。
下記は実行結果。
物理マシン上
DELL の Alienware Aurora R7 で実行。
一部伏字。
1 | > .\install\win\bin\Test.exe |
Hyper-V
上記 DELL マシン上の Hyper-V で確認。
1 | > .\install\win\bin\Test.exe |
Oracle VirtualBox
上記 DELL マシン上の VirtualBox 7 で確認。
1 | > .\install\win\bin\Test.exe |
WMWare ESXi
DELL の Precision Tower 5810 上の ESXi 7 内の Windows 11 で実行。
1 | > .\install\win\bin\Test.exe |
Appendix
SMBIOS の UUID は下記の方法でも取得できる。
Windows Management Instrumentation
1 | > wmic csproduct get uuid |
Powershell
1 | > (Get-CimInstance -Class Win32_ComputerSystemProduct).UUID |
レジストリ
1 | > reg query "HKEY_LOCAL_MACHINE\SYSTEM\HardwareConfig" /v LastConfig |