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

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

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

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 コード例では、認証されていない Identify 要求を、同じドメイン内の "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 コード例では、認証された Identify 要求をリモート コンピューターに送信します。

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 リモート管理リファレンス