避免创建重复的 Hyper-V 交换机

避免创建重复的 Hyper-V 交换机

我正在尝试创建一个 PowerShell 脚本(如果有的话,是为了学习目的),以便使用新的 NanoServer 从头开始​​设置虚拟 Hyper-V 集群。它仍处于早期阶段,我也在学习 PowerShell。我正在运行 Windows 10 Pro。

在调试时,如果 Hyper-V 交换机已经存在,我想避免创建它们。

这是我目前拥有的:

$ethernet = Get-NetAdapter -Name ethernet
$wifi = Get-NetAdapter -Name wi-fi

New-VMSwitch -Name externalSwitch -NetAdapterName $ethernet.Name -AllowManagementOS $true -Notes 'Parent OS, VMs, LAN'
New-VMSwitch -Name WiFiExternalSwitch -NetAdapterName $wifi.Name -AllowManagementOS $true -Notes 'Parent OS, VMs, wifi'
New-VMSwitch -Name privateSwitch -SwitchType Private -Notes 'Internal VMs only'
New-VMSwitch -Name internalSwitch -SwitchType Internal -Notes 'Parent OS, and internal VMs'

外部交换机不会再次创建,因为这是不可能的,所以会出现错误,但如果我再次运行 New-VMSwitch 命令,我会得到相同的私有和内部交换机的重复。

我已经搜索并尝试了几种从互联网上改编的 foreach 和/或 if 构造,但迄今为止没有成功或没有得到预期的结果。

非常感谢您的帮助!

答案1

像这样的事情应该可以满足您的需要:

If ( ! ( Get-VMSwitch | Where {$_.Name -eq "MySwitchName"} ) ) {
    New-VMSwitch -Name MySwitchName #-otherswitcheshere
}

希望这能有所帮助。

相关内容