Repair-SCVirtualMachine

Repairs a virtual machine in a failed state.

Syntax

Repair-SCVirtualMachine [-VM] <VM> [-Agent] [-JobVariable <String>] [-OnBehalfOfUser <String>]
 [-OnBehalfOfUserRole <UserRole>] [-PROTipID <Guid>] [-RunAsynchronously] [<CommonParameters>]
Repair-SCVirtualMachine [-VM] <VM> [-Dismiss] [-Force] [-JobVariable <String>] [-OnBehalfOfUser <String>]
 [-OnBehalfOfUserRole <UserRole>] [-PROTipID <Guid>] [-RunAsynchronously] [<CommonParameters>]
Repair-SCVirtualMachine [-VM] <VM> [-JobVariable <String>] [-MigrateDBOnlyVM] [-OnBehalfOfUser <String>]
 [-OnBehalfOfUserRole <UserRole>] [-PROTipID <Guid>] [-RunAsynchronously] -VMHost <Host> [<CommonParameters>]
Repair-SCVirtualMachine [-VM] <VM> [-JobVariable <String>] [-OnBehalfOfUser <String>]
 [-OnBehalfOfUserRole <UserRole>] [-PROTipID <Guid>] [-Retry] [-RunAsynchronously] [<CommonParameters>]
Repair-SCVirtualMachine [-VM] <VM> [-JobVariable <String>] [-OnBehalfOfUser <String>]
 [-OnBehalfOfUserRole <UserRole>] [-PROTipID <Guid>] [-RunAsynchronously] [-Undo] [<CommonParameters>]

Description

The Repair-SCVirtualMachine cmdlet repairs a virtual machine in a failed state that is on a host managed by Virtual Machine Manager (VMM). A virtual machine can be in one of the following types of failed state:

- Creation Failed

  • Migration Failed
  • Update Failed
  • Deletion Failed

    You can use this command to repair a failure as follows:

    - Retry. Tries to perform the failed job again.
  • Undo. Try to undo any changes that were made to the virtual machine and restore it to a healthy state. For example, if a Move-SCVirtualMachine job fails, Undo tries to move the virtual machine back to its previous host.
  • Dismiss. Dismisses the failed job and updates the virtual machine based on its current state. If you manually fix a failure, you can use the Dismiss option to refresh the data for the virtual machine in the VMM database. However, using the Dismiss option might return the object to the failed state.

    When you run this cmdlet, you can specify only one type of action at a time.

    You can run this cmdlet to repair an in-guest agent for a virtual machine that is part of a service by using the Agent parameter.

Examples

Example 1: Repair a failed migration task by retrying the migration task

PS C:\> $VM = Get-SCVirtualMachine -Name "VM01"
PS C:\> Repair-SCVirtualMachine -VM $VM -Retry

The first command gets the virtual machine object named VM01, and then stores that object in the $VM variable. In this example, you want to repair a failed move action.

The second command repairs the virtual machine object stored in $VM by restarting the previous failed migration task.

Example 2: Repair or upgrade the VMM In-guest agent on a specified virtual machine that is part of a service

PS C:\> $VM = Get-SCVirtualMachine -Name "ServiceVM01"
PS C:\> $Creds = Get-Credential
PS C:\> Repair-SCVirtualMachine -VM $VM -Credential $Creds -Agent

The first command gets the virtual machine object named ServiceVM01, and then stores that object in the $VM variable. In this example, the virtual machine is part of a service.

The second command gets a credential object, which must be a local administrator on the virtual machine to be repaired, and then stores that object in the $Creds variable.

The third command repairs the in-guest agent on the virtual machine object stored in $VM.

Parameters

-Agent

Indicates that this cmdlet repairs or upgrades the VMM in-guest agent, as applicable.

Type:SwitchParameter
Required:True
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Dismiss

Dismisses the error on an object or an update notification on a service instance.

After an error is dismissed, the object is refreshed. If the error reappears, refreshing does not solve the problem and you must fix the error.

Type:SwitchParameter
Required:True
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Force

Forces the operation to finish.

Type:SwitchParameter
Required:False
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-JobVariable

Specifies the name of a variable for job progress.

Type:String
Required:False
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-MigrateDBOnlyVM

Indicates that this cmdlet uses MigrateDBOnlyVM.

Type:SwitchParameter
Required:True
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-OnBehalfOfUser

Specifies a user name. This cmdlet operates on behalf of the user that this parameter specifies.

Type:String
Required:False
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-OnBehalfOfUserRole

Specifies a user role. To obtain a user role, use the Get-SCUserRole cmdlet. This cmdlet operates on behalf of the user role that this parameter specifies.

Type:UserRole
Required:False
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-PROTipID

Specifies the ID of the Performance and Resource Optimization tip (PRO tip) that triggered this action. This parameter lets you audit PRO tips.

Type:Guid
Required:False
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Retry

Indicates that this cmdlet retries the last task that failed on the virtual machine in an attempt to complete the task successfully.

Type:SwitchParameter
Required:True
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-RunAsynchronously

Indicates that the job runs asynchronously so that control returns to the command shell immediately.

Type:SwitchParameter
Required:False
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Undo

Indicates that this cmdlet cancels the last job run on the virtual machine and reverses any changes that were made. This parameter is available only if the most recent job failed.

Type:SwitchParameter
Required:True
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-VM

Specifies a virtual machine object.

Type:VM
Required:True
Position:0
Default value:None
Accept pipeline input:True (ByValue)
Accept wildcard characters:False
-VMHost

Specifies a virtual machine host object. VMM supports Hyper-V hosts, VMware ESX hosts, and Citrix XenServer hosts. For more information about each type of host, see the Add-SCVMHost cmdlet.

Type:Host
Required:True
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False

Outputs

VirtualMachine

Notes

* This cmdlet requires a virtual machine object, which can be retrieved by using the **Get-SCVirtualMachine** cmdlet.