Evite criar comutadores de Hyper-V duplicados

4

Estou tentando criar um script do PowerShell (para fins de aprendizado, se houver) para configurar um cluster virtual do Hyper-V a partir do zero usando o novo NanoServer. Ainda está em seus estágios iniciais, e eu estou aprendendo PowerShell como eu vou também. Estou executando o Windows 10 Pro.

Ao depurar, eu quero evitar a criação de switches do Hyper-V, se eles já existirem.

Isso é o que eu tenho atualmente:

$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'

Os switches externos não são criados novamente, porque isso não é possível, por isso erros, mas eu recebo duplicatas dos mesmos switches internos e privados, se eu executar os commandlets New-VMSwitch novamente.

Eu pesquisei e experimentei vários foreach e / ou se foram adaptações que eu adaptei da internet, mas até agora não obtive sucesso ou não obtive o resultado desejado.

Muito obrigado por qualquer ajuda!

    
por SuHwak 30.12.2015 / 09:45

1 resposta

2

Algo como isso deve fazer o que você precisa para:

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

Espero que isso ajude.

Ben

    
por 30.12.2015 / 10:23