我正在尝试获取数据存储的自定义属性值,但遇到了类型不兼容的问题。下面我做错了什么吗?如何解决?
PowerCLI C:\> $ds = Get-Datastore -Name YK
PowerCLI C:\> $ds
Name FreeSpaceGB CapacityGB
---- ----------- ----------
YK 14,528.467 14,901.750
PowerCLI C:\> Get-Annotation -Entity $ds -CustomAttribute ykcustattr_global
Get-Annotation : Cannot bind parameter 'Entity'. Cannot convert the "YK" value of type "VMware.VimAutomation.ViCore.Impl.V1.DatastoreManagement.VmfsDatastoreImpl" to type "VMware.VimAutomation.ViCore.Types.V1.Inventory.InventoryItem".
At line:1 char:24
+ Get-Annotation -Entity $ds -CustomAttribute ykcustattr_global
+ ~~~
+ CategoryInfo : InvalidArgument: (:) [Get-Annotation], ParameterBindingException
+ FullyQualifiedErrorId : CannotConvertArgumentNoMessage,VMware.VimAutomation.ViCore.Cmdlets.Commands.GetAnnotation
注 1:我能够获取虚拟机、群集和主机的自定义属性。问题仅出在数据存储区上。
笔记2:我猜问题是 Get-Datastore 返回数据存储对象,而 Get-Annotation 需要InventoryItem 对象对于 -Entity。目前尚不清楚是否可以进行强制转换/变换或类似操作。
VMware vCenter 版本:6.5
谢谢你!
答案1
我在 VMware 论坛上得到了答案,并决定将其发布在这里。简而言之,问题确实存在,但有一个解决方法: