Copy-SCVirtualHardDisk

Copy-SCVirtualHardDisk

Copies a VMware virtual hard disk file to a Windows-based virtual hard disk file and converts the virtual hard disk for use in a VMM environment.

Syntax

Parameter Set: Default
Copy-SCVirtualHardDisk -Path <String> -VMDKPath <String> -VMHost <Host> [-JobVariable <String> ] [-LibraryServer <LibraryServer> ] [-Owner <String> ] [-PROTipID <Guid]> ] [-RunAsynchronously] [-SourceVMHost <Host> ] [-VMMServer <ServerConnection> ] [ <CommonParameters>]

Detailed Description

The Copy-SCVirtualHardDisk cmdlet copies a VMware virtual hard disk file (a .vmdk file) to a Windows-based virtual hard disk file (a .vhd file) and converts the virtual hard disk for use in a Virtual Machine Manager (VMM) environment. The disk contents are preserved by this copy operation.

VMware virtual hard disks, stored in .vmdk files, contain the virtual machine's guest operating system, applications, and data. VMware virtual hard disk formats supported by Copy-SCVirtualHardDisk include:

-- monolithicSparse
-- monolithicFlat
-- vmfs
-- twoGbMaxExtentSparse
-- twoGbMaxExtentFlat

The Copy-SCVirtualHardDisk cmdlet takes as its input the .vmdk file that the .vmx file points to:

-- The .vmx file points to a .vmdk file that contains metadata, which in turn points to the binary .vmdk file.
-- The .vmdk file that you specify with the Copy-VMDK cmdlet is the .vmdk file that contains the metadata, not the binary .vmdk file.

Parameters

-JobVariable<String>

Specifies that job progress is tracked and stored in the variable named by this parameter.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-LibraryServer<LibraryServer>

Specifies a VMM library server object.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-Owner<String>

Specifies the owner of a VMM object in the form of a valid domain user account.

Example format: -Owner "Contoso\ReneeLo"

Example format: -Owner "ReneeLo@Contoso"

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-Path<String>

Specifies the destination path for the operation.

Example formats:

Local: -Path "F:\"

UNC: -Path "\\Library\Templates"

Volume GUID: -Path "\\?\Volume{4703c1ea-8ae7-11db-b473-00123f7603e3}\"

VMware ESX: -Path "[storage1]\MyVMwareFolderForVMs\MyVM.vmx"

Citrix XenServer: -Path "Local storage[99b6212f-b63d-c676-25f9-d6c460992de7]"

Wildcards are supported for Get- cmdlets and when you specify the UNC path.

Example format:

UNC: -Path "\\VMHostServer\MyVMs\*VM*"

Aliases

none

Required?

true

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-PROTipID<Guid]>

Specifies the ID of the PRO tip that triggered this action. This allows for auditing of PRO tips.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-RunAsynchronously

Indicates that the job runs asynchronously so that control returns to the command shell immediately.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-SourceVMHost<Host>

Specifies the source virtual machine host object.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-VMDKPath<String>

Specifies the path to a VMware virtual hard disk file (a .vmdk file) to be converted to a Windows-based virtual hard disk file (a .vhd file). The VMDK stands for the Virtual Machine Disk (VMDK) file format.

Example format: -VMDKPath "\\FileServer01\MSSCVMMLibrary\VMDKS\VM01.vmdk"

Example format: -VMDKPath "[storage1] /VM01/VM01.vmdk"

Aliases

none

Required?

true

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-VMHost<Host>

Specifies a virtual machine host object. VMM supports Hyper-V hosts, VMware ESX hosts, and Citrix XenServer hosts.

For more information about each type of host, type Get-Help Add-SCVMHost -detailed. See the examples for a specific cmdlet to determine how that cmdlet uses this parameter.

Aliases

none

Required?

true

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByValue)

Accept Wildcard Characters?

false

-VMMServer<ServerConnection>

Specifies a VMM server object.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByValue)

Accept Wildcard Characters?

false

<CommonParameters>

This cmdlet supports the common parameters: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer, and -OutVariable. For more information, see    about_CommonParameters (https://go.microsoft.com/fwlink/p/?LinkID=113216).

Inputs

The input type is the type of the objects that you can pipe to the cmdlet.

Outputs

The output type is the type of the objects that the cmdlet emits.

  • StandaloneVirtualHardDisk[]

Examples

Example Example 1: Convert a VMware .vmdk file in the VMM library to a Windows-based .vhd file on a host.

The first command gets the library server object named LibServer01, and then stores the object in the $LibServ variable.

The second command gets the host object named VMHost01, and then stores the object in the $VMHost variable. VMHost01 is a Hyper-V host.

The last command copies and converts the .vmdk file located at the path \\LibServer01\MSSCVMMLibrary\VMware\VM01.vmdk on the library server and stores the resulting .vhd file at the path C:\StoredWindowsVMs on VMHost01. Note that the Path parameter, when used with Copy-SCVirtualHardDisk, cannot take a UNC path.

Copy-SCVirtualHardDisk takes as its input the .vmdk file that the .vmx file points to:

-- The .vmx file points to a .vmdk file that contains metadata, which in turn points to the binary .vmdk file.
-- The .vmdk file that you specify with Copy-SCVirtualHardDisk is the .vmdk file that contains the metadata, not the binary .vmdk file.

PS C:\> $LibServ = Get-SCLibraryServer -ComputerName "LibServer01.Contoso.com"
PS C:\> $VMHost = Get-SCVMHost –ComputerName "VMMHost01.Contoso.com"
PS C:\> Copy-SCVirtualHardDisk -LibraryServer $LibServ -VMDKPath "\\LibServer01\MSSCVMMLibrary\VMware\VM01.vmdk" -VMHost $VMHost -Path "C:\StoredWindowsVMs"

Get-SCVMMServer

New-SCV2V

New-SCVMXComputerConfiguration

Get-SCLibraryServer

Get-SCVMHost