Import-VM

Import-VM

Imports a virtual machine from a file.

Syntax

Parameter Set: CompatibilityReport
Import-VM [-CompatibilityReport] <VMCompatibilityReport> [-AsJob] [-Confirm] [-WhatIf] [ <CommonParameters>]

Parameter Set: Copy
Import-VM [-Path] <String> [[-VhdDestinationPath] <String> ] -Copy [-AsJob] [-ComputerName <String[]> ] [-GenerateNewId] [-SmartPagingFilePath <String> ] [-SnapshotFilePath <String> ] [-VhdSourcePath <String> ] [-VirtualMachinePath <String> ] [-Confirm] [-WhatIf] [ <CommonParameters>]

Parameter Set: Register
Import-VM [-Path] <String> [-AsJob] [-ComputerName <String[]> ] [-Register] [-Confirm] [-WhatIf] [ <CommonParameters>]

Detailed Description

The Import-VM cmdlet imports a virtual machine from a file.

Parameters

-AsJob

Specifies that the cmdlet is to be run as a background job.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-CompatibilityReport<VMCompatibilityReport>

Specifies a compatibility report which resolves any incompatibilities between the virtual machine and the Hyper-V host.

Aliases

none

Required?

true

Position?

1

Default Value

none

Accept Pipeline Input?

True (ByValue)

Accept Wildcard Characters?

false

-ComputerName<String[]>

Specifies one or more Hyper-V hosts from which the virtual machine is to be imported. 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.

Aliases

none

Required?

false

Position?

named

Default Value

.

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-GenerateNewId

Specifies that the imported virtual machine should be copied and given a new unique identifier. (By default, Import-VM gives the new virtual machine the same unique identifier as the imported virtual machine.)

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-Path<String>

Specifies the path to the exported virtual machine to be imported.

Aliases

none

Required?

true

Position?

1

Default Value

none

Accept Pipeline Input?

True (ByValue)

Accept Wildcard Characters?

false

-Copy

Specifies that the imported virtual machine’s files should be copied to the server’s default locations, as opposed to registering the virtual machine in-place.

Aliases

none

Required?

true

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-Register

Specifies that the imported virtual machine is to be registered in-place, as oppsed to copying its files to the server’s default locations. Choose this option if the virtual machines files are already in the location from which they are to run.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-SmartPagingFilePath<String>

Specifies the new path to use for a smart paging file, if one is needed.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-SnapshotFilePath<String>

Specifies the path for any snapshot files associated with the virtual machine.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-VhdDestinationPath<String>

Specifies the folder to which the virtual machine’s VHD files are to be copied.

Aliases

none

Required?

false

Position?

2

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-VhdSourcePath<String>

Specifies the folder from which the virtual machine’s VHD files are to be copied.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-VirtualMachinePath<String>

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-Confirm

Prompts you for confirmation before running the cmdlet.

Required?

false

Position?

named

Default Value

false

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-WhatIf

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

Required?

false

Position?

named

Default Value

false

Accept Pipeline Input?

false

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.

  • None.

Outputs

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

  • Microsoft.Virtualization.Powershell.VirtualMachine

Examples

Example 1

Imports the virtual machine from its configuration file. The virtual machine is registered in-place, so its files are not copied.

PS C:\> Import-VM –Path ‘D:\Test\VirtualMachines\5AE40946-3A98-428E-8C83-081A3C6BD18C.XML’

Example 2

Imports the virtual machine by copying its files to the default virtual machine and virtual hard drive storage locations of the Hyper-V host. The imported virtual machine will be given a new unique identifier, not the one in the configuration file. This is useful when you want to import multiple copies of a virtual machine, since each virtual machine must have a unique identifier.

PS C:\> Import-VM -Path 'D:\Test2\Virtual Machines\8F148B6D-C674-413E-9FCC-4FBED185C52D.XML' –Copy -GenerateNewId

Example 3

Imports a virtual machine whose configuration is not compatible with the Hyper-V host.

Attempts import of a virtual machine; the attempt fails due to incompatibilities with the Hyper-V host.

PS C:\> Import-VM -Path 'D:\vm1\Virtual Machines\53EAE599-4D3B-4923-B173-6AEA29CB7F42.XML'

Gets a compatibility report that describes the attempted import and lists the virtual machine’s incompatibilities with the Hyper-V host.

PS C:\> $report = Compare-VM -Path 'D:\vm1\Virtual Machines\53EAE599-4D3B-4923-B173-6AEA29CB7F42.XML'

Displays the compatibility report, revealing that the virtual network adapter was connected to switch Production. The Hyper-V host has no switch by that name.

PS C:\> $report.Incompatibilities | Format-Table -AutoSize

Disconnects the virtual network adapter.

PS C:\> $report.Incompatibilities[0].Source | Disconnect-VMNetworkAdapter

Generates a new compatibility report to determine if the virtual machine is compatible with the Hyper-V host.

PS C:\> Compare-VM –CompatibilityReport $report

Displays the compatibility report.

PS C:\> $report

Imports the virtual machine.

PS C:\> import-vm -CompatibilityReport $report