2011-09-20 3 views
0

장시간 스택 오버플로 판독기, 처음 포스터. 내가 정확하게 질문하지 않으면 용서해주십시오.PowerShell에서 Vix API 호출

PowerShell에서 VixCOM API를 사용하려고합니다. 나는 둘 중 누구와도 많은 경험이 없다. 나는 VMWareTasks: C# VixCOM wrapper library & tools을 알고 있습니다. 나는 그것을 성공에 사용했지만 VixCOM API를 직접 사용하기를 원합니다. 왜냐하면 나는 그 순간에 들어가기를 원하지 않기 때문입니다. 내가 VMWareTasks 래퍼를 사용하게 될지도 모르지만, 내가 당면한 문제를 이해하려고 노력하는 동안 유머 감각을 느낀다.

내 스크립트입니다 : 유형 불일치를 일으키는 매개 변수

Exception calling "Connect" with "9" argument(s): "Type mismatch. (Exception from HRESULT: 0x80020005 (DISP_E_TYPEMISMATCH))" 
At D:\dev\PowerShell\Automated Deploy\UsingVixCOM.ps1:11 char:23 
+ $job = $vixLib.Connect <<<< (-1, 10, "https://esx-server/sdk", 0, "admin", "password", 0, $null, $null) 
    + CategoryInfo   : NotSpecified: (:) [], MethodInvocationException 
    + FullyQualifiedErrorId : ComMethodTargetInvocation 
  • :

    $vixLib = New-Object -ComObject VixCOM.VixLib 
    $job = $vixLib.Connect(-1, 10, "https://esx-server/sdk", 0, "admin", "password", 0, $null, $null) 
    

    내가 PowerCLI에서이 스크립트를 실행하면, 나는 오류가?

  • Connect 메서드를 호출하는 적절한 방법은 무엇입니까?

답변

0

마지막 두 매개 변수 유형이 일치하지 않는 것처럼 보입니다.

$vixLib = New-Object -ComObject VixCOM.VixLib 

$vixLib | get-member 

반환 :
1. 가져 오기 상호 운용성 : 그런 다음에 시도 할 수

TypeName: System.__ComObject#{94eaa428-2460-470d-8f66-2a4270aff20a} 

Name     MemberType Definition 
----     ---------- ---------- 
Connect    Method  IJob Connect (int, int, string, int, string, string, int, IVixHandle, ICallback) 

이 같은 Get-Member cmdlet을 호출 객체의 메소드와 매개 변수 유형을 표시합니다. 인터페이스 유형을 얻으려면 VixCOM.dll
2. IVixHandle에서 상속하는 새 클래스를 만듭니다.
3. 새 클래스 t 모자
4. 연결 방법에 해당 개체를 전달하는 두 개의 새로운 클래스
5. 각각의 두 개의 새로운 인스턴스를 생성 ICallback에서 상속

당신은 여기에서 해결 탭에 얻 인터페이스 cmdlet을 사용해야 할 수 있습니다

:
https://connect.microsoft.com/feedback/ViewFeedback.aspx?FeedbackID=249840&SiteID=99

+0

와우, 나는 아무도 대답하지 못했습니다. 응답이없는 약 1 주일 후, 나는 C# VixCOM wrapper 라이브러리를 사퇴했다. 또한, 이후 다른 프로젝트로 이동 했으므로 본 시나리오에서이 대답이 유효한지 확인할 수 없습니다. 그러나 이것이 내가 알고있는 유일한 합리적인 해결책이기 때문에 이것을 답변으로 표시 할 것입니다. –