检测远程计算机是否支持WS-Management协议

可以使用 Session.IdentifyIWSManSession.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 代码示例向同一域中名为“Remote1”的远程计算机发送未经身份验证的标识请求。

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

以下响应显示远程计算机返回的 XML。 在返回的 XML 中指定WS-Management协议版本 (https://schemas.dmtf.org/wbem/wsman/1/wsman.xsd") 和操作系统供应商 (“Microsoft Corporation”) 。 由于消息是未经身份验证发送的,因此 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 远程管理参考