2017-10-18 14 views
0

VM의 MOR 목록을 가져올 수 있지만이를 실제 VM 이름으로 변환하는 방법이 있습니까? Traversalpec과 함께 PropertySpec을 사용하여 VM의 MOR을 가져 왔지만 실제 이름으로 변환하는 방법은 무엇입니까? 예를 들어 'VirtualMachine-15'가 있습니다. 이름을 알 수있는 방법을 찾을 수 없습니다.MOR에서 VM 이름을 가져 오는 API

나는 vmware.vim.dll을 사용하고 있습니다. 다음은

는 VM의의 MOR 얻을 수있는 코드의 일부입니다

ObjectContent[] objs = pCollector.RetrieveProperties(pFss); 

     for (int i = 0; i < objs.Length; i++) 
     { 


      DynamicProperty[] dps = objs[i].PropSet; 

      foreach (DynamicProperty d in dps) 
      { 

       if (d.Name == "childEntity") 
       { 
        ManagedObjectReference[] vmMORs = (ManagedObjectReference[])d.Val; 

        foreach(ManagedObjectReference vmMOR in vmMORs) 
         { 

         listview1.Items.Add(vmMOR); 

         } 
       } 
      } 
     } 

감사

그것은 가치가 무엇인지에 대한

답변

0

을, 난 그냥 재판의 하루 후에 일을 비슷한 문제가 있었다 & 오류 : 기본적으로

VimClientImpl client = new VimClientImpl(); 
client.Login(vSphereURI, loginID, loginPW); 
List<EntityViewBase> vmlist = client.FindEntityViews(typeof(VirtualMachine), null, filter1, null); 
List<EntityViewBase> hostlist = client.FindEntityViews(typeof(HostSystem), null, null, null); 

foreach (HostSystem host in hostlist) 
{ 
    host.UpdateViewData(); 
    Console.WriteLine(@"# Host: " + host.Name + @": "); 

    for (int i = 0; i < host.Vm.Length; i++) 
    { 
     VirtualMachine vm = (VirtualMachine)client.GetView(host.Vm[i], null); 
     Console.WriteLine(vm.Name); 
    } 
} 

foreach (VirtualMachine vm in vmlist) 
{ 
    vm.UpdateViewData(); 
    HostSystem host = (HostSystem)client.GetView(vm.Runtime.Host, null); 
    Console.WriteLine("name: " + vm.Name + " >>lives on>> " + host.Name); 
} 

내가 (널 (null), MOR) client.GetView에 MOR을 통과했고 나는 mysel 발견 f를 사용하여 관련 호스트 또는 VM에 대한 새로운 관리 대상을 제공합니다.