Reset lost BIOS password - Virtual Server 2005

An answer to a question that came up on the internal Microsoft discussion group for Virtual Server 2005 amused me. The question was what could you do if you lost the BIOS password for a virtual machine.

In a physical machine, you can often move a jumper on the motherboard or remove the battery to reset the CMOS. Obviously a virtual machine doesn't have anything physical like this, but the answer posted up was to "remove the virtual battery". You can't, although I did look through the .vmc (Virtual Machine Configuration) file for a battery setting :-)

The actual answer is simply to open the .vmc file in a text editor, and scan down to the <bios> section which will be similar to below:

<bios>
<base_board>
<serial_number type="string">1234-5678-4797-4379-2023-2540-66</serial_number>
</base_board>
<bios_guid type="string">{5242D6D9-20F8-7442-B2E6-DFCFFC45749A}</bios_guid>
<bios_serial_number type="string">1234-5678-4797-4379-2023-2540-66</bios_serial_number>
<chassis>
<asset_tag type="string">1234-5678-4797-4379-2023-2540-66</asset_tag>
<serial_number type="string">1234-5678-4797-4379-2023-2540-66</serial_number>
</chassis>
<time_bytes type="bytes">55000100100005270105</time_bytes>
<cmos type="bytes">00004000F02....truncated...000000</cmos>
</bios>

If you remove the highlighted line above starting "<cmos" and restart your Virtual Machine, the password will be gone (as will any other customisations made to your BIOS). Note that this file is locked while the Virtual Machine is running, and this should also work under Microsoft Virtual PC 2004 as the .VMC file is largely compatible between the two products.