New-SCV2V

将虚拟机转换为部署在 VMM 管理的 Hyper-V 主机上的虚拟机。

语法

New-SCV2V
   [-EnableVMNetworkOptimization <Boolean>]
   [-EnableMACAddressSpoofing <Boolean>]
   [-VMMServer <ServerConnection>]
   [-LibraryServer <LibraryServer>]
   -VMHost <Host>
   -VMXPath <String>
   [-JobGroup <Guid>]
   [-Trigger]
   [-Description <String>]
   [-Name <String>]
   [-Owner <String>]
   [-UserRole <UserRole>]
   [-Path <String>]
   [-StartVM]
   [-CPUCount <Byte>]
   [-CPURelativeWeight <Int32>]
   [-CPUType <ProcessorType>]
   [-MemoryMB <Int32>]
   [-DelayStartSeconds <Int32>]
   [-StartAction <VMStartAction>]
   [-StopAction <VMStopAction>]
   [-LogicalNetwork <LogicalNetwork>]
   [-VMNetwork <VMNetwork>]
   [-NoConnection]
   [-MACAddress <String>]
   [-MACAddressType <String>]
   [-SourceNetworkConnectionID <String>]
   [-VirtualNetwork <VirtualNetwork>]
   [-VirtualNetworkAdapter <VirtualNetworkAdapter>]
   [-VLanEnabled <Boolean>]
   [-VLanID <UInt16>]
   [-OverridePatchPath <String>]
   [-SkipInstallVirtualizationGuestServices]
   [-NetworkLocation <String>]
   [-NetworkTag <String>]
   [-RunAsynchronously]
   [-PROTipID <Guid>]
   [-JobVariable <String>]
   [<CommonParameters>]
New-SCV2V
   [-EnableVMNetworkOptimization <Boolean>]
   [-EnableMACAddressSpoofing <Boolean>]
   [-VMMServer <ServerConnection>]
   [-LibraryServer <LibraryServer>]
   -VMXComputerConfiguration <VmxMachineConfiguration>
   -VMHost <Host>
   [-JobGroup <Guid>]
   [-Trigger]
   [-Description <String>]
   [-Name <String>]
   [-Owner <String>]
   [-UserRole <UserRole>]
   [-Path <String>]
   [-StartVM]
   [-CPUCount <Byte>]
   [-CPURelativeWeight <Int32>]
   [-CPUType <ProcessorType>]
   [-MemoryMB <Int32>]
   [-DelayStartSeconds <Int32>]
   [-StartAction <VMStartAction>]
   [-StopAction <VMStopAction>]
   [-LogicalNetwork <LogicalNetwork>]
   [-VMNetwork <VMNetwork>]
   [-NoConnection]
   [-MACAddress <String>]
   [-MACAddressType <String>]
   [-SourceNetworkConnectionID <String>]
   [-VirtualNetwork <VirtualNetwork>]
   [-VirtualNetworkAdapter <VirtualNetworkAdapter>]
   [-VLanEnabled <Boolean>]
   [-VLanID <UInt16>]
   [-OverridePatchPath <String>]
   [-SkipInstallVirtualizationGuestServices]
   [-NetworkLocation <String>]
   [-NetworkTag <String>]
   [-RunAsynchronously]
   [-PROTipID <Guid>]
   [-JobVariable <String>]
   [<CommonParameters>]
New-SCV2V
   [-EnableVMNetworkOptimization <Boolean>]
   [-EnableMACAddressSpoofing <Boolean>]
   [-VMMServer <ServerConnection>]
   -VM <VM>
   -VMHost <Host>
   [-JobGroup <Guid>]
   [-Trigger]
   [-Description <String>]
   [-Name <String>]
   [-Owner <String>]
   [-UserRole <UserRole>]
   [-Path <String>]
   [-StartVM]
   [-CPUCount <Byte>]
   [-CPURelativeWeight <Int32>]
   [-CPUType <ProcessorType>]
   [-MemoryMB <Int32>]
   [-DelayStartSeconds <Int32>]
   [-StartAction <VMStartAction>]
   [-StopAction <VMStopAction>]
   [-LogicalNetwork <LogicalNetwork>]
   [-VMNetwork <VMNetwork>]
   [-NoConnection]
   [-MACAddress <String>]
   [-MACAddressType <String>]
   [-SourceNetworkConnectionID <String>]
   [-VirtualNetwork <VirtualNetwork>]
   [-VirtualNetworkAdapter <VirtualNetworkAdapter>]
   [-VLanEnabled <Boolean>]
   [-VLanID <UInt16>]
   [-OverridePatchPath <String>]
   [-SkipInstallVirtualizationGuestServices]
   [-NetworkLocation <String>]
   [-NetworkTag <String>]
   [-RunAsynchronously]
   [-PROTipID <Guid>]
   [-JobVariable <String>]
   [<CommonParameters>]

说明

New-SCV2V cmdlet 转换在 VMware ESX 服务器主机上创建的虚拟机。 此 cmdlet 将虚拟机转换为部署在 Hyper-V 主机上的虚拟机,由 Virtual Machine Manager (VMM) 管理。 不能将 VMware ESX 主机指定为新虚拟机的目标主机。

虚拟到虚拟机 (V2V) 转换要求新虚拟机的主机是 Hyper-V 主机。

VMware 虚拟机的 V2V 转换源是 VMM 库中的一组文件。 将以下文件存储在 VMM 库中:

  • .vmx 文件。 .vmk 文件是 VMware 虚拟机配置文件。 .vmx 文件在功能上类似于 Hyper-V 托管虚拟机使用的虚拟机配置 (.vmc) 文件。 .vmx 文件是一个文本文件,用于描述虚拟机的属性和结构,其中包括名称、内存、磁盘分配和网络参数。
  • 一个或多个 .vmdk 文件。 .vmdk 文件是 VMware 虚拟硬盘文件。 .vmdk 文件类似于 Hyper-V 托管虚拟机使用的虚拟硬盘 (.vhd) 文件。 .vmdk 文件包含来宾操作系统、应用程序和数据。 当前 cmdlet 从 .vmx 文件中标识这些文件。

以下是受支持的 VMware 虚拟硬盘格式:

  • monolithicSparse
  • monolithicFlat
  • vmfs
  • twoGbMaxExtentSparse
  • twoGbMaxExtentFlat

在转换过程中,此 cmdlet 会将 .vmdk 文件转换为 .vhd 文件。 此 cmdlet 使新虚拟机上的操作系统与 Hyper-V 兼容。 除非显式重写这些设置,否则此 cmdlet 创建的虚拟机与 VMware 虚拟机属性匹配。 这些属性包括名称、说明、内存和磁盘到总线分配。 默认情况下,转换过程不会保留网络适配器设置。 可以在目标虚拟机上显式设置适配器设置。

此 cmdlet 支持转换在以下来宾操作系统上运行的 VMware 虚拟机:

  • Microsoft 操作系统 - 所有支持操作系统
  • Linux - SCVMM 支持的所有 Linux 来宾操作系统

来宾操作系统为 Windows 的基于 VMware 的虚拟机的某些转换可能需要将系统文件和驱动程序添加到内部缓存。 可以使用 Add-SCPatch cmdlet 将所需文件添加到缓存。 若要确定必须添加哪些更新,请运行 New-SCV2V 以尝试将 .vmdk 文件转换为 .vhd 文件。 如果需要更新,此过程会将 V2V 转换置于失败状态。 可以查看所需更新的列表。 接下来,使用 Add-SCPatch 将更新添加到内部缓存,然后重启失败的 V2V 作业。 V2V 进程会继续,因此无需重做磁盘转换。

如果转换运行任何其他操作系统的基于 VMware 的虚拟机,该虚拟机可能无法启动或可能无法正常运行。 若要保证成功转换,必须先将来宾操作系统修改为受支持的操作系统之一。

有关 VMM 如何直接转换 .vmdk 文件的详细信息,请键入 Get-Help Copy-SCVirtualHardDisk。 有关如何将所需文件添加到内部缓存的详细信息,请键入 Get-Help Add-SCPatch

示例

示例 1:在 ESX 主机上转换基于 VMware 的虚拟机

PS C:\> $ESXHost = Get-SCVMHost -ComputerName "ESXHost01"
PS C:\> $VMHost = Get-SCVMHost -ComputerName "HyperVHost01.Contoso.com"
PS C:\> $VM = Get-SCVirtualMachine -VMHost $ESXHost -Name "SourceVM"
PS C:\> New-SCV2V -VM $VM -VMHost $VMHost -Name "DestinationVM" -Path "C:\VMs" -MemoryMB 512 -RunAsynchronously

第一个命令获取名为 ESXHost01 的主机,然后将该对象存储在 $ESXHost 变量中。

第二个命令获取 Contoso.com 域中名为 HyperVHost01 的主机,然后将该对象存储在 $VMHost 变量中。

第三个命令获取 ESXHost01 上名为 SourceVM 的虚拟机,然后将该对象存储在 $VM 变量中。

在最后一个命令中,New-SCV2V** 执行以下操作:

  • 从名为 SourceVM 的源 VMware 虚拟机创建名为 DestinationVM 的基于 Windows 的虚拟机。 命令将新的虚拟机(现在名为 DestinationVM)部署到 HyperVHost01 上。 它将虚拟机文件存储在 HyperVHost01 上的 C:\VM 文件夹中。
  • 在 HyperVHost01 上分配 512 MB 内存供新虚拟机使用。
  • 指定 -RunAsynchronously 参数,以在命令完成之前立即将控制权返回到命令 shell。

命令转换源虚拟机上的所有虚拟磁盘,并将其附加到新虚拟机。

示例 2:转换存储在 VMM 库中的基于 VMware 的虚拟机

PS C:\> $LibServ = Get-SCLibraryServer -ComputerName "LibServer02.Contoso.com"
PS C:\> $VMHost = Get-SCVMHost -ComputerName "VirtualServerHost02.Contoso.com"
PS C:\> New-SCV2V -LibraryServer $LibServ -VMXPath "\\LibServer02\MSSCVMMLibrary\VMware\VMSource.vmx" -VMHost $VMHost -Name "VM02" -Path "C:\VMs" -MemoryMB 512 -RunAsynchronously

第一个命令获取名为 LibServer02 的库服务器,然后将该对象存储在 $LibServ 变量中。

第二个命令获取名为 VirtualServerHost02 的主机,然后将该对象存储在 $VMHost 变量中。

在最后一个命令中, New-SCV2V 执行以下操作:

  • 从存储在 FileServer02 上的指定路径的源 VMware 文件 VMSource.vmx 创建名为 VM02 的基于 Windows 的虚拟机。 然后,该命令将名为 VM02 的新虚拟机部署到 VirtualServerHost02 上。 该命令将虚拟机文件存储在 VirtualServerHost02 上的 C:\VM 文件夹中。
  • 在 VirtualServerHost02 上分配 512 MB 内存供新虚拟机使用。
  • 指定 RunAsynchronously 参数,用于在命令完成之前立即将控制权返回到命令 shell。

参数

-CPUCount

指定虚拟机、硬件配置文件或模板上的 CPU 数目。

主机类型支持以下数量的 CPU:

  • Hyper-V。 每个虚拟机最多四个 CPU,具体取决于来宾操作系统
  • VMware ESX。 每个虚拟机最多四个 CPU,但在运行 Windows NT 4.0 的虚拟机上只能有一个 CPU
  • Citrix XenServer。 每个虚拟机最多 8 个 CPU,具体取决于来宾操作系统
Type:Byte
Aliases:ProcessorCount
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CPURelativeWeight

指定主机上此虚拟机可以使用的 CPU 资源量(相对于同一主机上的其他虚拟机)。 与权重值较低的虚拟机相比,具有较高权重值的虚拟机分配的 CPU 资源更多。 这些值的 VMware 术语是共享。

主机类型支持以下相对值:

  • Hyper-V。 1 到 10000。
  • VMware ESX。 高。
  • VMware ESX。 高于正常。
  • VMware ESX。 正常 (默认) 。 1000。
  • VMware ESX。 低于正常。
  • VMware ESX。 低。
  • VMware ESX。 自定义 1 到 1000000。
  • Citrix XenServer。 1 到 65536,正常为 256。
Type:Int32
Aliases:RelativeWeight
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CPUType

指定虚拟机的 CPU 类型。 若要检索可用于 VMM 环境中的虚拟机的所有 CPU 类型的列表,请键入 Get-SCCPUType

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

-DelayStartSeconds

指定在启动虚拟化服务后等待虚拟机自动启动的秒数。 可以使用此延迟来错开多个虚拟机的启动时间。 此方法有助于减少对物理计算机资源的需求。 典型的设置为 30 到 60 秒。

主机类型具有以下可配置的最大延迟:

  • Hyper-V。 1000000000 秒或277777小时。
  • VMware ESX。 65535 秒或 18 小时。
  • Citrix XenServer。 不适用。
Type:Int32
Aliases:DelayStart
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Description

指定转换后的虚拟机的说明。

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

-EnableMACAddressSpoofing

指示是否 (MAC) 地址欺骗启用媒体访问控制。

Type:Boolean
Aliases:MACAddressesSpoofingEnabled
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-EnableVMNetworkOptimization

指示是否启用虚拟机网络优化。 优化可提高具有网络适配器的虚拟机的网络性能,这些适配器支持虚拟机队列 (VMQ) 或 TCP 烟囱卸载。 VMQ 允许为每个虚拟网络适配器创建唯一的网络队列。 TCP 烟囱卸载使网络流量处理能够从网络堆栈中卸载。

Type:Boolean
Aliases:VMNetworkOptimizationEnabled
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-JobGroup

指定一系列命令的标识符,这些命令在包含相同作业组标识符的最终命令运行之前作为集运行。

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

-JobVariable

指定在其中跟踪和存储作业进度的变量。

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

-LibraryServer

指定 VMM 库服务器。 此 cmdlet 转换存储在此参数指定的服务器中的虚拟机。

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

-LogicalNetwork

指定转换后的虚拟机的逻辑网络。 逻辑网络是 IP 子网和 VLAN 的命名分组,用于组织和简化网络分配。

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

-MACAddress

为计算机上的物理或虚拟网络适配器指定 MAC 地址或一组 MAC 地址。 有效值为:一个或多个 MAC 地址。 输入多个 MAC 地址作为逗号分隔的字符串列表。

Type:String
Aliases:EthernetAddress, PhysicalAddress
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MACAddressType

指定要用于虚拟网络适配器的 MAC 地址的类型。 有效值为:Static 和 Dynamic。

Type:String
Aliases:EthernetAddressType, PhysicalAddressType
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MemoryMB

指定此 cmdlet 分配给转换后的虚拟机的主机上 (RAM) 的随机访问内存量(以兆字节 (MB) 为单位)。 默认值为 512 MB。 对于在运行 Windows Server 2008 R2 SP1 或更高版本的主机上启用动态内存的虚拟机,请指定启动内存值。

主机类型具有以下可分配给虚拟机的最大内存:

  • Hyper-V。 每个虚拟机最多 65536 MB RAM。
  • VMware ESX Server 3.0.x。 每个虚拟机最多 16384 MB RAM。
  • VMware ESX Server 3.5.x。 每个虚拟机最多 65532 MB RAM。
  • Citrix XenServer。 每个虚拟机最多 32265 MB RAM。
Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

指定转换后的虚拟机的名称。

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

-NetworkLocation

指定物理网络适配器或虚拟网络适配器的网络位置,或主机物理网络适配器的新默认网络位置。

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

-NetworkTag

指定与主机上配置为连接到特定内部或外部网络的虚拟网络适配器关联的单词或短语。

网络标记将具有相同网络标记的所有虚拟机标识为同一网络的成员。 VMM 在评估主机作为部署虚拟机的可能候选项时,会使用网络标记(如果存在)。 如果主机不包括网络上与要放置的虚拟机具有相同网络标记的虚拟机,则主机在放置过程中收到零星。

Type:String
Aliases:Tag
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-NoConnection

指示此 cmdlet 将虚拟网络适配器与转换后的虚拟机的虚拟网络断开连接。

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

-OverridePatchPath

不要指定此参数。 仅限内部使用。

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

-Owner

以一个有效的域用户帐户形式指定 VMM 对象的所有者。

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

-Path

指定虚拟机转换的目标路径。 指定 UNC 路径时,此参数接受通配符 (*) 。

Type:String
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

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

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

-SkipInstallVirtualizationGuestServices

指示此 cmdlet 跳过在虚拟机上安装虚拟化来宾服务。

默认情况下,VMM 会自动安装相应的虚拟化来宾服务。 对于 Hyper-V 主机上的虚拟机,虚拟化来宾服务被称为“集成组件”(VMGuest.iso)。 对于 XenServer 主机上的虚拟机,虚拟化来宾服务称为 Citrix Tools for Virtual Machines (xs-tools.iso) 。 VMware ESX 主机上的虚拟机不使用虚拟化来宾服务。

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

-SourceNetworkConnectionID

指定此 cmdlet 在虚拟机中转换为虚拟网络适配器的物理网络适配器的 MAC 地址或网络名称。

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

-StartAction

指定虚拟化服务启动时虚拟机的行为。 此参数的可接受值为:

  • AlwaysAutoTurnOnVM
  • NeverAutoTurnOnVM
  • TurnOnVMIfRunningWhenVSStopped
Type:VMStartAction
Accepted values:NeverAutoTurnOnVM, AlwaysAutoTurnOnVM, TurnOnVMIfRunningWhenVSStopped
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-StartVM

指示虚拟机在到达目标主机时启动。

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

-StopAction

指定虚拟化服务停止时虚拟机的行为。 此参数的可接受值为:

  • SaveVM
  • TurnOffVM
  • ShutdownGuestOS
Type:VMStopAction
Accepted values:SaveVM, TurnOffVM, ShutdownGuestOS
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Trigger

指示此 cmdlet 在作业组中运行命令,以便进行物理到虚拟 (P2V) 转换、虚拟到虚拟 (V2V) 转换或物理硬盘到虚拟硬盘的转换。

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

-UserRole

为转换后的虚拟机指定用户角色。

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

-VirtualNetwork

为转换后的虚拟机指定虚拟网络。

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

-VirtualNetworkAdapter

指定虚拟机的虚拟网络适配器对象。

主机类型支持以下数量的虚拟网络适配器:

  • Hyper-V。 每个虚拟机最多四个模拟适配器。 Windows Server 2003 x64 来宾操作系统上的模拟网络适配器没有可用的驱动程序。
  • Hyper-V。 每个虚拟机最多有 8 个合成适配器。
  • VMware ESX。 每个虚拟机最多四个模拟适配器。
  • Citrix XenServer。 每个虚拟机最多有 7 个模拟适配器。
Type:VirtualNetworkAdapter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VLanEnabled

指示是否启用虚拟 LAN (VLAN) 供 Hyper-V 或 Citrix XenServer 主机上的虚拟机使用。

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

-VLanID

指定虚拟机上的虚拟网络适配器或虚拟机主机上的物理网络适配器的数字标识符。 有效值为 1 到 4094 的整数。 当 VLan 模式为 Access 时,在外部绑定的物理网络适配器上为 Hyper-V、VMware ESX 或 Citrix XenServer 主机配置 VLan ID。 在绑定到主机上的物理网络适配器或绑定到主机上内部虚拟网络的虚拟机的虚拟网络适配器上配置 VLan ID。

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

-VM

指定此 cmdlet 转换的虚拟机对象。

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

-VMHost

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

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

-VMMServer

指定管理转换后的虚拟机的 VMM 服务器。

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

-VMNetwork

指定虚拟机网络对象。 若要获取虚拟机网络对象,请使用 Get-SCVMNetwork cmdlet。

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

-VMXComputerConfiguration

指定 VMX 计算机配置。

Type:VmxMachineConfiguration
Aliases:MachineConfig, VMXMachineConfig
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-VMXPath

指定 VMware 虚拟机的 .vmx 文件的完整 UNC 路径。

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

输出

VirtualMachine

此 cmdlet 返回 VirtualMachine 对象。

备注

  • 此 cmdlet 需要 VMM VMX 计算机配置对象。 若要获取 VMX 对象,请使用 Get-SCVMXComputerConfiguration cmdlet。