Convert-SCVirtualDiskDrive

将虚拟硬盘从动态转换为固定、从固定到动态、从 VHD 转换为 VHDX,或将直通磁盘转换为虚拟硬盘。

语法

Convert-SCVirtualDiskDrive
       [-Fixed]
       [-VirtualDiskDrive] <VirtualDiskDrive>
       [-Path <String>]
       [-FileName <String>]
       [-VHDFormatType <VHDFormatType>]
       [-JobGroup <Guid>]
       [-RunAsynchronously]
       [-PROTipID <Guid>]
       [-JobVariable <String>]
       [<CommonParameters>]
Convert-SCVirtualDiskDrive
       [-Dynamic]
       [-VirtualDiskDrive] <VirtualDiskDrive>
       [-Path <String>]
       [-FileName <String>]
       [-VHDFormatType <VHDFormatType>]
       [-JobGroup <Guid>]
       [-RunAsynchronously]
       [-PROTipID <Guid>]
       [-JobVariable <String>]
       [<CommonParameters>]
Convert-SCVirtualDiskDrive
       [-VHDX]
       [-DeleteSource]
       [-ValidateOnCompletion]
       [-VirtualDiskDrive] <VirtualDiskDrive>
       [-Path <String>]
       [-FileName <String>]
       [-JobGroup <Guid>]
       [-BlockSizeBytes <Int32>]
       [-RunAsynchronously]
       [-PROTipID <Guid>]
       [-JobVariable <String>]
       [<CommonParameters>]

说明

Convert-SCVirtualDiskDrive cmdlet 将附加到虚拟磁盘驱动器对象的现有虚拟硬盘从动态转换为固定或从固定到动态、从 VHD 转换为 VHDX,或将附加到虚拟磁盘驱动器对象的直通磁盘转换为虚拟硬盘。

若要将虚拟硬盘从一种格式转换为另一种格式,必须处于停止状态,才能配置虚拟硬盘的虚拟机。

只能在部署在 Hyper-V 主机上的虚拟机上转换基于 Windows 的 .vhd 文件的磁盘格式。

部署在 ESX 主机上的基于 VMware 的 .vmdk 文件的格式固定。 不能将其转换为动态格式。

Citrix XenServer 主机上部署的虚拟机上基于 Citrix XenServer 的 .vhd 文件采用格式固定。 不能将其转换为动态格式。

只能在部署在 Hyper-V 主机上的虚拟机上将基于 Windows 的虚拟硬盘文件的磁盘格式从 VHD 转换为 VHDX。 若要将 VHD 转换为 VHDX,配置虚拟硬盘的虚拟机必须处于停止状态。

直通磁盘是虚拟机可以使用的主机上的物理硬盘,而不是使用虚拟硬盘。 此 cmdlet 将附加到虚拟机上的虚拟磁盘驱动器的直通磁盘转换为虚拟硬盘。 虚拟机必须位于 Hyper-V 主机上,并且必须处于停止状态。

示例

示例 1:将虚拟机上的直通磁盘转换为虚拟硬盘

PS C:\> $VM = Get-SCVirtualMachine -Name "VM01"
PS C:\> $VirtDiskDrive = Get-SCVirtualDiskDrive -VM $VM
PS C:\> Convert-VirtualDiskDrive $VirtDiskDrive -Fixed -Path "C:\VirtualDiskDrives"

第一个命令使用 Get-SCVirtualMachine cmdlet 获取名为 VM01 的虚拟机对象。 该命令将该对象存储在$VM变量中。 此示例假定 VM01 当前配置为使用直通磁盘,并且虚拟机只有一个直通磁盘。

第二个命令获取 VM01 上的虚拟磁盘驱动器对象,然后将该对象存储在$VirtDiskDrive变量中。

最后一个命令将存储在$VirtDiskDrive中的直通磁盘驱动器转换为固定虚拟硬盘。 该命令将虚拟硬盘移动到目标文件夹 C:\VirtualDiskDrives。

示例 2:将虚拟机上虚拟磁盘驱动器上的多个直通磁盘之一转换为虚拟硬盘

PS C:\> $VM = Get-SCVirtualMachine -Name "VM02"
PS C:\> $VirtDiskDrive = Get-SCVirtualDiskDrive -VM $VM
PS C:\> $VirtDiskDrive[2] | Convert-SCVirtualDiskDrive -Dynamic -Path "D:\"

第一个命令获取名为 VM02 的虚拟机对象,然后将该对象存储在$VM变量中。 此示例假定 VM02 具有三个虚拟磁盘驱动器对象,第一个虚拟磁盘驱动器绑定到虚拟硬盘驱动器,而第二个和第三个虚拟磁盘驱动器都绑定到直通磁盘。

第二个命令获取 VM02 上的所有虚拟磁盘驱动器对象,然后将这些对象存储在$VirtDiskDrive对象数组中。

最后一个命令将第三个直通磁盘(即$VirtDiskDrive数组的第三个成员)转换为动态扩展的虚拟硬盘。 该命令将此新的虚拟硬盘保存到目标文件夹 D:。

示例 3:将附加到虚拟机上的虚拟磁盘驱动器对象的动态 VHD 转换为固定格式

PS C:\> $VirtDiskDrive = Get-SCVirtualDiskDrive -VM (Get-SCVirtualMachine -Name "VM03")
PS C:\> Convert-SCVirtualDiskDrive -VirtualDiskDrive $VirtDiskDrive -Fixed

第一个命令获取附加到虚拟机 VM03 的虚拟磁盘驱动器对象,然后将该虚拟磁盘驱动器对象存储在$VirtDiskDrive变量中。 此示例假定虚拟机只有一个虚拟磁盘驱动器对象,并且附加到虚拟磁盘驱动器的虚拟硬盘是动态虚拟硬盘。

第二个命令将存储在$VirtDiskDrive中的虚拟硬盘转换为固定磁盘。

示例 4:将虚拟机上的动态 VHD 转换为固定 VHDX

PS C:\> $VirtDiskDrive = Get-SCVirtualDiskDrive -VM (Get-SCVirtualMachine -Name "VM03")
PS C:\> Convert-SCVirtualDiskDrive -VirtualDiskDrive $VirtDiskDrive -VHDX

第一个命令获取附加到虚拟机 VM03 的虚拟磁盘驱动器对象,并将该对象存储在$VirtDiskDrive变量中。 此示例假定虚拟机只有一个虚拟磁盘驱动器对象,并且附加到虚拟磁盘驱动器的虚拟硬盘是动态虚拟硬盘。 此示例还假定虚拟机处于停止状态。

第二个命令将存储在 $VirtDiskDrive 中的虚拟硬盘转换为 VHDX 磁盘。

示例 5:将差异 VHD 转换为差异 VHDX

PS C:\> $VirtDiskDrive = Get-VirtualDiskDrive -VM (Get-SCVirtualMachine -Name "VM04")
PS C:\> Convert-VirtualDiskDrive -VirtualDiskDrive $VirtDiskDrive -VHDX -BlockSizeBytes 1MB -DeleteSource -ValidateOnCompletion

第一个命令获取附加到虚拟机 VM04 的虚拟磁盘驱动器对象,然后将该对象存储在$VirtDiskDrive变量中。 此示例假定虚拟机只有一个虚拟磁盘驱动器对象,并且附加到虚拟磁盘驱动器的虚拟硬盘是动态虚拟硬盘。 此示例还假定虚拟机处于停止状态。

第二个命令将存储在$VirtDiskDrive中的差异虚拟硬盘转换为差异 VHDX 磁盘。 此命令将删除源磁盘。

参数

-BlockSizeBytes

指定虚拟硬盘的块大小(以字节为单位)。

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

-DeleteSource

指示此 cmdlet 在成功转换后删除源虚拟硬盘。

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

-Dynamic

指定虚拟硬盘可以动态扩展。

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

-FileName

指定在将虚拟硬盘文件添加到虚拟机时重命名时要使用的文件名。

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

-Fixed

指示虚拟硬盘的大小固定。 指定虚拟硬盘的大小固定。

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

-JobGroup

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

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

-JobVariable

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

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

-Path

为虚拟磁盘驱动器对象或 SCSI 总线上的虚拟磁盘驱动器对象指定逻辑单元号(LUN)。

类型:String
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

-ValidateOnCompletion

指示此 cmdlet 在成功转换后验证转换后的虚拟硬盘。

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

-VHDFormatType

指定硬盘格式类型。 有效值为:

  • VHD
  • VMDK
  • VHDX
类型:VHDFormatType
接受的值:VHD, VMDK, VHDX, VHDS
Position:Named
默认值:None
必需:False
接受管道输入:False
接受通配符:False

-VHDX

指示虚拟硬盘类型为 VHDX。

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

-VirtualDiskDrive

指定虚拟磁盘驱动器对象。 可以将虚拟硬盘或直通磁盘附加到虚拟磁盘驱动器对象。

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

输出

VirtualDiskDrive

此 cmdlet 返回 VirtualDiskDrive 对象。