New-VMSwitch

New-VMSwitch

Creates a new virtual switch on one or more virtual machine hosts.

Syntax

Parameter Set: NetAdapterName
New-VMSwitch [-Name] <String> -NetAdapterName <String> [-AllowManagementOS <Boolean> ] [-ComputerName <String[]> ] [-EnableIov <Boolean> ] [-MinimumBandwidthMode <VMSwitchBandwidthMode> ] [-Notes <String> ] [-Confirm] [-WhatIf] [ <CommonParameters>]

Parameter Set: NetAdapterInterfaceDescription
New-VMSwitch [-Name] <String> -NetAdapterInterfaceDescription <String> [-AllowManagementOS <Boolean> ] [-ComputerName <String[]> ] [-EnableIov <Boolean> ] [-MinimumBandwidthMode <VMSwitchBandwidthMode> ] [-Notes <String> ] [-Confirm] [-WhatIf] [ <CommonParameters>]

Parameter Set: SwitchType
New-VMSwitch [-Name] <String> -SwitchType <VMSwitchType> [-ComputerName <String[]> ] [-EnableIov <Boolean> ] [-MinimumBandwidthMode <VMSwitchBandwidthMode> ] [-Notes <String> ] [-Confirm] [-WhatIf] [ <CommonParameters>]

Detailed Description

The New-VMSwitch cmdlet creates a new virtual switch on one or more virtual machine hosts.

Parameters

-AllowManagementOS<Boolean>

Specifies whether the parent partition (i.e. the management operating system) is to have access to the physical NIC bound to the virtual switch to be created.

Aliases

none

Required?

false

Position?

named

Default Value

True

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-ComputerName<String[]>

Specifies one or more Hyper-V hosts on which the virtual switch is to be created. 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

PSComputerName

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-EnableIov<Boolean>

Specifies that IO virtualization is to be enabled on the virtual switch to be created.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-MinimumBandwidthMode<VMSwitchBandwidthMode>

Specifies how minimum bandwidth is to be configured on the virtual switch. Allowed values are Absolute, Default, None, or Weight. If Absolute is specified, minimum bandwidth is bits per second. If Weight is specified, minimum bandwidth is a value ranging from 1 to 100. If None is specified, minimum bandwidth is disabled on the switch – that is, users cannot configure it on any network adapter connected to the switch. If Default is specified, the system will set the mode to Weight, if the switch is not IOV-enabled, or None if the switch is IOV-enabled.

Aliases

none

Required?

false

Position?

named

Default Value

weight

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-Name<String>

Specifies the name of the switch to be created.

Aliases

SwitchName

Required?

true

Position?

1

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-Notes<String>

Specifies a note to be associated with the switch to be created.

Aliases

none

Required?

false

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-SwitchType<VMSwitchType>

Specifies the type of the switch to be created. Allowed values are Internal and Private. To create an External virtual switch, specify either the NetAdapterInterfaceDescription or the NetAdapterName parameter, which implicitly set the type of the virtual switch to External.

Aliases

none

Required?

true

Position?

named

Default Value

none

Accept Pipeline Input?

false

Accept Wildcard Characters?

false

-NetAdapterInterfaceDescription<String>

Specifies the interface description of the network adapter to be bound to the switch to be created. You can use the Get-NetAdapter cmdlet to get the interface description of a network adapter.

Aliases

InterfaceDescription

Required?

true

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

Accept Wildcard Characters?

false

-NetAdapterName<String>

Specifies the name of the network adapter to be bound to the switch to be created. You can use the Get-NetAdapter cmdlet to get the interface description of a network adapter.

Aliases

InterfaceAlias

Required?

true

Position?

named

Default Value

none

Accept Pipeline Input?

True (ByPropertyName)

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.

Outputs

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

  • Microsoft.Virtualization.Powershell.EthernetSwitch

Examples

Example 1

Creates a new switch QoS switch, which binds to a network adapter called Wired Ethernet Connection 3 and supports weight-based minimum bandwidth.

PS C:\> New-VMSwitch “QoS Switch” –NetAdapterName “Wired Ethernet Connection 3” –MinimumBandwidthMode Weight