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