I recently ran into an issue at a customer site in that they had a few virtual machines in SCVMM 2008 listed with a status of “Missing” as shown below.
It seems as though the issue was caused by a host being put into maintenance mode and virtual machines migrating to other host systems. VMM also shows another instance of the machine in the vm list as green/healthy and running. Trying to delete the “phantom” virtual machine resulted in a failed job and a new status of “Update Failed”.
How to fix this now? First close the admin console and stop the virtual machine management service (VMMService.exe).
Jump into SQL Server Management studio and connect to the remote sql server that houses the SCVMM database. If you are unsure of the database location, you can verify this in the adminsitration pane of SCVMM.
First things first once connected in SQL Management studio, we need to fix the vm status and change it back to “Missing” from “Update Failed”. To do this, expand the SCVMM database, then expand Tables, and right click on dbo.tbl_WLC_VObject and select “Edit Top 200 rows”.
The table will populate and present you with the first two hundreds row which you can then edit. Scroll down the rows inspecting column labled “Object State” for value 107. Value 107 is the value for the VM in question with a status of “Update Failed”. Change this value from 107 to 220 (Missing) to update the database and change the status of the problematic vm back to missing.
When the value is changed to 220, you can then execute your changes by clicking the red exclamation point to write them to the table. Keep in mind that you have hit enter or tab out of the cell for the value to change from 107 to 220.
Once completed, start the VMM service back up and launch the SCVMM administration console to check the status has in fact change from “Update Failed” back to “Missing”. If so, proceed with the removal of the phantom vm record using a procedure found here. To do this, close the admin console once more, stop the services again and take a backup of the SCVMM sql database as this WILL remove entries from the database tables. Once the backup is complete, connect to the database and execute the sql script found at the mentioned link against the SCVMM database.
Successful execution of the script should display similar results to the below image.
Once completed successfully, you can start the Virtual Machine Manager service back up and launch the administration console to verify the missing vm has been successfully removed from the list of virtual machines.
This issue has also been resolved in a rollup pack released in September of 2010 found here.