New-SCVirtualNetworkAdapter

Creates a virtual network adapter on a virtual machine, virtual machine template, or hardware profile used in VMM.

Syntax

New-SCVirtualNetworkAdapter
   [-IPv4AddressType <EthernetAddressType>]
   [-IPv6AddressType <EthernetAddressType>]
   [-EnableMACAddressSpoofing <Boolean>]
   [-EnableGuestIPNetworkVirtualizationUpdates <Boolean>]
   [-EnableVMNetworkOptimization <Boolean>]
   [-VMNetwork <VMNetwork>]
   [-PortClassification <PortClassification>]
   [-VMSubnet <VMSubnet>]
   [-VLanEnabled <Boolean>]
   [-VLanID <UInt16>]
   [-AdapterFlags <VirtualNetworkAdapterFlags>]
   -VM <VM>
   [[-VirtualNetwork] <String>]
   [-MACAddress <String>]
   [-MACAddressType <String>]
   [-NoConnection]
   [-Synthetic]
   [-LogicalNetwork <LogicalNetwork>]
   [-NoVMNetwork]
   [-VMwarePortGroup <String>]
   [-NetworkLocation <String>]
   [-NetworkTag <String>]
   [-PortACL <PortACL>]
   [-RunAsynchronously]
   [-PROTipID <Guid>]
   [-JobVariable <String>]
   [-OnBehalfOfUser <String>]
   [-OnBehalfOfUserRole <UserRole>]
   [<CommonParameters>]
New-SCVirtualNetworkAdapter
   [-VMMServer <ServerConnection>]
   [-IPv4AddressType <EthernetAddressType>]
   [-IPv6AddressType <EthernetAddressType>]
   [-EnableMACAddressSpoofing <Boolean>]
   [-EnableGuestIPNetworkVirtualizationUpdates <Boolean>]
   [-EnableVMNetworkOptimization <Boolean>]
   [-VMNetwork <VMNetwork>]
   [-PortClassification <PortClassification>]
   [-VMSubnet <VMSubnet>]
   [-VLanEnabled <Boolean>]
   [-VLanID <UInt16>]
   [-DevicePropertiesAdapterNameMode <DevicePropertiesAdapterNameMode>]
   [-AdapterFlags <VirtualNetworkAdapterFlags>]
   [-VMHost <Host>]
   [-LogicalSwitch <LogicalSwitch>]
   -JobGroup <Guid>
   [[-VirtualNetwork] <String>]
   [-MACAddress <String>]
   [-MACAddressType <String>]
   [-NoConnection]
   [-Synthetic]
   [-LogicalNetwork <LogicalNetwork>]
   [-VMNetworkServiceSetting <String>]
   [-NoVMNetwork]
   [-VMwarePortGroup <String>]
   [-NetworkLocation <String>]
   [-NetworkTag <String>]
   [-DevicePropertiesAdapterName <String>]
   [-PortACL <PortACL>]
   [-RunAsynchronously]
   [-PROTipID <Guid>]
   [-JobVariable <String>]
   [-OnBehalfOfUser <String>]
   [-OnBehalfOfUserRole <UserRole>]
   [<CommonParameters>]
New-SCVirtualNetworkAdapter
   [-IPv4AddressType <EthernetAddressType>]
   [-IPv6AddressType <EthernetAddressType>]
   [-EnableMACAddressSpoofing <Boolean>]
   [-EnableGuestIPNetworkVirtualizationUpdates <Boolean>]
   [-EnableVMNetworkOptimization <Boolean>]
   [-VMNetwork <VMNetwork>]
   [-PortClassification <PortClassification>]
   [-VMSubnet <VMSubnet>]
   [-VLanEnabled <Boolean>]
   [-VLanID <UInt16>]
   [-DevicePropertiesAdapterNameMode <DevicePropertiesAdapterNameMode>]
   [-AdapterFlags <VirtualNetworkAdapterFlags>]
   -VMTemplate <Template>
   [[-VirtualNetwork] <String>]
   [-MACAddress <String>]
   [-MACAddressType <String>]
   [-NoConnection]
   [-Synthetic]
   [-LogicalNetwork <LogicalNetwork>]
   [-VMNetworkServiceSetting <String>]
   [-NoVMNetwork]
   [-VMwarePortGroup <String>]
   [-NetworkLocation <String>]
   [-NetworkTag <String>]
   [-DevicePropertiesAdapterName <String>]
   [-PortACL <PortACL>]
   [-RunAsynchronously]
   [-PROTipID <Guid>]
   [-JobVariable <String>]
   [-OnBehalfOfUser <String>]
   [-OnBehalfOfUserRole <UserRole>]
   [<CommonParameters>]
New-SCVirtualNetworkAdapter
   [-IPv4AddressType <EthernetAddressType>]
   [-IPv6AddressType <EthernetAddressType>]
   [-EnableMACAddressSpoofing <Boolean>]
   [-EnableGuestIPNetworkVirtualizationUpdates <Boolean>]
   [-EnableVMNetworkOptimization <Boolean>]
   [-VMNetwork <VMNetwork>]
   [-PortClassification <PortClassification>]
   [-VMSubnet <VMSubnet>]
   [-VLanEnabled <Boolean>]
   [-VLanID <UInt16>]
   [-DevicePropertiesAdapterNameMode <DevicePropertiesAdapterNameMode>]
   [-AdapterFlags <VirtualNetworkAdapterFlags>]
   -HardwareProfile <HardwareProfile>
   [[-VirtualNetwork] <String>]
   [-MACAddress <String>]
   [-MACAddressType <String>]
   [-NoConnection]
   [-Synthetic]
   [-LogicalNetwork <LogicalNetwork>]
   [-VMNetworkServiceSetting <String>]
   [-NoVMNetwork]
   [-VMwarePortGroup <String>]
   [-NetworkLocation <String>]
   [-NetworkTag <String>]
   [-DevicePropertiesAdapterName <String>]
   [-PortACL <PortACL>]
   [-RunAsynchronously]
   [-PROTipID <Guid>]
   [-JobVariable <String>]
   [-OnBehalfOfUser <String>]
   [-OnBehalfOfUserRole <UserRole>]
   [<CommonParameters>]
New-SCVirtualNetworkAdapter
   [-IPv4AddressType <EthernetAddressType>]
   [-IPv6AddressType <EthernetAddressType>]
   [-VMNetwork <VMNetwork>]
   [-PortClassification <PortClassification>]
   [-VMSubnet <VMSubnet>]
   [-VLanEnabled <Boolean>]
   [-VLanID <UInt16>]
   [-IPv4AddressPool <StaticIPAddressPool>]
   [-IPv6AddressPool <StaticIPAddressPool>]
   [-InheritsAddressFromPhysicalNetworkAdapter <Boolean>]
   -VMHost <Host>
   -LogicalSwitch <LogicalSwitch>
   [-JobGroup <Guid>]
   [-Name <String>]
   [-MACAddress <String>]
   [-MACAddressType <String>]
   [-IPv4Address <String>]
   [-IPv6Address <String>]
   [-PortACL <PortACL>]
   [-RunAsynchronously]
   [-PROTipID <Guid>]
   [-JobVariable <String>]
   [-OnBehalfOfUser <String>]
   [-OnBehalfOfUserRole <UserRole>]
   [<CommonParameters>]

Description

The New-SCVirtualNetworkAdapter cmdlet creates a virtual network adapter on a virtual machine, virtual machine template, or hardware profile used to create virtual machines managed by Virtual Machine Manager (VMM).

Network Location

You can use the New-SCVirtualNetworkAdapter cmdlet to specify a network location and connect the virtual network adapter to a virtual network configured on the host when you create the adapter, or you can configure those and other settings later by using the Set-SCVirtualNetworkAdapter cmdlet.

Static or Dynamic MAC Address

You can specify whether the virtual network adapter uses a static or dynamic MAC address, and you can specify a static MAC address.

Emulated or Synthetic Virtual Network Adapters

You can use the New-SCVirtualNetworkAdapter cmdlet to create an adapter whose type is either emulated (the default) or synthetic.

For virtual machines on any type of host (Hyper-V, VMware, or XenServer), you can configure a virtual network adapter on the virtual machine that emulates a specific physical network adapter.

For virtual machines on Hyper-V hosts, if the guest operating system installed on a virtual machine is a virtualization-aware operating system (for example, Windows Server 2008 or Windows Server 2016, and some versions of Linux), VMM lets you configure a high-performance synthetic virtual network adapter on the virtual machine to communicate with the physical hardware on the host. You must explicitly specify that a virtual network adapter is synthetic by using the Synthetic parameter.

Virtual Local Area Network

VMM includes support for configuring one or more virtual area networks (VLANs) on a host for use by virtual machines deployed on that host. You can use the New-SCVirtualNetworkAdapter cmdlet (or the Set-SCVirtualNetworkAdapter cmdlet) with the VLAN parameters to attach the virtual network adapter on a virtual machine to a VLAN. To configure corresponding VLAN settings on the host network adapter, use the Add-SCVMHostNetworkAdapter cmdlet or the Set-SCVMHostNetworkAdapter cmdlet.

For an illustration of how to configure VLANs, see the examples for this cmdlet, and see the examples for New-SCVMHostNetworkAdapterConfig and Set-SCVMHostNetworkAdapter.

Examples

Example 1: Create a virtual network adapter on a virtual machine

PS C:\> $VM = Get-SCVirtualMachine -Name "VM01"
PS C:\> New-SCVirtualNetworkAdapter -VM $VM

The first command gets the virtual machine object named VM01 and stores the object in the $VM variable.

The second command creates a virtual network adapter on VM01.

Example 2: Create a virtual network adapter on a virtual machine template

PS C:\> $VMTemplate = Get-SCVMTemplate | where { $_.Name -eq "VMTemplate01" }
PS C:\> New-SCVirtualNetworkAdapter -VMTemplate $VMTemplate

The first command gets the virtual machine template object named VMTemplate01 and stores the object in the $VMTemplate variable.

The second command creates a virtual network adapter on VMTemplate01.

Example 3: Create an emulated virtual network adapter and a synthetic virtual network adapter on a hardware profile

PS C:\> $HWProfile = Get-SCHardwareProfile | where { $_.Name -eq "NewHWProfile01" }
PS C:\> New-SCVirtualNetworkAdapter -HardwareProfile $HWProfile
PS C:\> New-SCVirtualNetworkAdapter -HardwareProfile $HWProfile -Synthetic

The first command gets the hardware profile object named NewHWProfile01 from the VMM library and stores the object in the $HWProfile variable.

The second command creates a virtual network adapter (a "native" or emulated adapter) on NewHWProfile01.

The last command creates a synthetic virtual network adapter on NewHWProfile01.

Example 4: Create a virtual network adapter on a virtual machine and assign it a unique MAC address

PS C:\> $VM = Get-SCVirtualMachine -Name "VM04"
PS C:\> $VNIC = New-SCVirtualNetworkAdapter -VM $VM
PS C:\> $MACPool = Get-SCMACAddressPool -Name "MAC Address Pool 01"
PS C:\> Grant-SCMACAddress -MACAddressPool $MACPool -VirtualNetworkAdapter $VNIC

The first command gets the virtual machine object named VM04 and stores the object in the $VM variable.

The second command creates a virtual network adapter on the virtual machine stored in $VM (VM04) and stores the object in the $VNIC variable.

The third command gets the MAC address pool object named MAC Address Pool 01 and stores the object in the $MACPool variable.

The last command gets the next available MAC address from the address pool stored in $MACPool, and assigns it to the virtual network adapter stored in $VNIC.

Example 5: Create a virtual network adapter with a static MAC address and a specific VLAN ID

PS C:\> $VM = Get-SCVirtualMachine -Name "VM05"
PS C:\> $LogicalNet = Get-SCLogicalNetwork -Name "LogicalNetwork01"
PS C:\> $VirtualNet = Get-SCVirtualNetwork -Name "ExternalVirtualNetwork01"
PS C:\> New-SCVirtualNetworkAdapter -VM $VM -LogicalNetwork $LogicalNet -VirtualNetwork $VirtualNet -MACAddress "00-16-D3-CC-00-1A" -MACAddressType "Static" -VLANEnabled $True -VLANId 3

The first command gets the virtual machine object named VM05 and stores the object in the $VM variable.

The second command gets the logical network object named LogicalNetwork01 and stores the object in the $LogicalNet variable.

The third command gets the virtual network object named ExternalVirtualNetwork01 and stores the object in the $VirtualNet variable.

The last command creates a new virtual network adapter for VM05, connects the adapter to the logical network stored in $LogicalNet and the virtual network stored in $VirtualNet. The command provides a static MAC address for the virtual network adapter, enables VLAN and specifies a VLAN ID of 3.

Note: This example assumes that that your host is already connected to a VLAN or, if not, that your host has two network adapters. If your host has a single network adapter, assigning the adapter to a VLAN that is unavailable to the VMM server will prevent VMM from managing the host.

Parameters

-AdapterFlags

{{Fill AdapterFlags Description}}

Type:VirtualNetworkAdapterFlags
Accepted values:None, ApplyInfrastructurePortProfileForNetworkController, ApplyNCPortProfileForNetworkController, ApplyInstaceIDPortProfileForNetworkController
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-DevicePropertiesAdapterName

Specifies the name of a network adapter.

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

-DevicePropertiesAdapterNameMode

Specifies the adapter name mode.

Type:DevicePropertiesAdapterNameMode
Accepted values:Disabled, VMNetwork, Custom
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-EnableGuestIPNetworkVirtualizationUpdates

Indicates whether IP network virtualization updates by a guest is enabled.

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

-EnableMACAddressSpoofing

Enables, when set to $True, MAC address spoofing.

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

-EnableVMNetworkOptimization

Enables, when set to $True, virtual machine network optimization.

This feature improves network performance for virtual machines with network adapters that support virtual machine queue (VMQ) or TCP Chimney Offload. VMQ enables creating a unique network queue for each virtual network adapter. TCP Chimney Offload enables network traffic processing to be offloaded from the networking stack.

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

-HardwareProfile

Specifies a hardware profile object.

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

-InheritsAddressFromPhysicalNetworkAdapter

Indicates whether the network adapter inherits its address from a physical network adapter.

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

-IPv4Address

Specifies an IPv4 address.

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

-IPv4AddressPool

Specifies a static address pool that contains IPv4 addresses.

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

-IPv4AddressType

Specifies an IPv4 address type. The acceptable values for this parameter are:

  • Dynamic
  • Static
Type:EthernetAddressType
Accepted values:Dynamic, Static
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-IPv6Address

Specifies an IPv6 address.

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

-IPv6AddressPool

Specifies a static address pool that contains IPv6 addresses.

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

-IPv6AddressType

Specifies an IPv6 address type. The acceptable values for this parameter are:

  • Dynamic
  • Static
Type:EthernetAddressType
Accepted values:Dynamic, Static
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-JobGroup

Specifies an identifier for a series of commands that will run as a set just before the final command that includes the same job group identifier runs.

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

-JobVariable

Specifies that job progress is tracked and stored in the variable named by this parameter.

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

-LogicalNetwork

Specifies a logical network. A logical network is a named grouping of IP subnets and VLANs that is used to organize and simplify network assignments.

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

-LogicalSwitch

Specifies a logical switch object.

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

-MACAddress

Specifies the MAC address, or a set of MAC addresses, for a physical or virtual network adapter on a computer.

  • Example format for a single MAC address: -MACAddress "00-15-5D-B4-DC-00"
  • Example format for a set of MAC addresses: -MACAddress "00-15-5D-B4-DC-00", "00-1A-A0-E3-75-29"
Type:String
Aliases:EthernetAddress, PhysicalAddress
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-MACAddressType

Specifies the type of MAC address to use for a virtual network adapter. Valid values are: Static, Dynamic.

Type:String
Aliases:EthernetAddressType, PhysicalAddressType
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Name

Specifies the name of a network object.

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

-NetworkLocation

Specifies the network location for a physical network adapter or for a virtual network adapter, or changes the default network location of a host's physical network adapter.

Example formats: -NetworkLocation $NetLoc ($NetLoc might contain Corp.Contoso.com) -OverrideNetworkLocation $True -NetworkLocation "HostNICNewLocation.Contoso.com"

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

-NetworkTag

Specifies a word or phrase to associate with a virtual network adapter that is configured to connect to a specific internal or external network on the host.

The NetworkTag parameter identifies all virtual machines with the same NetworkTag as members of the same network. VMM uses a NeworkTag (if one exists) when it evaluates hosts as possible candidates on which to deploy a virtual machine. If the host does not include virtual machines on the network with the same NetworkTag as the virtual machine to be placed, the host receives zero stars in the placement process.

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

-NoConnection

Disconnects a virtual network adapter from a virtual network.

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

-NoVMNetwork

Indicates that a virtual machine network is not specified.

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

-OnBehalfOfUser

Specifies a user name. This cmdlet operates on behalf of the user that this parameter specifies.

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

-OnBehalfOfUserRole

Specifies a user role. To obtain a user role, use the Get-SCUserRole cmdlet. This cmdlet operates on behalf of the user role that this parameter specifies.

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

-PortACL

Specifies a port ACL object.

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

-PortClassification

Specifies the port classification of the switch to which the virtual network adapter connects.

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

-PROTipID

Specifies the ID of the Performance and Resource Optimization tip (PRO tip) that triggered this action. This parameter lets you audit PRO tips.

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

-RunAsynchronously

Indicates that the job runs asynchronously so that control returns to the command shell immediately.

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

-Synthetic

Specifies that a device, such as a virtual network adapter, on a virtual machine deployed on a Hyper-V host is a high-performance synthetic device. Requires a virtualization-aware guest operating system on the virtual machine.

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

-VirtualNetwork

Specifies a virtual network object.

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

-VLanEnabled

Indicates whether to enable a virtual LAN (VLAN) for use by virtual machines on a Hyper-V or Citrix XenServer host.

  • Example format for a single VLAN: -VLANEnabled -VLANMode "Access" -VLANID 35
  • Example format for multiple VLANs: -VLANEnabled -VLANMode "Trunk" -VLANTrunkID 1,2,100,200,1124
Type:Boolean
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-VLanID

Assigns a numerical identifier in the range 1-4094 to a virtual network adapter on a virtual machine or to a physical network adapter on a virtual machine host.

Configure a VLanID on a Hyper-V, VMware ESX, or Citrix XenServer host on an externally bound physical network adapter when the VLan mode is Access.

Configure a VLanID on a virtual network adapter of a virtual machine bound to a physical network adapter on the host, or bound to an internal virtual network on the host.

Example format: -VLanEnabled -VLanMode "Access" -VLANID 35

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

-VM

Specifies a virtual machine object.

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

-VMHost

Specifies a virtual machine host object. VMM supports Hyper-V hosts, VMware ESX hosts, and Citrix XenServer hosts.

For more information about each type of host, see the Add-SCVMHost cmdlet.

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

-VMMServer

Specifies a VMM server object.

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

-VMNetwork

Specifies a virtual machine network object.

To get a virtual machine network object, use the Get-SCVMNetwork cmdlet.

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

-VMNetworkServiceSetting

Specifies a virtual machine network service setting.

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

-VMSubnet

Specifies a virtual machine subnet object.

To obtain a VMSubnet object, use the Get-SCVMSubnet cmdlet.

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

-VMTemplate

Specifies a VMM template object used to create virtual machines.

Type:Template
Aliases:Template
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-VMwarePortGroup

Specifies the VMware port group.

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

Outputs

VirtualNetworkAdapter

This cmdlet returns a VirtualNetworkAdapter object.

Notes

  • Requires a VMM virtual machine object, virtual machine template object, or hardware profile object, which can be retrieved by using the Get-SCVirtualMachine, Get-SCVMTemplate, and Get-SCHardwareProfile cmdlets, respectively.