Предположим, у вас меняется сетевая политика для виртуальных машин и вы создаете новые портгруппы. Или вы решили мигрировать на Distributed vSwitch. Соотв. есть много (поэтому вручную не вариант, или просто лень) ВМ, подключенных в одну портгруппу, и их надо переключить в другую.
Решение - PowerShell! :)
Как это сделал я для своего тестового кластера. Сначала создал Distributed vSwitch с одним аплинком (с каждого хоста) и на нем новую портгруппу для ВМ. Затем переключил пару включенных машин вручную, проверив, что они остались доступны. И оставшиеся N-цать выключенных переключил уже скриптом:
Get-Cluster "Cluster" | Get-VM | Where-Object {$_.PowerState -eq "PoweredOff"} | Get-NetworkAdapter | where { $_.Name -eq "Network Adapter 1" } | Set-NetworkAdapter -NetworkName "dv VM Network" -Confirm:$falseСкопипастил отсюда
Что происходит когда адаптеров у ВМ больше одного? И почему ВМ должна быть выключена? Руками на включенной ВМ проходит на раз.
ОтветитьУдалитьПохоже что второй адаптер (n-ый) в Вашем случае остается там где он был. Поправьте скрипт (или я поправлю, но завтра).
Сразу скажу скрипт не мой :)
ОтветитьУдалитьПереключается только первый адаптер, остальные остаются в исходных портгруппах.
Если нужно менять у включенных VM (сам я не тестировал), то нужно просто поменять {$_.PowerState -eq "PoweredOff"} на {$_.PowerState -eq "PoweredOn"}.