次の方法で共有


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
WSManDisp.h
IDL
WSManDisp.idl
ライブラリ
WSManDisp.tlb
[DLL]
WSMAuto.dll

こちらもご覧ください

Session