Session.Invoke 메서드
메서드를 호출하고 메서드 호출 결과를 반환합니다.
구문
Session.Invoke( _
ByVal actionUri, _
ByVal resourceUri, _
ByVal parameters, _
[ ByVal flags ] _
)
매개 변수
-
actionUri [in]
-
호출할 메서드의 URI입니다.
-
resourceUri [in]
-
검색할 리소스의 식별자입니다.
이 매개 변수는 다음 중 하나를 포함할 수 있습니다.
선택기가 있거나 없는 URI입니다. 다음 VBScript(Visual Basic Scripting Edition) 예제에서 키는 에 의해
Win32_Service?Name=winmgmt
지정됩니다.strResourceUri = "http://schemas.microsoft.com/wbem/wsman/1/" _ & "Win32_Service?Name=winmgmt"
선택기, 조각 또는 옵션을 포함할 수 있는 ResourceLocator 개체입니다.
WS-Management Protocol 표준에 설명된 WS-Addressing 엔드포인트 참조입니다. WS-Management 프로토콜에 대한 공용 사양에 대한 자세한 내용은 관리 사양 인덱스 페이지를 참조하세요.
-
parameters [in]
-
메서드에 대한 입력의 XML 표현입니다. 이 문자열을 제공해야 합니다. 그렇지 않으면 이 메서드가 실패합니다.
-
flags [in, optional]
-
예약되어 있습니다. 0으로 설정해야 합니다.
반환 값
메서드 출력의 XML 표현입니다.
예제
다음 VBScript 코드 예제에서는 Calc.exe 프로세스를 시작합니다. strInputParameters 매개 변수는 XML 형식의 입력 매개 변수를 포함합니다. WMI Win32_Process 클래스의 Create 메서드에 필요한 유일한 입력 매개 변수는 실행할 명령줄입니다.
Set objWsman = CreateObject( "WSMan.Automation" )
If objWsman is Nothing Then
WScript.Echo "Failed to create WSMAN Automation object"
WScript.Quit
End If
Set objSession = objWsman.CreateSession
If objSession is Nothing Then
WScript.Echo "Failed to create WSMAN Session object"
WScript.Quit
End If
strResource = "http://schemas.microsoft.com/wbem/wsman/1/" & _
"wmi/root/cimv2/Win32_Process"
strInputParameters = "<p:Create_INPUT " & _
"xmlns:p=""http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Process"">" & _
"<p:CommandLine>" & "calc.exe" & _
"</p:CommandLine>" & _
"</p:Create_INPUT>"
strOutputParameters = objSession.Invoke( "Create", _
strResource, strInputParameters )
DisplayOutput( strOutputParameters )
'****************************************************
' Displays WinRM XML message using built-in XSL
'****************************************************
Sub DisplayOutput( strWinRMXml )
Dim xmlFile, xslFile
Set xmlFile = CreateObject( "MSXml2.DOMDocument.3.0" )
Set xslFile = CreateObject( "MSXml2.DOMDocument.3.0" )
xmlFile.LoadXml( strWinRMXml )
xslFile.Load( "WsmTxt.xsl" )
Wscript.Echo xmlFile.TransformNode( xslFile )
End Sub
다음 VBScript 코드 예제에서는 Session.Invoke 메서드를 호출하여 Win32_ServiceStopService 메서드를 실행합니다. StopService 메서드에는 입력 매개 변수가 없습니다. 그러나 Invoke 메서드에는 매개 변수 매개 변수 에 XML 문자열이 필요합니다.
Option Explicit
Dim objWsman
Dim objSession
Dim strResponse
Dim strActionURI
Dim strInputXml
Dim strResourceURI
Dim strMethodName
set objWsman = CreateObject("Wsman.Automation")
set objSession = objWsman.CreateSession
strResourceURI = "http://schemas.microsoft.com/wbem/wsman/1/"_
& "wmi/root/cimv2/Win32_Service?Name=w32time"
strMethodName = "StopService"
strActionURI = strMethodName
strInputXml = "<p:StopService_INPUT " _
& "xmlns:p=""http://schemas.microsoft.com/wbem/wsman/1/"_
& "wmi/root/cimv2/Win32_Service""/>"
strResponse = objSession.Invoke(strMethodName, strResourceURI, strInputXml)
call DisplayOutput(strResponse)
strMethodName = "StartService"
strActionURI = strResourceURI & "/" & strMethodName
strInputXml = "<p:StartService_INPUT " _
& "xmlns:p=""http://schemas.microsoft.com/wbem/wsman/1/"_
& "wmi/root/cimv2/Win32_Service""/>"
strResponse = objSession.Invoke(strMethodName, _
strResourceURI, strInputXml)
call DisplayOutput(strResponse)
'****************************************************
' Displays WinRM XML message using built-in XSL
'****************************************************
Sub DisplayOutput( strWinRMXml )
Dim xmlFile, xslFile
Set xmlFile = CreateObject( "MSXml2.DOMDocument.3.0" )
Set xslFile = CreateObject( "MSXml2.DOMDocument.3.0" )
xmlFile.LoadXml( strWinRMXml )
xslFile.Load( "WsmTxt.xsl" )
Wscript.Echo xmlFile.TransformNode( xslFile )
End Sub
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 |
Windows Vista |
지원되는 최소 서버 |
Windows Server 2008 |
헤더 |
|
IDL |
|
라이브러리 |
|
DLL |
|