У меня есть скрытое подозрение, что это может быть ошибка, но я определенно готов принять во внимание возможность того, что я делаю что-то неправильно.
У меня есть виртуальная машина VMware в $ vm, и я пытаюсь назначить ей загрузочный компакт-диск. $ vm выключен.
Документированный метод кажется довольно простым:
Set-CDDrive -CD (Get-CDDrive -vm $vm) -IsoPath "[datastorename] \whatever.iso" -StartConnected 1
Теперь, когда я запускаю виртуальную машину, она сразу же пытается выполнить PXEboot. Я выключаю машину и в клиенте vSphere редактирую свойства виртуальной машины, перехожу к «Привод CD / DVD 1» и проверяю, что «Состояние устройства» имеет галочку рядом с «Подключаться при включении».
Вот что самое безумное. Когда я снимаю этот флажок, проверяю его снова, затем запускаю виртуальную машину, она загружается с ISO.
Я делал это снова и снова, с открытой консолью, с закрытой, и каждый раз я могу установить флаг StartConnected в CLI, а графический интерфейс отражает настройку, но только после того, как я установил флажок вручную, это действительно загрузиться с ISO.
Есть ли шаг, который я не выполняю в PowerCLI, чтобы заставить этот параметр «принять»?
Первая обратная косая черта в ISOPath
вполне может быть проблема. Я делаю то же самое в наших сценариях подготовки, это выглядит так:
Get-CDDrive $VM | Set-CDDrive -IsoPath "[DATASTORE] ISO\BOOT.ISO" -StartConnected:$true -Confirm:$false
Кроме того, если вы предоставляете логические значения аргументам, которые принимают логическое значение (например, StartConnected
), попробуйте взять за привычку использовать точку с запятой, как в примере выше. Если у вас есть командлет функции, который принимает более одного безымянного аргумента, ваш 1
может быть неверно истолковано как новый аргумент в вызове функции, а не как значение заданного вами аргумента.
Итак, не используйте -StartConnected 1
, а лучше использовать -StartConnected:1
или -StartConnected:$true
.
Из справочника PowerCLI в Интернете я вижу следующий пример (замените значение после -ISOPath
с вашим хранилищем данных и именем / путем для файла .iso, например"[yourdatastore] IsoFolder\$iso"
):
$cd = New-CDDrive -VM $vm -ISOPath "[sof-20666-esx:storage1] ISO\testISO.iso"
Set-CDDrive -CD $cd -StartConnected -Connected