SWbemObject.ExecMethod_ 메서드
SWbemObject 개체의 ExecMethod_ 메서드는 메서드 공급자가 내보낸 메서드를 실행합니다.
이 메서드는 적절한 공급자에게 전달되는 메서드가 실행되는 동안 일시 중지됩니다. 그러면 정보와 상태가 반환됩니다. WMI가 아닌 공급자가 메서드를 구현합니다.
이 구문에 대한 설명은 스크립팅 API의 문서 규칙을 참조하세요.
구문
objOutParams = .ExecMethod_( _
ByVal strMethodName, _
[ ByVal objwbemInParams ], _
[ ByVal iFlags ], _
[ ByVal objwbemNamedValueSet ] _
)
매개 변수
-
strMethodName [in]
-
필수 요소. 개체의 메서드 이름입니다.
-
objwbemInParams [in, optional]
-
실행 중인 메서드에 대한 입력 매개 변수가 포함된 SWbemObject 개체입니다. 기본적으로 이 매개 변수는 정의되지 않습니다. 자세한 내용은 InParameters 개체 생성 및 OutParameters 개체 구문 분석을 참조하세요.
-
iFlags [in, optional]
-
예약되어 있으며 지정된 경우 0으로 설정해야 합니다.
-
objwbemNamedValueSet [in, optional]
-
일반적으로 정의되지 않습니다. 그렇지 않으면 요청을 서비스하는 공급자가 사용할 수 있는 컨텍스트 정보를 나타내는 요소가 있는 SWbemNamedValueSet 개체입니다. 그러한 정보를 지원하거나 요구하는 공급자는 인식된 값 이름, 값의 데이터 형식, 허용된 값 및 의미 체계를 문서화해야 합니다.
반환 값
이 메서드가 성공하면 SWbemObject 개체가 반환됩니다. 반환된 개체에는 실행 중인 메서드에 대한 out 매개 변수와 반환 값이 포함됩니다.
오류 코드
ExecMethod_ 메서드가 완료되면 Err 개체에 다음 목록의 오류 코드 중 하나가 포함될 수 있습니다.
-
wbemErrFailed - 2147749889(0x80041001)
-
알 수 없는 오류입니다.
-
wbemErrInvalidClass - 2147749904(0x80041010)
-
지정된 클래스가 잘못되었습니다.
-
wbemErrInvalidParameter - 2147749896(0x80041008)
-
지정된 매개 변수가 잘못되었습니다.
-
wbemErrOutOfMemory - 2147749894(0x80041006)
-
메모리가 부족하여 작업을 완료할 수 없습니다.
-
wbemErrInvalidMethod - 2147749934(0x8004102E)
-
요청한 방법을 사용할 수 없습니다.
-
wbemErrAccessDenied - 2147749891(0x80041003)
-
현재 사용자는 메서드를 실행할 권한이 없습니다.
설명
이 메서드는 SWbemServices.ExecMethod와 유사하지만 메서드를 실행할 개체에서 직접 작동합니다. 예를 들어 다음 코드 예제에서는 Win32_Service에서 StartService 공급자 메서드를 호출하고 직접 액세스를 사용합니다.
oService = GetObject("winmgmts:Win32_Service=Alerter")
iStatus = oService.StartService()
이 버전은 SWbemObject.ExecMethod_를 호출하여 StartService 메서드를 실행합니다.
oService = GetObject("winmgmts:Win32_Service=Alerter")
Set outParam = process.ExecMethod_("StartService")
메서드를 직접 실행할 수 없는 경우 공급자 메서드를 실행하기 위한 직접 액세스 대신 SWbemObject.ExecMethod_를 사용합니다. 예를 들어 메서드에 out 매개 변수가 있는 경우 출력 매개 변수를 지원하지 않는 스크립팅 언어와 함께 SWbemObject.ExecMethod_를 사용합니다. 그렇지 않으면 메서드를 호출하는 권장 방법은 직접 액세스를 사용하는 것입니다.
- SWbemObject.ExecMethod_ 메서드는 SWbemObject가 나타내는 개체에 실행할 메서드가 포함되어 있다고 가정합니다. 반면 SWbemServices.ExecMethod에는 개체 경로가 필요합니다. 메서드를 실행할 개체를 이미 가져온 경우 SWbemObject.ExecMethod_를 사용합니다.
예제
다음 예제에서는 ExecMethod 메서드를 보여줍니다. 스크립트는 메모장을 실행하는 프로세스를 나타내는 Win32_Process 개체를 만듭니다. 비동기적으로 수행된 동일한 작업을 보여주는 스크립트에 대한 자세한 내용은 SWbemObject.ExecMethodAsync_를 참조하세요. 직접 액세스를 사용하는 예제는 클래스 Win32_Process의 메서드 만들기를 참조하세요. SWbemServices 개체를 사용하는 동일한 작업의 예제는 SWbemServices.ExecMethod를 참조하세요.
' Connect to WMI and obtain a Win32_Process object.
' This is also an SWbemObject object.
Set oProcess = GetObject("winmgmts:Win32_Process")
' Create the SWbemMethod.InParameters
' object to hold the input parameter needed
' for the Win32_Process.Create method call.
' The oProcess.Methods_("Create") call
' obtains a class object that defines
' the correct input parameters
' for the Win32_Process.Create call.
' The InParameters object is an
' SWbemObject object so SWbemObject.SpawnInstance_
' can be called to create it.
Set oInParams = oProcess.Methods_("Create"). _
InParameters.SpawnInstance_
' Specify the name of the process to be run.
oInParams.CommandLine = "Notepad.exe"
Set oOutParams = oProcess.ExecMethod_("Create", oInParams)
If oOutParams.ReturnValue = 0 Then
wscript.echo "Create method executed successfully"
Else
' If the Create method failed to execute,
' an empty OutParameters object is returned.
If IsNull(oOutParams.ReturnValue) Then
wscript.echo "Create method failed to execute."
Else
wscript.echo "Create method executed but had error" _
& "0x" & hex(oOutParams.ReturnValue)
End If
End If
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 |
Windows Vista |
지원되는 최소 서버 |
Windows Server 2008 |
헤더 |
|
유형 라이브러리 |
|
DLL |
|
CLSID |
CLSID_SWbemObject |
IID |
IID_ISWbemObject |