Set-VMProcessor

Configures settings for the virtual processors of a virtual machine. Settings are applied uniformly to all virtual processors belonging to the virtual machine.

Syntax

Set-VMProcessor
   [-CimSession <CimSession[]>]
   [-ComputerName <String[]>]
   [-Credential <PSCredential[]>]
   [-VMName] <String[]>
   [-Count <Int64>]
   [-CompatibilityForMigrationEnabled <Boolean>]
   [-CompatibilityForOlderOperatingSystemsEnabled <Boolean>]
   [-HwThreadCountPerCore <Int64>]
   [-Maximum <Int64>]
   [-Reserve <Int64>]
   [-RelativeWeight <Int32>]
   [-MaximumCountPerNumaNode <Int32>]
   [-MaximumCountPerNumaSocket <Int32>]
   [-ResourcePoolName <String>]
   [-Perfmon <String>]
   [-EnableHostResourceProtection <Boolean>]
   [-ExposeVirtualizationExtensions <Boolean>]
   [-Passthru]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-VMProcessor
   [-VM] <VirtualMachine[]>
   [-Count <Int64>]
   [-CompatibilityForMigrationEnabled <Boolean>]
   [-CompatibilityForOlderOperatingSystemsEnabled <Boolean>]
   [-HwThreadCountPerCore <Int64>]
   [-Maximum <Int64>]
   [-Reserve <Int64>]
   [-RelativeWeight <Int32>]
   [-MaximumCountPerNumaNode <Int32>]
   [-MaximumCountPerNumaSocket <Int32>]
   [-ResourcePoolName <String>]
   [-EnableHostResourceProtection <Boolean>]
   [-ExposeVirtualizationExtensions <Boolean>]
   [-Passthru]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
Set-VMProcessor
   [-VMProcessor] <VMProcessor[]>
   [-Count <Int64>]
   [-CompatibilityForMigrationEnabled <Boolean>]
   [-CompatibilityForOlderOperatingSystemsEnabled <Boolean>]
   [-HwThreadCountPerCore <Int64>]
   [-Maximum <Int64>]
   [-Reserve <Int64>]
   [-RelativeWeight <Int32>]
   [-MaximumCountPerNumaNode <Int32>]
   [-MaximumCountPerNumaSocket <Int32>]
   [-ResourcePoolName <String>]
   [-EnableHostResourceProtection <Boolean>]
   [-ExposeVirtualizationExtensions <Boolean>]
   [-Passthru]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Description

The Set-VMProcessor cmdlet configures the virtual processors of a virtual machine.

Examples

Example 1

PS C:\> Set-VMProcessor TestVM -Count 2 -Reserve 10 -Maximum 75 -RelativeWeight 200

Configures virtual machine TestVM with two virtual processors, a reserve of 10%, a limit of 75%, and a relative weight of 200.

Example 2

PS C:\> Set-VMProcessor TestVM -CompatibilityForMigrationEnabled $true

Configures virtual machine TestVM, enabling processor compatibility for live migration.

Example 3

PS C:\> Set-VMProcessor TestVM -CompatibilityForOlderOperatingSystemsEnabled $true

Configures virtual machine TestVM, enabling compatibility for running older operating systems.

Example 4

PS C:\> Set-VMProcessor TestVM -ExposeVirtualizationExtensions $true

Configures virtual machine TestVM, enabling embedded Hyper-V.Uu

Example 5

PS C:\> Set-VMProcessor TestVM -Perfmon pmu,pebs,lbr

Configure your VM to expose PMU, PEBS, LBR for Performance Monitoring.

Parameters

-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
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CompatibilityForMigrationEnabled

Specifies whether the virtual processor's features are to be limited for compatibility when migrating the virtual machine to another host.

Type:Boolean
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-CompatibilityForOlderOperatingSystemsEnabled

Specifies whether the virtual processor's features are to be limited for compatibility with older operating systems.

Type:Boolean
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ComputerName

Specifies one or more Hyper-V hosts on which processors are to be configured. 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
Required:False
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
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Count

Specifies the number of virtual processors for the virtual machine.

Type:Int64
Position:Named
Default value:None
Required: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
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-EnableHostResourceProtection

Specifies whether to enable host resource protection on the virtual machine. When enabled, the host will enforce limits on some aspects of the virtual machine's activity, preventing excessive consumption of host compute resources. VM activities controlled by this setting include the VMbus pipe messages associated with a subset of the VM's virtual devices, and intercepts generated by the VM. The virtual devices affected include the video, keyboard, mouse, and dynamic memory VDEVs.

Type:Boolean
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ExposeVirtualizationExtensions

Specifies whether the hypervisor should expose the presence of virtualization extensions to the virtual machine, which enables support for nested virtualization.

Type:Boolean
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-HwThreadCountPerCore

Specifies the number of virtual SMT threads exposed to the virtual machine. Setting this value to 0 indicates the virtual machine will inherit the host's number of threads per core. This setting may not exceed the host's number of threads per core.

Note: Windows Server 2016 does not support setting HwThreadCountPerCore to 0. For more details, see Configuring VM SMT settings using PowerShell.

Type:Int64
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Maximum

Specifies the maximum percentage of resources available to the virtual machine processor to be configured. Allowed values range from 0 to 100.

Type:Int64
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MaximumCountPerNumaNode

Specifies the maximum number of processors per NUMA node to be configured for the virtual machine.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MaximumCountPerNumaSocket

Specifies the maximum number of sockets per NUMA node to be configured for the virtual machine.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Passthru

Specifies that a Microsoft.HyperV.PowerShell.Processor is to be passed through to the pipeline representing the processor to be configured.

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

-Perfmon

Specifies the hardware to be Exposed for Performance Monitoring. For more information about requirements, visit Enable Intel Performance Monitoring Hardware in a Hyper-V virtual machine.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-RelativeWeight

Specifies the priority for allocating the physical computer's processing power to this virtual machine relative to others. Allowed values range from 1 to 10000.

Type:Int32
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Reserve

Specifies the percentage of processor resources to be reserved for this virtual machine. Allowed values range from 0 to 100.

Type:Int64
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ResourcePoolName

Specifies the name of the processor resource pool to be used.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VM

Specifies the virtual machine on which the processor is to be configured.

Type:VirtualMachine[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-VMName

Specifies the name of the virtual machine on which the processor is to be configured.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-VMProcessor

Specifies that the virtual machine's settings for virtual processors are to be configured.

Type:VMProcessor[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
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
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Outputs

None

Default

Microsoft.HyperV.PowerShell.VMProcessor

If -PassThru is specified.