Save-SCVirtualMachine
将部署在主机上的虚拟机迁移到 VMM 库。
语法
Save-SCVirtualMachine
[-VM] <VM>
[-LibraryServer <LibraryServer>]
[-UseLAN]
[-SharePath <String>]
[-RunAsynchronously]
[-PROTipID <Guid>]
[-JobVariable <String>]
[-OnBehalfOfUser <String>]
[-OnBehalfOfUserRole <UserRole>]
[<CommonParameters>]
说明
Save-SCVirtualMachine cmdlet 将主机上部署的虚拟机迁移到 Virtual Machine Manager (VMM) 库。
这会使用以下传输方法之一将虚拟机存储到 VMM 库:
- SAN 传输 (光纤通道、iSCSI 或 NPIV) 。 如果主机和库服务器都连接到 SAN 存储,VMM 可以使用 SAN 传输将虚拟机存储在库中。 在 SAN 传输过程中,目标 LUN 从源主机重新映射到目标库服务器。 此 cmdlet 不会移动任何文件。 SAN 传输比通过局域网 (LAN) 将虚拟机文件从一台主机移动到另一台主机要快得多。 如果主机总线适配器 (HBA) 支持 NPIV,则 VMM 可以使用 NPIV SAN 传输。
- 网络传输。 如果没有更快的方法可用,VMM 使用网络传输将虚拟机文件从主机服务器移动到通过连接这两台服务器的 LAN 的库服务器。 指定库中共享的路径,以将虚拟机存储为 SharePath 参数。
此 cmdlet 自动使用最快的可用传输类型。 如果要强制网络传输,请指定 UseLAN 参数。 如果主机服务器和库服务器是同一服务器,则指定 UseLAN 时命令不会失败,但如果不使用该参数,则迁移到库的速度会更快。
将虚拟机存入库中后,便无法启动。 在启动虚拟机之前,必须使用 Move-SCVirtualMachine cmdlet 将其移动到主机。
示例
示例 1:将虚拟机保存到库
PS C:\> $VM = Get-SCVirtualMachine -Name "VM01"
PS C:\> $LibServer = Get-SCLibraryServer -ComputerName "LibServer01"
PS C:\> Save-SCVirtualMachine -LibraryServer $LibServer -VM $VM -SharePath "\\LibServer01.Contoso.com\Library01\VMs"
第一个命令获取名为 VM01 的虚拟机对象,然后将该对象存储在$VM变量中。
第二个命令获取名为 LibServer01 的库服务器对象,然后将该对象存储在$Library变量中。
最后一个命令将 VM01 从其主机迁移到位置 \LibServer01.Contoso.com\Library01\VM。 该命令自动使用最快的可用传输类型。
示例 2:以异步方式将虚拟机存储在库中
PS C:\> $VM = Get-SCVirtualMachine -Name "VM02"
PS C:\> $LibServer = Get-SCLibraryServer -ComputerName "LibServer02"
PS C:\> Save-SCVirtualMachine -LibraryServer $LibServer -VM $VM -SharePath "\\LibServer02.Contoso.com\Library02\VMs" -RunAsynchronously -JobVariable "SaveVMJob"
PS C:\> $SaveVMJob
第一个命令获取名为 VM02 的虚拟机对象,然后将该对象存储在$VM变量中。
第二个命令获取名为 LibServer02 的库服务器对象,然后将该对象存储在$Library变量中。
第三个命令将 VM02 迁移到位置 \LibServer02.Contoso.com\Library02\VM。 该命令指定 RunAsynchronously 参数,以便立即将控件返回到命令行界面。 该命令指定 JobVariable 参数跟踪作业进度,并在$SaveVMJob中存储其进度记录。 对于 JobVariable,不指定美元符号 ($) 来创建变量。
最后一个命令显示$SaveVMJob的内容。
示例 3:通过强制网络传输将虚拟机存储在库中
PS C:\> $VM = Get-SCVirtualMachine -Name "VM03"
PS C:\> $LibServer = Get-SCLibraryServer -ComputerName "LibServer01"
PS C:\> Save-SCVirtualMachine -LibraryServer $LibServer -VM $VM -SharePath "\\LibServer01.Contoso.com\Library01\VMs" -UseLAN
第一个命令获取名为 VM03 的虚拟机,然后将该对象存储在$VM变量中。
第二个命令获取名为 LibServer01 的库服务器对象,然后将该对象存储在$LibServer变量中。
最后一个命令将 VM03 存储到位置 \LibServer01.Contoso.com\Library01\VM。 UseLAN 参数强制通过 LAN 进行网络传输,即使有更快的传输机制可用。
参数
-JobVariable
指定作业进度变量的名称。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-LibraryServer
指定一个 VMM 库服务器对象。
Type: | LibraryServer |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-OnBehalfOfUser
指定用户名。 此 cmdlet 代表此参数指定的用户操作。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-OnBehalfOfUserRole
指定用户角色。 若要获取用户角色,请使用 Get-SCUserRole cmdlet。 此 cmdlet 代表此参数指定的用户角色进行操作。
Type: | UserRole |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PROTipID
指定触发此操作 (PRO 提示) 的性能和资源优化提示的 ID。 此参数允许审核 PRO 提示。
Type: | Guid |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-RunAsynchronously
指示作业以异步方式运行,以便控件立即返回到命令 shell。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SharePath
指定此 cmdlet 保存虚拟机的现有库服务器上的有效库共享的路径。 指定 UNC) 路径 (通用命名约定。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UseLAN
指示即使有更快的传输机制可用,此 cmdlet 也使用 LAN 传输。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-VM
指定要保存的虚拟机对象。
Type: | VM |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
输出
VirtualMachine
此 cmdlet 返回 VirtualMachine 对象。
备注
- 需要 VMM 虚拟机对象,可以使用 Get-SCVirtualMachine cmdlet 进行检索。