Detectando se um computador remoto dá suporte ao protocolo WS-Management

Você pode usar os métodos Session.Identify ou IWSManSession.Identify para determinar se o computador remoto tem um serviço que dá suporte ao protocolo WS-Management.

Se um serviço de protocolo WS-Management estiver configurado no computador remoto e estiver escutando solicitações, o serviço poderá detectar uma solicitação de Identificação pelo XML a seguir no cabeçalho .

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

O serviço de protocolo WS-Management que recebe a solicitação retorna as informações contidas na lista a seguir, no corpo da mensagem:

  • A versão do protocolo WS-Management. (Por exemplo, "https://schemas.dmtf.org/wbem/wsman/1/wsman".
  • O fornecedor do produto, por exemplo, "Microsoft Corporation".
  • A versão do produto. Se a solicitação for enviada com WSManFlagUseNoAuthentication no parâmetro flags , nenhuma informação de versão do produto será retornada. Se a solicitação for enviada com a autenticação padrão em vigor ou com outro modo de autenticação especificado, as informações de versão do produto poderão ser retornadas.

A solicitação para detectar se o computador remoto tem um serviço de protocolo de WS-Management configurado e escuta pode ser executada no início de um script com outras operações. Isso verificará se o computador ou os computadores de destino podem responder a mais solicitações de protocolo WS-Management. A verificação também pode ser feita em um script separado.

Para detectar um serviço de protocolo WS-Management

  1. Crie um objeto WSMan .

    Set objWsman = CreateObject("Wsman.Automation")
    
  2. Determine se a solicitação deve ser enviada autenticada ou não autenticada e defina o parâmetro flags adequadamente na chamada para WSMan.CreateSession.

    set objSession = objWsman.CreateSession("Remote1", _
       objWsman.SessionFlagUseNoAuthentication)
    
  3. Chamar Session.Identifi.

    objSession.Identify
    

Exemplos

O exemplo de código VBScript a seguir envia uma solicitação de Identificação não autenticada para o computador remoto chamado "Remote1" no mesmo domínio.

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

A resposta a seguir mostra o XML retornado pelo computador remoto. A versão do protocolo WS-Management ("https://schemas.dmtf.org/wbem/wsman/1/wsman.xsd") e o fornecedor do sistema operacional ("Microsoft Corporation") são especificados no XML retornado. Como a mensagem é enviada não autenticada, a versão do produto não é retornada pelo serviço de Gerenciamento Remoto do 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>

O exemplo de código VBScript a seguir envia uma solicitação de Identificação autenticada para o computador remoto.

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

Como a solicitação foi enviada com autenticação, as informações de versão são retornadas.

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

Sobre o Gerenciamento Remoto do Windows

Usando o Gerenciamento Remoto do Windows

Referência de gerenciamento remoto do Windows