Repair-SCVirtualMachine

修复处于失败状态的虚拟机。

语法

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

说明

Repair-SCVirtualMachine cmdlet 修复处于虚拟机管理器(VMM)托管的主机上失败状态的虚拟机。 虚拟机可以处于以下失败状态之一:

  • 创建失败
  • 迁移失败
  • 更新失败
  • 删除失败

可以使用此命令修复故障,如下所示:

  • 重试。 尝试再次执行失败的作业。
  • 撤消。 尝试撤消对虚拟机所做的任何更改,并将其还原到正常状态。 例如,如果 Move-SCVirtualMachine 作业失败,撤消会尝试将虚拟机移回其以前的主机。
  • 解雇。 消除失败的作业,并根据虚拟机的当前状态更新虚拟机。 如果手动修复了故障,可以使用“关闭”选项刷新 VMM 数据库中虚拟机的数据。 但是,使用“消除”选项可能会将对象返回到失败状态。

运行此 cmdlet 时,一次只能指定一种类型的操作。

可以运行此 cmdlet 来修复作为服务一部分的虚拟机的来宾内代理,方法是使用 Agent 参数。

示例

示例 1:通过重试迁移任务修复失败的迁移任务

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

第一个命令获取名为 VM01 的虚拟机对象,然后将该对象存储在$VM变量中。 在此示例中,你想要修复失败的移动操作。

第二个命令通过重启以前的失败迁移任务来修复存储在$VM中的虚拟机对象。

示例 2:修复或升级属于服务的指定虚拟机上的 VMM 来宾内代理

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

第一个命令获取名为 ServiceVM01 的虚拟机对象,然后将该对象存储在$VM变量中。 在此示例中,虚拟机是服务的一部分。

第二个命令获取凭据对象,该对象必须是要修复的虚拟机上的本地管理员,然后将该对象存储在$Creds变量中。

第三个命令修复存储在$VM中的虚拟机对象上的来宾中代理。

参数

-Agent

指示此 cmdlet 会根据需要修复或升级 VMM 来宾内代理。

类型:SwitchParameter
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-Dismiss

消除对象上的错误或服务实例上的更新通知。

关闭错误后,将刷新对象。 如果错误再次出现,刷新无法解决问题,必须修复错误。

类型:SwitchParameter
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-Force

强制操作完成。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-JobVariable

指定作业进度的变量的名称。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-MigrateDBOnlyVM

指示此 cmdlet 使用 MigrateDBOnlyVM。

类型:SwitchParameter
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-OnBehalfOfUser

指定用户名。 此 cmdlet 代表此参数指定的用户运行。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-OnBehalfOfUserRole

指定用户角色。 若要获取用户角色,请使用 Get-SCUserRole cmdlet。 此 cmdlet 代表此参数指定的用户角色运行。

类型:UserRole
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-PROTipID

指定触发此操作的性能和资源优化提示(PRO 提示)的 ID。 此参数允许你审核 PRO 提示。

类型:Guid
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Retry

指示此 cmdlet 在尝试成功完成该任务时重试虚拟机上失败的最后一个任务。

类型:SwitchParameter
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-RunAsynchronously

指示作业以异步方式运行,以便控件立即返回到命令行界面。

类型:SwitchParameter
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-Undo

指示此 cmdlet 取消在虚拟机上运行的最后一个作业,并撤消所做的任何更改。 仅当最近的作业失败时,此参数才可用。

类型:SwitchParameter
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

-VM

指定虚拟机对象。

类型:VM
Position:0
默认值:None
必需:True
接受管道输入:True
接受通配符:False

-VMHost

指定虚拟机主机对象。 VMM 支持 Hyper-V 主机、VMware ESX 主机和 Citrix XenServer 主机。 有关每种主机类型的详细信息,请参阅 Add-SCVMHost cmdlet。

类型:Host
Position:Named
默认值:None
必需:True
接受管道输入:False
接受通配符:False

输出

VirtualMachine

备注

  • 此 cmdlet 需要虚拟机对象,可以使用 Get-SCVirtualMachine cmdlet 来检索该对象。