vmware vix api finditems () 메소드는 등록 된 vms에 대한 쿼리시 반환되지 않습니다.

StackOverflow https://stackoverflow.com/questions/383768

  •  23-08-2019
  •  | 
  •  

문제

Windows Vista X64에서 VMware Workstation 6.5를 사용하고 있습니다. vmware vix v1.6.1 com api를 사용하여 등록 된 가상 머신 목록을 얻는 c# 코드를 작성하려고합니다.

내가 사용하는 코드는 다음과 같습니다.

using System;
using VixCOM;

namespace ConsoleApplication48
{
    internal class Program
    {
        private static void Main()
        {
            var lib = new VixLibClass();
            object results = null;

            var job = lib.Connect(Constants.VIX_API_VERSION, Constants.VIX_SERVICEPROVIDER_VMWARE_WORKSTATION, null, 0,
null, null, 0, null, null);

            var err = job.Wait(new[] {Constants.VIX_PROPERTY_JOB_RESULT_HANDLE}, ref results);

        if (lib.ErrorIndicatesFailure(err))
            Console.WriteLine("Error: " + err);

        var host = (IHost)((object[])results)[0];

        job = host.FindItems(Constants.VIX_FIND_REGISTERED_VMS, null, -1, new DiscoveryCallback(lib));
        job.WaitWithoutResults();

        host.Disconnect();
    }
}

internal class DiscoveryCallback : ICallback
{
    protected VixLibClass lib;

    public DiscoveryCallback(VixLibClass lib)
    {
        this.lib = lib;
    }

    #region ICallback Members

    public void OnVixEvent(IJob job, int eventType, IVixHandle moreEventInfo)
    {
        // this method is never called
    }

    #endregion
    }
}

COM DLL이 32 비트라는 것을 알고 있으므로 테스트 응용 프로그램이 32 비트로 컴파일되어 있는지 확인했습니다. 또한 모든 VMware 서비스가 실행되고 있는지 확인했습니다.

예외가 발생하지 않고, 오류가 반환되지 않았으며 (내가 볼 수있는 한) 이벤트 로그에 작성된 이벤트가 없습니다.

이상하게도 위의 코드는 constant vix_find_running_vms를 사용하여 실행중인 VM 목록을 얻으려고 할 때 작동합니다.

이것을 일으킬 수있는 것에 대한 아이디어가 있습니까?

감사,

아르니

도움이 되었습니까?

해결책

상황에 대한 빠른 업데이트.

나는 자세히 살펴 보았다 공식 문서 finditems () 메소드 용. Constant VIX_FIND_REGISTERED_VMS는 지원되는 매개 변수로 나열되지 않습니다.

내 생각에 이것은 현재 VIX API가 VMware Workstation 인스턴스에 등록 된 VM 목록을 얻을 방법이 없다는 것을 의미합니다.

또한 vmrun.exe 명령 줄 유틸리티가 등록 VM을 얻는 방법을 제공하지 않는 이유를 설명합니다.

다음 버전의 VIX API가 출시 될 때까지 기다려야 할 것 같습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top