4

Я пытаюсь создать сценарий PowerShell (в учебных целях, если что-нибудь) для настройки виртуального кластера Hyper-V с нуля с помощью нового NanoServer. Он все еще находится на ранних стадиях, и я также изучаю 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 ответ1

2

Нечто подобное должно делать то, что вам нужно:

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

Надеюсь, что это поможет.

Бен

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .