Session.Invoke メソッド
メソッドを呼び出し、メソッド呼び出しの結果を返します。
構文
Session.Invoke( _
ByVal actionUri, _
ByVal resourceUri, _
ByVal parameters, _
[ ByVal flags ] _
)
パラメーター
-
actionUri [in]
-
呼び出すメソッドの URI。
-
resourceUri [in]
-
取得するリソースの識別子。
このパラメーターには、次のいずれかを含めることができます。
セレクターの有無にかかわらず URI。 次の Visual Basic Scripting Edition (VBScript) の例では、 で
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_Serviceの StopService メソッド を実行します。 StopService メソッドには入力パラメーターがありません。 ただし、 Invoke メソッドには parameters パラメーターに 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 |
Header |
|
IDL |
|
ライブラリ |
|
[DLL] |
|