2009-10-06 7 views
3

은 기본적으로 내가 WMI에 새로운 오전과 내가 여기 없거나 방법이 문제를 디버깅하는 방법입니다 무엇을 알아낼 수 없습니다 WMI 개체의 메소드를 호출 ...InvalidOperationException이

ConnectionOptions connectOptions = new ConnectionOptions(); 
    connectOptions.Username = user; 
    connectOptions.Password = password; 
    machine = "remoteMachine.com"; 

    ManagementScope scope = new ManagementScope(
     @"\\" + machine + @"\root\cimv2", 
     connectOptions); 

    scope.Connect(); 

    ManagementPath path = new ManagementPath(@"\\" + machine + @"\root\cimv2\Win23_Process"); 

    ManagementClass proc = new ManagementClass(scope, path, new ObjectGetOptions()); 

    ManagementBaseObject args = proc.GetMethodParameters("Create"); 

내가 전화를 마지막 줄에, 그 proc에 대한 메서드,이 InvalidOperationException이 발생합니다 ... 너무 많이 말하지 않습니다 :(나는 GetInstances()와 같은 proc에서 다른 메서드를 호출 할 때 동일한 결과를 얻습니다.) 코드를 통해 디버깅 할 때 나타날 수있는 것처럼 보입니다. 원격 컴퓨터에 성공적으로 연결하십시오.

System.InvalidOperationException was unhandled 
    Message="Operation is not valid due to the current state of the object." 
    Source="System.Management" 
    StackTrace: 
     at System.Management.ManagementObject.GetMethodParameters(String methodName, ManagementBaseObject& inParameters, IWbemClassObjectFreeThreaded& inParametersClass, IWbemClassObjectFreeThreaded& outParametersClass) 
     at System.Management.ManagementObject.GetMethodParameters(String methodName) 

답변

2

샘플 코드에 오타가 있습니다. 실제 코드에 있는지 여부는 확실하지 않습니다. 당신은 Win32_Process 여야 Win23_Process 있어요. 또한 Win32_Process에 대한 만들기에는 명령 줄, 디렉토리 등과 같은 인수가 필요합니다.

+0

대단원 : +1 쌍 프로그래밍의 경우 – noctonura

+0

그 대답은 1/2입니다. 다른 문제는 ManagementPath에 대한 기본 경로가 이미 지정되어 있으므로 ManagementPath에 대한 상대 경로를 사용하십시오. – noctonura

+0

나는 약간의 용의자도 본 것으로 생각했지만 유효했는지 여부는 확실하지 않았습니다. WMI이지만 PowerShell을 사용해 볼 수도 있습니다. 손가락이 좀 쉬워집니다. –

관련 문제