Have you ever run into a situation where a failed P2V or other job leaves you with a VM you cannot delete? I have and it usually ends up looking something like this:
Recently we’ve had a couple of cases come in where a VM was stuck in the Creating State in the SCVMM 2008 console due to a P2V or some other failure. When this happens there is no apparent way to resolve this issue using either the Users Interface or a Powershell script. During my last encounter, the first thing we tried was the following Powershell command lines:
Get-VMMServer -ComputerName <vmm server name>
$VM = Get-VM -Name "<name of vm in admin console>"
Remove-VM -VM $VM –Force
But this failed with:
Remove-VM : VMM cannot remove the virtual machine because it is in the Creating
... state. (Error ID: 809, Detailed Error: )
Change the virtual machine's state, and then try the operation again.
This script had worked great in the past but didn’t work in this situation, and so far the only way we know to remove this type of VM is to implement the procedure below:
First back up the VMM database
1. In Administration view, click
, and then, in the Actions pane, click
Back up Virtual Machine Manager:
2. In the
Virtual Machine Manager Backup
dialog box, type the path for a destination folder for the backup file. The folder must not be a root directory and must be accessible to the SQL Server:
When complete, your SCVMM backup file should look something like this:
Next we need to edit some tables in the SQL database. If you are using the SQL Server 2005 Express Edition that comes with the SCVMM 2008 product you will not have a way to access the VirtualManagerDB VMM database tables by default. If you have SQL Server 2005 you may need to install the SQL Server Management Studio if it was not already installed. In either case you will need the SQL Server Management Studio to access the tables. If you don’t have it installed you can download it here:
Once you have SQL Server Management Studio installed launch it and drill down to the VirtualManagerDB tables node:
Once there scroll down and find the tbl_WLC_VObject table, right click on it and choose “ Open Table”:
You should see something like this:
What we want to do is change the ObjectStateValue from 100 to 1 and hit Enter. After that just do a refresh on the Hyper-V Host that “Bad Box” is hosted on and notice that its status has changed to Stopped!
The VM should wind up in either the Stopped or Missing state and you should have the option to delete this VM. Go ahead and delete it now.
Many thanks to Steve Thomas who did the research which is the foundation of this process and Jason Alanis who duplicated it and ironed out some of the details.