Skip to content

Instantly share code, notes, and snippets.

@KireinaHoro
Created January 21, 2024 17:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save KireinaHoro/e2ed4ff7066abbbd5a868c860704e7d2 to your computer and use it in GitHub Desktop.
Save KireinaHoro/e2ed4ff7066abbbd5a868c860704e7d2 to your computer and use it in GitHub Desktop.
Switch between VLANs with Hyper-V vEthernet
<#
Make adapter use gravity (untagged) or upstream network (tagged 1).
This depends on the switch (ER-X) configuration:
- upstream port has PVID=1 (untagged vlan 1)
- gateway port has PVID=1 VID=200 (untagged vlan 1, tagged vlan 200)
- downstream ports have PVID=200 VID=1 (untagged vlan 200, tagged vlan 1)
#>
#Requires -RunAsAdministrator
param (
[Parameter(HelpMessage="Name of bridged switch")]
[string]$VmSwitch = "Bridged Switch",
[Parameter(Mandatory, HelpMessage="Skip gravity")]
[boolean]$SkipGravity = $false
)
$vmAdapter = Get-VMNetworkAdapter -ManagementOS -SwitchName $VmSwitch
if ($SkipGravity) {
Write-Host "Joining upstream VLAN..."
Set-VMNetworkAdapterVlan -Access -VlanId 1 $vmAdapter
} else {
Write-Host "Joining Gravity VLAN..."
Set-VMNetworkAdapterVlan -Untagged $vmAdapter
}
$adapter = Get-NetAdapter -Name "vEthernet ($vmSwitch)"
Write-Host "Resetting network adapter..."
Disable-NetAdapter -InputObject $adapter -Confirm:$false
Enable-NetAdapter -InputObject $adapter -Confirm:$false
Write-Host "Done!"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment