New-SCVMCheckpoint

为 VMM 管理的主机上部署的虚拟机创建检查点。

语法

New-SCVMCheckpoint
   [-VM] <VM>
   [-VMMServer <ServerConnection>]
   [-Description <String>]
   [-Name <String>]
   [-RunAsynchronously]
   [-PROTipID <Guid>]
   [-JobVariable <String>]
   [-WhatIf]
   [-Confirm]
   [-OnBehalfOfUser <String>]
   [-OnBehalfOfUserRole <UserRole>]
   [<CommonParameters>]

说明

New-SCVMCheckpoint cmdlet 为部署在 Virtual Machine Manager(VMM)托管的主机上的虚拟机创建检查点。 可以使用检查点将虚拟机还原到以前的状态。

典型的用途是在将更新安装到操作系统或虚拟机上的应用程序之前创建检查点,这样,如果更新失败或对虚拟机产生负面影响,则可以使用 Restore-SCVMCheckpoint cmdlet 将虚拟机还原到其以前的状态。

对于部署在 Hyper-V 主机上、VMware ESX 主机或 Citrix XenServer 主机上的虚拟机,VMM 会创建检查点而不停止虚拟机,因此不会中断服务。

在将虚拟机还原到检查点之前,请务必备份虚拟机上的数据文件。 还原虚拟机时,其虚拟硬盘上的用户数据文件将返回到其以前的状态。

尽管检查点允许在更改(如系统或应用程序更新)后将虚拟机还原到以前的状态,但检查点不提供操作系统、应用程序或文件的永久备份。 检查点与主机上的虚拟机一起存储。 因此,如果主机失败,则部署在该主机上的虚拟机的检查点将丢失。

若要为虚拟机提供数据保护,可以使用卷影复制服务(VSS)。 可以使用备份应用程序(例如 Data Protection Manager(DPM)将任何类型的主机上的虚拟机备份到外部存储。

可以授予自助服务用户为其虚拟机创建和管理检查点的权限。 有关详细信息,请键入 Get-Help Set-VMMUserRole -Detailed

示例

示例 1:为具有相同名称但位于不同主机上的虚拟机创建虚拟机检查点

PS C:\> $Checkpoints = Get-SCVirtualMachine -Name "VM01" | New-SCVMCheckpoint
PS C:\> $Checkpoints

第一个命令获取名为 VM01 的虚拟机对象(本示例假定多个主机包含名为 VM01 的虚拟机),为每个虚拟机对象创建一个检查点,然后将检查点对象存储在$Checkpoints对象数组中。

第二个命令显示有关存储在用户$Checkpoints中的每个检查点对象的信息。

示例 2:异步为虚拟机创建虚拟机检查点

PS C:\> Get-SCVirtualMachine -Name "VM02" | New-SCVMCheckpoint -RunAsynchronously -JobVariable "NewCheckpiontJob"
PS C:\> Write-Host $NewCheckpointJob

此示例以与示例 1 相同的方式创建检查点,但此命令使用 RunAsynchronously 参数立即返回命令 shell 的控制,并使用 JobVariable 参数跟踪作业进度并将进度记录存储在 NewCheckpointJob 变量中。 使用 JobVariable 参数时,不使用美元符号 ($) 来创建变量。

第二个命令显示$NewCheckpointJob的内容。

参数

-Confirm

在运行 cmdlet 之前,提示你进行确认。

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

-Description

指定检查点的说明。

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

-JobVariable

指定在此参数命名的变量中跟踪和存储作业进度。

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

-Name

指定 VMM 对象的名称。

类型:String
Position:Named
默认值:None
必需:False
接受管道输入: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

-RunAsynchronously

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

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

-VM

指定虚拟机对象。

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

-VMMServer

指定 VMM 服务器对象。

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

-WhatIf

显示 cmdlet 运行时会发生什么情况。 cmdlet 未运行。

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

输出

VMCheckpoint

此 cmdlet 返回 VMCheckpoint 对象。