Tuesday, September 20, 2011

SCVMM "Migration Failed"- how to clear

When working with Microsoft SCVMM (System Center Virtual Machine Manager) in a Hyper-V virtualization environment, we have run across scenarios in which the failed migration of a VM from one host to another may leave the VM in a failed state. Specifically, in the SCVMM console, the VM has a red 'X' beside it with the "Migration failed" under the status column. While the VM is in this failed state, SCVMM will only allow you to Repair, Delete, or View networking of the VM. Furthermore, if you right-click the VM and select 'Repair', the option to 'Ignore' is unavailable, and the 'Retry' and 'Undo' options fail. Even though you may have corrected the problem outside of VMM, for example using the Hyper-V Manager console, the repair options yield no results.

We have read many articles and posts on how to deal with this scenario, such as removing the host from VMM and adding it back. Or using SQL Server Management Studio to hide failed jobs (NOT a good idea as it can eventually lead to poor SCVMM performance since the VMM cleanup process will skip old jobs that are hidden!). Once you have corrected the problem and exhausted all possibilities to remedy the situation, here is a handy PowerShell script that will help you out of this jam, which we pieced together specifically for this situation.

First, a little peek under the hood:

- When the migration fails, the ObjectState field in SQL for the VM gets set to 220, indicating a failed state.
- If the ObjectState field for a VM is set to 0 (zero) or 1, SCVMM will re-check the VM state. If you have repaired the VM and set the ObjectState in the VirtualManagerDB to 0, VMM will immediately notice the VM has been fixed, and all is well.

I have created this script and used it in a production environment, but use it at your own risk. Be sure to back up the VMM database just before using this so you have an out.

Script name: Clear-VMMFailState.ps1
PS Requirements: I have only tested this under PowerShell 2.0, and have verified that it doesn't require any special PS modules such as the VMM or SQL modules. It worked fine for us in the out-of-box PowerShell in Win2008R2 with no modules loaded. This should also work remotely with no problem.

We encourage feedback on your experience with this script, and any suggestions you may have on how to improve it.

Script Help (get-help ./Clear-VMMFailState.ps1 -Detailed)
This script will clear the failed state of a Virtual Machine in VMM.

!!!WARNING!!! back up your VMM SQL database before using this script. You have been warned!
This should only be used under the following circumstances:
- If a failure in a VMM job has a VM in a 'Failed' state
- AND -
- The repair function in VMM won't allow you to 'Ignore'
- AND - 
- The repair function in VMM fails when performing a 'Retry' or 'Discard'
- AND -
- You have corrected the issue outside of VMM (such as with Hyper-V Manager MMC etc.)
- AND -
- You have already tried refreshing the VMM Server, VM Host, and VM from within the VMM console or shell

-VMname <String> - the name of the Virtual Machine (as it appears in SCVMM)
-VmmDBserver <String> - this is the FQDN of the server that hosts the SQL instance of the SCVMM database
- VmmDBname <String> - this is the Database name of the SCVMM database; if not specified, this defaults to the value of 'VirtualManagerDB'
-IntegratedAuth <Switch> - if this switch is specified, integrated Windows authentication is used for the connection to the SCVMM database. If not specified, you must use the -UserName and -Password switches to authenticate to SQL
-UserName <String> - The username used to authenticate to the SCVMM database. If not using the -IntegratedAuth switch, this is required
-Password <String> - Password for the user specified with -UserName

Example 1:
./Clear-VMMFailState.ps1 -VMname TestVM01 -VmmDBserver VmmSQLserver.domain.com -IntegratedAuth
>> Connects to the SQL server that hosts the SCVMM database (VmmSQLserver.domain.com) and the default VMM database (VirtualManagerDB) using Integrated Authentication with currently logged on credentials, then clears the failed state of the Virtual Machine named 'TestVM01'.

Example 2:
./Clear-VMMFailState.ps1 -VMname TestVM01 -VmmDBserver VmmSQLserver.domain.com -VmmDBname MyVmmDB -UserName domain.com\vmmAdmin -Password MyPassWord
>> Connects to the SQL server that hosts the SCVMM database (VmmSQLserver.domain.com) and the VMM database named 'MyVmmDB' using the specified username and password, then clears the failed state of the Virtual Machine named 'TestVM01'.

And now for the script... http://powershell.com/cs/media/p/12426.aspx


  1. Write more, that's all I have to say. Literally, it seems as though you relied on the video to make your point. You clearly know what you're talking about, why waste your intelligence on just posting videos to your site when you could be giving us something informative to read? His comment is here: How To Password Protect Folder The Spartan Way

  2. Hi Can you please direct me to your script. i am having similar issue and would like to try out your script. the link above seems to be broken. thank You

  3. 1xbet Casino – Live Dealer Games with Big bonuses
    1xbet is a relatively new online gambling brand that is カジノ シークレット launching クイーンカジノ in Germany. The brand offers an extensive range of casino games 1xbet and slots,

  4. Online Slots - Jammyhub
    Try over 40 slots 오산 출장안마 on Jammyhub today. Try the best free online slots and 거제 출장마사지 games. Play 영천 출장샵 with us in demo mode 고양 출장안마 and read our casino games 광양 출장샵 review for free.

  5. According to the press launch, "The actions accuse Slotie NFT ("Slotie") 1xbet of illegally and fraudulently promoting nonfungible tokens, recognized as|sometimes called} NFTs, to raise capital for on-line and metaverse casinos." These findings have been vital in that that is the primary time that they have been corroborated with real-life knowledge. “It’s fairly well-known that these fallacies exist in the lab, however it’s by no means been clear until now how they play out in a real world with real consequences,’ said Narayanan.