リモート コンピューターが WS-Management プロトコルをサポートしているかどうかを検出する

Session.Identify または IWSManSession.Identify メソッドを使用して、リモート コンピューターに WS-Management プロトコルをサポートするサービスがあるかどうかを判断できます。

WS-Management プロトコル サービスがリモート コンピューターで構成されていて、要求をリッスンしている場合、サービスはヘッダー内の次の XML によって識別要求を検出できます。

xmlns:wsmid="https://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity"

要求を受け取るWS-Management プロトコル サービスは、メッセージの本文の次の一覧に含まれる情報を返します。

  • WS-Management プロトコルのバージョン。 (例: https://schemas.dmtf.org/wbem/wsman/1/wsman")。
  • 製品ベンダー ("Microsoft Corporation" など)。
  • 製品のバージョン。 flags パラメーターに WSManFlagUseNoAuthentication を指定して要求が送信された場合、製品バージョン情報は返されません。 要求が、有効な既定の認証または別の認証モードが指定された状態で送信された場合は、製品バージョン情報を返すことができます。

リモート コンピューターに構成され、リッスンWS-Managementプロトコル サービスがあるかどうかを検出する要求は、スクリプトの先頭で他の操作で実行できます。 これにより、ターゲット コンピューターまたはコンピューターが、さらにWS-Managementプロトコル要求に応答できることを確認します。 検証は、別のスクリプトで行うこともできます。

WS-Management プロトコル サービスを検出するには

  1. WSMan オブジェクトを作成します。

    Set objWsman = CreateObject("Wsman.Automation")
    
  2. 要求を認証済みまたは認証されていないどちらに送信するかを決定し、WSMan.CreateSession の呼び出しでそれに応じて flags パラメーターを設定します。

    set objSession = objWsman.CreateSession("Remote1", _
       objWsman.SessionFlagUseNoAuthentication)
    
  3. Session.Identify を呼び出します。

    objSession.Identify
    

次の VBScript コード例では、認証されていない識別要求を、同じドメイン内の "Remote1" という名前のリモート コンピューターに送信します。

set objWsman = CreateObject("Wsman.Automation")
set objSession = objWsman.CreateSession("Remote1", _
  objWsman.SessionFlagUseNoAuthentication)
WScript.Echo objSession.Identify

次の応答は、リモート コンピューターによって返される XML を示しています。 WS-Management プロトコル バージョン ("https://schemas.dmtf.org/wbem/wsman/1/wsman.xsd")およびオペレーティング システム ベンダー ("Microsoft Corporation") は、返される XML で指定されます。 メッセージは認証されていない状態で送信されるため、製品バージョンはWindowsリモート管理サービスから返されません。

<wsmid:IdentifyResponse xmlns:wsmid=
    "https://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity.xsd">
<wsmid:ProtocolVersion>https://schemas.dmtf.org/wbem/wsman/1/wsman.xsd
    </wsmid:ProtocolVersion>
<wsmid:ProductVendor>Microsoft Corporation</wsmid:ProductVendor>
<wsmid:ProductVersion>OS: 0.0.0 SP: 0.0 Stack:1.0</wsmid:ProductVersion>
</wsmid:IdentifyResponse>

次の VBScript コード例では、認証された識別要求をリモート コンピューターに送信します。

set ObjWSMan = CreateObject("Wsman.Automation")
set objSession = WSMan.CreateSession("Remote1", _
  objWSMan.SessionFlagUseKerberos)
WScript.Echo objSession.Identify

要求は認証で送信されたため、バージョン情報が返されます。

<wsmid:IdentifyResponse xmlns:wsmid=
    "https://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity.xsd">
<wsmid:ProtocolVersion>https://schemas.dmtf.org/wbem/wsman/1/wsman.xsd
    </wsmid:ProtocolVersion>
<wsmid:ProductVendor>Microsoft Corporation</wsmid:ProductVendor>
<wsmid:ProductVersion>OS: 6.0.5384 SP: 0.0 Stack:1.0</wsmid:ProductVersion>
</wsmid:IdentifyResponse>

リモート管理Windowsについて

Windows リモート管理の使用

リモート管理リファレンスのWindows