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