Detección de si un equipo remoto admite el protocolo WS-Management

Puede usar los métodos Session.Identify o IWSManSession.Identify para determinar si el equipo remoto tiene un servicio que admite el protocolo WS-Management.

Si un servicio de protocolo WS-Management está configurado en el equipo remoto y está escuchando solicitudes, el servicio puede detectar una solicitud de identificación mediante el siguiente XML en el encabezado.

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

El servicio de protocolo WS-Management que recibe la solicitud devuelve la información, incluida en la lista siguiente, en el cuerpo del mensaje:

  • Versión del protocolo WS-Management. Por ejemplo, "https://schemas.dmtf.org/wbem/wsman/1/wsman".
  • El proveedor del producto, por ejemplo, "Microsoft Corporation".
  • Versión del producto. Si la solicitud se envía con WSManFlagUseNoAuthentication en el parámetro flags , no se devuelve información de versión del producto. Si la solicitud se envía con la autenticación predeterminada en vigor o con otro modo de autenticación especificado, se puede devolver la información de la versión del producto.

Solicitud para detectar si el equipo remoto tiene un servicio de protocolo configurado y de escucha WS-Management se puede realizar al principio de un script con otras operaciones. Esto comprobará que el equipo o los equipos de destino pueden responder a más solicitudes de protocolo WS-Management. La comprobación también se puede realizar en un script independiente.

Para detectar un servicio de protocolo WS-Management

  1. Cree un objeto WSMan .

    Set objWsman = CreateObject("Wsman.Automation")
    
  2. Determine si la solicitud se debe enviar autenticada o no autenticada y establezca el parámetro flags en consecuencia en la llamada a WSMan.CreateSession.

    set objSession = objWsman.CreateSession("Remote1", _
       objWsman.SessionFlagUseNoAuthentication)
    
  3. Llame a Session.Identify.

    objSession.Identify
    

Ejemplos

El siguiente ejemplo de código VBScript envía una solicitud de identificación no autenticada al equipo remoto denominado "Remote1" en el mismo dominio.

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

La siguiente respuesta muestra el XML devuelto por el equipo remoto. La versión del protocolo WS-Management ("https://schemas.dmtf.org/wbem/wsman/1/wsman.xsd") y el proveedor del sistema operativo ("Microsoft Corporation") se especifican en el XML devuelto. Dado que el mensaje no está autenticado, el servicio de administración remota de Windows no devuelve la versión del producto.

<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>

El siguiente ejemplo de código vbScript envía una solicitud de identificación autenticada al equipo remoto.

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

Dado que la solicitud se envió con autenticación, se devuelve la información de versión.

<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>

Acerca de la administración remota de Windows

Uso de la administración remota de Windows

Referencia de administración remota de Windows