2017-08-31 92 views
0

我正在重新组织vCenter中的主机和群集以及VM和模板。我想使用脚本自动执行此操作。我可以使用Move-VM命令将虚拟机从资源池移出资源池并进入新资源池,但是我也需要将虚拟机移入虚拟机和模板视图中的新文件夹中。我可以创造我想要将其移动到使用此命令的文件夹:如何使用PowerCLI在虚拟机和模板视图中移动虚拟机?

$newVMFolder = (Get-View (Get-View -ViewType Datacenter -Filter @{"name"=$vmFolderLocation}).vmfolder).CreateFolder($newFolderName) 

后来,当我使用这个命令:

Move-VM -VM $vm -Destination $newVMFolder 

我得到这个错误,“不能转换“文件夹 - 组 - ...“类型的值”VMware.Vim.ManagedObjectReference“键入 ”VMware.VimAutomation.ViCore.Types.V1.Inventory.VIContainer“。”

任何帮助将不胜感激。

+0

我很好奇,为什么使用CreateFolder方法而不是使用'New-Folder'cmdlet? 'New-Folder'的输出应该给你'Move-VM'命令适当的对象类型。 –

回答

0

可能有创建的虚拟机和模板视图比上面的文件夹更简单的方法,但我只是说:

$newVMFolder = Get-Folder -Name $newFolderName -Type VM 

后,我创建文件夹。

现在$ newVMFolder是库存类型而不是管理对象,因此

Move-VM -VM $vm -Destination $newVMFolder 

现在其移动到该文件夹​​。

+0

除此之外,您还应该能够使用已添加到PowerCLI 6.5.2的'InventoryLocation'参数,以便您可以将VM移动到同一命令中的资源池和文件夹。 –