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
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!
Tags hyper-v powershell