无法从 powercli 创建新的 VM

Cannot create new VM from powercli

我正在使用 PowerCLI 6.0 从另一个虚拟机创建一个新的虚拟机。我正在使用此 cmdlet:

New-VM -Name MyName -VM $sourceVM -Datastore $myDataStore -VMHost (Get-VMHost)

但它 returns 以下异常:

New-VM The operation for the entity "xxx" failed with the following message: "The operation is not supported on the object."

源虚拟机已关闭。 vSphere 的版本是 5.5.

我尝试 google 这个错误,但没有成功。

现在,我不知道问题出在哪里。

VMHOST 要求您传递一个参数。 https://www.vmware.com/support/developer/PowerCLI/PowerCLI55/html/Get-VMHost.html

首先您需要使用 'connect-viserver' 连接到 ESXI Server,然后执行新 VM 的创建。

Get-vmhost 本身将 return 所有主机,而不是指定要使用的主机,这是此命令所期望的。

如果您知道要在其上构建的主机,可以使用以下脚本:

New-VM -Name MyName -VM $sourceVM -Datastore $myDataStore -VMHost $(Get-VMHost "specify host name")

否则,您可以使用以下

构建一个数组并select从该数组构建一个虚拟机
# 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 等于单个 VM 名称。

正如您在下面看到的,当我 运行 命令没有在变量中清楚地识别它时,它给我几乎相同的错误(请注意我的错误看起来有点不同,因为我使用 PowerGUI 生成并构建我的脚本)。突出显示的文本是命令 I 运行,它看起来像您的命令。下方红框内的红色文字为错误。通过 运行dom selection 或名称定义您的主机应该使命令工作。

PowerGUI Image VM Creation

我也回复了您的 VMWare 社区论坛 post。