Get-vmhost сам будет возвращать все хосты и не указывать один хост для использования, чего ожидает эта команда.
Если вы знаете, хост, который вы хотите построить на вы можете использовать приведенный ниже сценарий:
New-VM -Name MyName -VM $sourceVM -Datastore $myDataStore -VMHost $(Get-VMHost "specify host name")
В противном случае вы можете создать массив и выбрать vmhost из этого массива с помощью ниже
# This command builds an array of all you host names into the variable $vmh
$vmh = get-vmhost
# This command selects random host from this array assigning it to the $vmhost variable
$vmhost = Get-random -inputobject $vmh
# Now build your VM command with the randomly selected host
New-VM -Name MyName -VM $sourceVM -Datastore $myDataStore -VMHost $vmhost
Удостоверьтесь, что вы определяете хранилище данных аналогичным образом для переменной $ mydatastore.
Просто создание переменной, построенной с помощью get-datastore, не будет работать НУ должны сократить его до одного магазина для операции New-VM для работы
$mds = get-datastore
$mydatastore = Get-random -InputObject $mds
Также убедитесь, что $ sourceVM в настоящее время определены правильно, как хорошо. если в этой переменной находится более одного объекта, это не сработает. Убедитесь, что значение $ sourceVM равно одному имени виртуальной машины.
Как вы можете видеть ниже, когда я запускаю команду без четкого определения ее в переменной, она дает мне почти ту же ошибку (обратите внимание, что мои ошибки будут выглядеть несколько иначе, потому что я использую PowerGUI для генерации и сборки моих скриптов) , Выделенный текст - это команда, которую я запускал, которая похожа на вашу. Ошибка красного цвета в красном поле внизу. B y, определяющий ваш хост через случайный выбор или по имени, должен заставить команду работать.
PowerGUI Image VM Creation
Я также ответил на свой пост VMWare Community Forum, а также.
Хорошо, ваш ответ поможет почти людям. Но в моем случае проблема была немного иной. Я был напрямую связан с VMHost под учетной записью администратора, но у администратора не было прав клонировать существующие виртуальные машины. Мне пришлось подключиться к vCenter в качестве администратора и запустить ваш скрипт. – user2250152
Awesome. Рад, что ты смог понять это. Я также отметил на VMWare Forums информацию о том, подключались ли вы к venter или нет. Одна связанная мной статья говорит, что некоторые функции в PowerCLI будут работать только в том случае, если скрипт запускается против самого сервера vcenter, а не через хост. https://communities.vmware.com/thread/478345 – Pyrochaser