VirtualBOXでUUIDやシリアルナンバーを変更する
結局目的を成し遂げられずに日曜日を完全に無駄にした。悪いことはするべきではないと反省する一方、すぐに忘れそうな小技はどこかにメモしなければならないと思ったりもする。
一生使わなさそうな小技をここに。
※ホストOSかGuestOSか明記していませんが、基本的にはホストOS側の作業です。
Guest側は変わったかどうかチェックするくらいです。
また、ホストもゲストもWindws10で作業しています。
■既存のWindowsマシンでUUIDを調べる
cmdで[wmic csproduct]
ちなみにwmicコマンドは色々なことができるが、今回使ったのは下記
・システム情報[wmic csproduct]
・マザーボード情報[wmic basebord]
これらのコマンドでシリアルナンバーやUUID、puroduct、Vendorなど調べることができる。
■VirtualBOXでUUIDを変更する方法
UUIDの変更は少し特殊で.vboxファイル(VMの設定情報)と.vidファイル(仮想HDD)の両方を書き換える必要がある。
→vbox側の処理
①変更したい仮想PC登録をVirtualboxから除去する(すべて削除してはいけない)
②.vboxをテキストエディタで開きmachineタグのuuidを変更して保存する。
→vdi側の処理
①Virtualboxのインストールされているフォルダまでcmdで移動する。
(VBoxManage.exeが使いたいので。)
②cmdで以下の様にコマンドを打つ
VBoxManage internalcommands sethdparentuuid "D:\仮想HDD.VHD" "XXXXXXX-0400-0500-0006-XXXXXXXXXX"
この二つを行い、wmic cspuroductで調べれば、UUIDは変わっていると思われる。
■VirtualBOXでシリアルナンバー他を変更する方法
他と書いたが、変更できるものが多すぎるので割愛。詳しくは公式のGuideを参照
またまたVBoxManage.exeを使うので、cmdでインストールフォルダまで移動してから下記コマンドで打っていく
VBoxManage setextradata "仮想PC名" "VBoxInternal/Devices/pcbios/0/Config/DmiSystemVendor" "任意のベンダー名"
基本的にはこの様式。DmiSystemVendorの部分を打ちかえてDmiSystemSerialなどに変更すればシステムのシリアルナンバーを変更できる。
ちなみにブートがUEFIの場合はpcbios→efiに変更する必要がある。文字サイズも影響するので、小文字でやること。これに気付かず大文字でやって3時間くらい無駄にした。
例文を適当にぼかしながらおいておく。
VBoxManage setextradata "win10" "VBoxInternal/Devices/pcbios/0/Config/DmiSystemVendor" "XXXINC."
VBoxManage setextradata "win10" "VBoxInternal/Devices/pcbios/0/Config/DmiSystemSerial" "string:00000000"
VBoxManage setextradata "win10" "VBoxInternal/Devices/pcbios/0/Config/DmiSystemProduct" "XXXXPC"
VBoxManage setextradata "win10" "VBoxInternal/Devices/pcbios/0/Config/DmiSystemVersion" "1.0/2.0"
VBoxManage setextradata "win10" "VBoxInternal/Devices/pcbios/0/Config/DmiBoardVendor" "XXX"
VBoxManage setextradata "win10" "VBoxInternal/Devices/pcbios/0/Config/DmiBoardProduct" "ZXXXX4"
VBoxManage setextradata "win10" "VBoxInternal/Devices/pcbios/0/Config/DmiBoardVersion" "1.0/2.0"
VBoxManage setextradata "win10" "VBoxInternal/Devices/pcbios/0/Config/DmiBoardSerial" "string:00000000"
注目して頂きたいのはstring:0000000。
数字だけだとstringと認識せず、エラーを吐くのでstring:と明示する必要があるらしい。
ここでも気づかずに2時間くらい使った。。。。
また、登録はコマンドを打つことで上書き出来る。
①VBoxManage setextradata "win10" "VBoxInternal/Devices/pcbios/0/Config/DmiBoardSerial" "string:00000000"
②VBoxManage setextradata "win10" "VBoxInternal/Devices/pcbios/0/Config/DmiBoardSerial" "string:999999"
とした場合、最終的にマザボのシリアルは999999となる。
また、コマンドで登録した内容は削除することもできる。
VBoxManage setextradata "win10" "VBoxInternal/Devices/pcbios/0/Config/DmiBoardSerial"
末尾のデータを消している状態でコマンドを入れると登録削除である。
以上
ここまでやったが、やりたいことは出来なかった。悪いことは(時間を無駄にするから)やるべきではないな。と痛感した。