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 对象。