Powercli для установки автозапуска на виртуальной машине на ESXI не работает

Я использую версии:

ESXI 6.5.0 Update 3 (Build 14990892)

Power CLI VMware PowerCLI 11.0.0 build 10380590.

У меня есть виртуальная машина, которую я импортирую (ISO) в ESXI и пытаюсь включить Автозапуск на виртуальной машине программно с помощью некоторых сценариев, но это < strong>не работает. Я использую команду powercli:

Set-VMHostStartPolicy (Get-VMHost | Get-VMHostStartPolicy) -Enabled:$true

Я также пробовал некоторые варианты этой команды, но ни один из них не работает. Я вижу, что событие регистрируется как Reconfigure Autostart в меню Recent Tasks в веб-интерфейсе ESXI, как только я ввожу команду, так что это определенно что-то настраивается, но когда я дважды проверяю состояние виртуальной машины, чтобы увидеть, Автозапуск включен, в нем по-прежнему указано «Включить» в качестве параметра, подразумевая, что автозапуск НЕ включен. Вот скриншот: введите здесь описание изображения

Кто-нибудь может мне помочь? Я просто хочу, чтобы эта виртуальная машина запускалась автоматически в случае отключения электроэнергии или сбоя сервера; Но только в этих случаях я хочу, чтобы он был импортирован в выключенном состоянии в первый раз (как вы можете видеть на снимке экрана, виртуальная машина EPS импортируется, но в выключенном состоянии, чего я и хочу)


person ennth    schedule 05.12.2020    source источник


Ответы (1)


Я думаю, что вы устанавливаете политику хоста по умолчанию... Вы могли бы подумать, что это сработает. Я использую этот код в ESXi 7.0 Update 1, чтобы установить гостевую политику:

$vmstartpolicy = Get-VM "$vm_name" | Get-VMStartPolicy
Set-VMStartPolicy -StartPolicy $vmstartpolicy -StartAction PowerOn

У него та же проблема, что не отображается в веб-интерфейсе (на что кто-то будет жаловаться, и мне придется исправить), но он автоматически запускает виртуальную машину после перезагрузки, так что, по крайней мере, это начало ( каламбур не предназначен).

Изменить: немного поигравшись, мне удалось найти решение, которое обновляет пользовательский интерфейс.

plink -batch -ssh $user@$IP -l "$user" -pw "$password" vim-cmd hostsvc/autostartmanager/update_autostartentry "`$(vim-cmd vmsvc/getallvms | grep `"$vm_name`" | awk '{print `$1}')" "PowerOn" 0 1 "systemDefault" "systemDefault" "systemDefault"

Используя plink для подключения к хосту по ssh и запуска этого vim-cmd, он правильно обновляет пользовательский интерфейс. Обратите внимание на обратные галочки (`), чтобы избежать знаков доллара (кроме того, что имеет переменную $vm_name) и кавычек в команде sub, чтобы powershell не пытался интерпретировать их перед отправкой через туннель ssh. Все, что делает подкоманда, это получает все виртуальные машины, использует grep для фильтрации до строки вывода с указанным вами vm_name и использует awk для печати только 1-го столбца (идентификатор виртуальной машины, необходимый для внешнего vim-cmd).

person Phillip Peschke    schedule 16.03.2021