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 主机上的基于 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

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

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

-DeleteSource

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

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

-Dynamic

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

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

-FileName

指定对虚拟硬盘文件进行重命名并将其添加到虚拟机时所要使用的文件名。

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

-Fixed

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

Type:SwitchParameter
Position:Named
Default value:None
Required:True
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

-Path

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

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

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

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

-ValidateOnCompletion

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

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

-VHDFormatType

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

  • VHD
  • VMDK
  • VHDX
Type:VHDFormatType
Accepted values:VHD, VMDK, VHDX, VHDS
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VHDX

指示虚拟硬盘类型为 VHDX。

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

-VirtualDiskDrive

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

Type:VirtualDiskDrive
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

输出

VirtualDiskDrive

此 cmdlet 返回 VirtualDiskDrive 对象。