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
Crie um objeto WSMan .
Set objWsman = CreateObject("Wsman.Automation")
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)
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>
Tópicos relacionados