C# 按ManagedObjectReference查询VMWare?

C# 按ManagedObjectReference查询VMWare?,c#,vmware,C#,Vmware,我使用的是PowerCLI VMWare.Vim dll,但我在C#中使用它 下面是代码 VimClient c = new VMware.Vim.VimClientImpl(); ServiceContent sc = c.Connect(""); UserSession us = c.Login("", ""); NameValueCollection filter = new NameValueCollection(); filter.Add("MoRef", "VirtualMachi

我使用的是PowerCLI VMWare.Vim dll,但我在C#中使用它

下面是代码

VimClient c = new VMware.Vim.VimClientImpl();
ServiceContent sc = c.Connect("");
UserSession us = c.Login("", "");

NameValueCollection filter = new NameValueCollection();
filter.Add("MoRef", "VirtualMachine-vm-12294");

 IList<VMware.Vim.EntityViewBase> vms2 = c.FindEntityViews(typeof(VMware.Vim.VirtualMachine), null, filter, null);
VimClient=new VMware.Vim.VimClientImpl();
ServiceContent sc=c.Connect(“”);
UserSession us=c.Login(“,”);
NameValueCollection筛选器=新的NameValueCollection();
添加(“MoRef”、“VirtualMachine-vm-12294”);
IList vms2=c.findentialViews(typeof(VMware.Vim.VirtualMachine),null,filter,null);
c.FindEntityViews引发InvalidProperty异常


我找遍了所有地方,仍然不知道如何通过MoRef直接查询vmware内容。有什么帮助吗?

我知道这是一个漫长的过程,但这是问题的答案

VimClient c = new VMware.Vim.VimClientImpl();
ServiceContent sc = c.Connect("");
UserSession us = c.Login("", "");

NameValueCollection filter = new NameValueCollection();
filter.Add("Id", "vm-12294");

 IList<VMware.Vim.EntityViewBase> vms2 = 
c.FindEntityViews(typeof(VMware.Vim.VirtualMachine), null, filter, null);
VimClient=new VMware.Vim.VimClientImpl();
ServiceContent sc=c.Connect(“”);
UserSession us=c.Login(“,”);
NameValueCollection筛选器=新的NameValueCollection();
添加(“Id”、“vm-12294”);
IList vms2=
c、 FinDentityView(typeof(VMware.Vim.VirtualMachine)、null、filter、null);

请注意,我们按“Id”进行过滤,并从“VirtualMachine-vm-12294”的MoRef中删除“VirtualMachine-”。从技术上讲,ID是“vm-12294”,而“VirtualMachine-vm-12294”的MoRef字符串是一个类型指示符,而不是实际ID的一部分。

谁可能需要它

您可以使用此
VimClient.GetView
方法,请参阅以下定义:

VimClient.GetView(VMware.Vim.ManagedObjectReference moRef, string[] properties)
例如:

_vimClient.GetView(new ManagedObjectReference("VirtualMachine-vm-12294"),null);

这在2021年似乎不起作用。无法识别属性Id。