Resize-VHD

Resizes a virtual hard disk.

Syntax

Resize-VHD
      [-Path] <String[]>
      [-SizeBytes] <UInt64>
      [-AsJob]
      [-Passthru]
      [-CimSession <CimSession[]>]
      [-ComputerName <String[]>]
      [-Credential <PSCredential[]>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Resize-VHD
      [-Path] <String[]>
      [-ToMinimumSize]
      [-AsJob]
      [-Passthru]
      [-CimSession <CimSession[]>]
      [-ComputerName <String[]>]
      [-Credential <PSCredential[]>]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Description

The Resize-VHD cmdlet changes the maximum physical size of a virtual hard disk. It can expand both VHD and VHDX files but can shrink only VHDX files. The shrink operation fails if it would shrink the virtual disk to less than its minimum size (available through the VHDX object's MinimumSize property).

If the virtual disk file connects to a virtual machine's IDE chain, you cannot resize the virtual disk while the virtual machine is online. If the virtual disk file connects to a virtual machine's SCSI chain, you can resize the virtual disk while the virtual machine is online.

Note

Resize-VHD does not remove empty blocks from a dynamically-expanding virtual hard disk file. Use Optimize-VHD instead.

Examples

Example 1

PS C:\> Resize-VHD -Path c:\BaseVHD.vhd -SizeBytes 1099511627776

Expands the VHD to 1 terabyte if the previous size was less than 1 terabyte. If it was larger, the cmdlet will report an error because it cannot shrink a VHD.

Example 2

PS C:\> Resize-VHD -Path c:\BaseVHDX.vhdx -SizeBytes 20GB

Changes the VHDX's size to 20 gigabytes (21,474,836,480 bytes). If it was larger, the cmdlet will only succeed if it had a MinimumSize less than or equal to 20 gigabytes.

Example 3

PS C:\> Resize-VHD -Path c:\BaseVHDX.vhdx -ToMinimumSize

Shrinks the VHDX to its minimum possible size as indicated in its MinimumSize property.

Parameters

-AsJob

Runs the cmdlet as a background job.

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

Runs the cmdlet in a remote session or on a remote computer. Enter a computer name or a session object, such as the output of a New-CimSession or Get-CimSession cmdlet. The default is the current session on the local computer.

Type:CimSession[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-ComputerName

Specifies one or more Hyper-V hosts on which a virtual hard disk is to be resized. 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:None
Accept pipeline input:False
Accept wildcard characters:False
-Confirm

Prompts you for confirmation before running the cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Accept pipeline input:False
Accept wildcard characters:False
-Credential

Specifies one or more user accounts that have permission to perform this action. The default is the current user.

Type:PSCredential[]
Position:Named
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-Passthru

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

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

Specifies the path to the virtual hard disk that is to be resized.

Type:String[]
Aliases:FullName
Position:0
Default value:None
Accept pipeline input:True (ByPropertyName, ByValue)
Accept wildcard characters:False
-SizeBytes

Specifies the size to which the virtual hard disk is to be resized.

Type:UInt64
Position:1
Default value:None
Accept pipeline input:False
Accept wildcard characters:False
-ToMinimumSize

Specifies that the virtual hard disk is to be resized to its minimum possible size.

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

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

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

Outputs

Microsoft.Vhd.PowerShell.VirtualHardDisk