Windows - Tag_VLAN

Situation

# PC用IPScan掃描不同網段(L2)但不想要在L3上面切來切去
PC IP Scanning across different L2 subnets without L3 VLAN switching.

Solution

[1]
# 開啟Hyper-V功能
Windows + R > optionalfeatures > 勾選Hyper-V > 重新啟動

[2]
# 確認網卡名稱
Powershell > Get-NetAdapter

[3]
# 新增vSwitch > NetAdapterName要填入本機的網卡名稱
New-VMSwitch -Name "TrunkSwitch" -NetAdapterName "乙太網路" -AllowManagementOS $true

[4]
# 批次建立帶有不同VLAN TAG的虛擬網卡

$startVlan = 101
$endVlan = 124

for ($vlan = $startVlan; $vlan -le $endVlan; $vlan++) {
    $adapterName = "VLAN_$vlan"
    $ipAddress = "192.168.$vlan.250"
    $prefixLength = 24

    # 1. 新增虛擬網卡
    Add-VMNetworkAdapter -ManagementOS -Name $adapterName -SwitchName "TrunkSwitch"
    
    # 2. 綁定 VLAN Tag
    Set-VMNetworkAdapterVlan -ManagementOS -VMNetworkAdapterName $adapterName -Access -VlanId $vlan
    
    # 3. 指定該 VLAN 的 IP 位址與遮罩 (255.255.255.0)
    New-NetIPAddress -InterfaceAlias "vEthernet ($adapterName)" -IPAddress $ipAddress -PrefixLength $prefixLength -ErrorAction SilentlyContinue | Out-Null
    
    Write-Host "已成功建立 VLAN $vlan 虛擬網卡,IP: $ipAddress" -ForegroundColor Green
}

[5]
# 確認狀態
Get-VMNetworkAdapterVlan -ManagementOS

[6]
# 刪除虛擬網卡、vSwitch

$startVlan = 101
$endVlan = 124

for ($vlan = $startVlan; $vlan -le $endVlan; $vlan++) {
    $adapterName = "VLAN_$vlan"
    Remove-VMNetworkAdapter -ManagementOS -Name $adapterName -ErrorAction SilentlyContinue
    Write-Host "已刪除虛擬網卡: $adapterName" -ForegroundColor Yellow
}

# 2. 刪除 TrunkSwitch 虛擬交換器(這會順便還原您原本實體網卡的設定)
Remove-VMSwitch -Name "TrunkSwitch" -Force -ErrorAction SilentlyContinue
Write-Host "已成功刪除 TrunkSwitch,網路卡已恢復預設狀態!" -ForegroundColor Green