PowerShell Logo Small

Compare-VM



This is the built-in help made by Microsoft for the command 'Compare-VM', in PowerShell version 5 - as retrieved from Windows version 'Microsoft Windows Server 2012 R2 Standard' PowerShell help files on 2016-06-23.

For PowerShell version 3 and up, where you have Update-Help, this command was run just before creating the web pages from the help files.

SYNOPSIS

Compares a virtual machine and a virtual machine host for compatibility, returning a compatibility report.

SYNTAX


Compare-VM [-Name] <String> [-DestinationHost] <String> [-AsJob] [-ComputerName <String[]>] [-DestinationStoragePath <String>] [-IncludeStorage] [-ResourcePoolName <String>]
[-RetainVhdCopiesOnSource] [-SmartPagingFilePath <String>] [-SnapshotFilePath <String>] [-Vhds <Hashtable[]>] [-VirtualMachinePath <String>] [-Confirm] [-WhatIf]
[<CommonParameters>]
Compare-VM [-CompatibilityReport] <VMCompatibilityReport> [-AsJob] [-Confirm] [-WhatIf] [<CommonParameters>]
Compare-VM [-Path] <String> [-AsJob] [-ComputerName <String[]>] [-Register] [-Confirm] [-WhatIf] [<CommonParameters>]
Compare-VM [-Path] <String> [[-VhdDestinationPath] <String>] [-AsJob] [-ComputerName <String[]>] [-GenerateNewId] [-SmartPagingFilePath <String>] [-SnapshotFilePath
<String>] [-VhdSourcePath <String>] [-VirtualMachinePath <String>] -Copy [-Confirm] [-WhatIf] [<CommonParameters>]
Compare-VM [-VM] <VirtualMachine> [-DestinationHost] <String> [-AsJob] [-DestinationStoragePath <String>] [-IncludeStorage] [-ResourcePoolName <String>]
[-RetainVhdCopiesOnSource] [-SmartPagingFilePath <String>] [-SnapshotFilePath <String>] [-Vhds <Hashtable[]>] [-VirtualMachinePath <String>] [-Confirm] [-WhatIf]
[<CommonParameters>]



Search powershellhelp.space

DESCRIPTION


The Compare-VM cmdlet compares a virtual machine and a virtual machine host for compatibility, returning a compatibility report. This is useful when trying to import or
migrate a virtual machine that is incompatible with the target Hyper-V server.



<

RELATED LINKS


Online Version: http://go.microsoft.com/fwlink/?LinkID=306821

REMARKS

<

Examples


Example 1

PS C:\>Compare-VM –Name TestVM –DestinationHost TestDestinationHost



Compares virtual machine TestVM and Hyper-V host TestDestinationHost for compatibility.




Example 2

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'
Import-VM : Unable to import virtual machine due to configuration errors. Please use Compare-VM to repair the virtual machine.
At line:1 char:1
+ import-vm -Path 'D:\vm1\Virtual Machines\53EAE599-4D3B-4923-B173-6AEA29CB7F42.XM ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Import-VM], VirtualizationOperationFailedException
+ FullyQualifiedErrorId : Microsoft.HyperV.PowerShell.Commands.ImportVMCommand

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
Message MessageId Source
------- --------- ------
Could not find Ethernet switch 'Production'. 33012 Microsoft.HyperV.PowerShell.VMNetworkAdapter

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
VM : Microsoft.HyperV.PowerShell.VirtualMachine
OperationType : ImportVirtualMachine
Destination : HYPER-V-1
Path : D:\vm1\Virtual Machines\53EAE599-4D3B-4923-B173-6AEA29CB7F42.XML
SnapshotPath : D:\vm1\Snapshots
VhdDestinationPath :
VhdSourcePath :
Incompatibilities :

Imports the virtual machine.
PS C:\>import-vm -CompatibilityReport $report
Name State CPUUsage(%) MemoryAssigned(M) MemoryDemand(M) MemoryStatus Uptime Status ReplicationState
---- ----- ----------- ----------------- --------------- ------------ ------ ------ ----------------
VM1 Off 0 0 0 00:00:00 Operating normally Disabled



Imports a virtual machine whose configuration is not compatible with the Hyper-V host. Note the use of Compare-VM to troubleshoot the import failure in the first step.