Convert-VHD

Converts the format, version type, and block size of a virtual hard disk file.

Syntax

Convert-VHD
       [-Path] <String>
       [-DestinationPath] <String>
       [-AsJob]
       [-BlockSizeBytes <UInt32>]
       [-ComputerName <String[]>]
       [-DeleteSource]
       [-ParentPath <String>]
       [-Passthru]
       [-VHDType <VhdType>]
       [-Confirm]
       [-WhatIf]

Description

The Convert-VHD cmdlet converts a virtual hard disk file by copying the data from a source virtual hard disk file to a new virtual hard disk file of a specified format and version type. The format is determined by the file extension of the specified files, either .vhdx or .vhd. Conversion is an offline operation; the virtual hard disk must not be attached when the operation is started.

Examples

Example 1

PS C:\>Convert-VHD -Path c:\test\testvhd.vhd -DestinationPath c:\test\testvhdx.vhdx

This example converts a source VHD to a destination VHDX. Because the format is determined by the file extension and the default type is determined by the source virtual hard disk when no type is specified, the destination virtual hard disk will be a VHDX-format disk of the same type as the source virtual hard disk.

Example 2

PS C:\>Convert-VHD -Path c:\test\child1vhdx.vhdx -DestinationPath c:\test\child1vhd.vhd -VHDType Differencing -ParentPath c:\test\parentvhd.vhd

This example converts a source differencing disk of VHDX format to a destination differencing disk of VHD format that is connected to an existing parent disk.

Parameters

-AsJob

Runs the operation as a background job.

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

-BlockSizeBytes

Specifies the block size, in bytes, of the virtual hard disk after conversion.

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

-ComputerName

Specifies one or more Hyper-V hosts on which the virtual hard disk is to be converted. NetBIOS names, IP addresses, and fully-qualified domain names are allowable. The default is the local computer - use "localhost" or a dot (".") to specify the local computer explicitly.

Type:String[]
Position:Named
Default value:.
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Confirm

Prompts you for confirmation before running the cmdlet.

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

-DeleteSource

Specifies that the source virtual hard disk is to be deleted after the conversion.

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

-DestinationPath

Specifies the path to the converted virtual hard disk file.

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

-ParentPath

Specifies the parent path for the destination-differencing virtual hard disk file.

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

-Passthru

Specifies that an object is to be passed through to the pipeline representing the converted virtual hard disk.

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

-Path

Specifies the path to the virtual hard disk file to be converted. If a file name or relative path is specified, the path of the converted hard disk path is calculated relative to the current working directory

Type:String
Aliases:FullName
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-VHDType

Specifies the type of the converted virtual hard disk. Allowed values are Fixed, Dynamic, and Differencing. The default is determined by the type of source virtual hard disk.

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

-WhatIf

Shows what would happen if the cmdlet runs. The cmdlet is not run.

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