Определение того, поддерживает ли удаленный компьютер протокол WS-Management

Вы можете использовать методы Session.Identify или IWSManSession.Identify , чтобы определить, есть ли у удаленного компьютера служба, поддерживающая протокол WS-Management.

Если служба протокола WS-Management настроена на удаленном компьютере и прослушивает запросы, служба может обнаружить запрос на идентификацию с помощью следующего XML-кода в заголовке.

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

Служба протокола WS-Management, которая получает запрос, возвращает сведения, содержащиеся в следующем списке, в тексте сообщения:

  • Версия протокола WS-Management. Например, https://schemas.dmtf.org/wbem/wsman/1/wsman".
  • Поставщик продукта, например "Корпорация Майкрософт".
  • Версия продукта. Если запрос отправляется с помощью WSManFlagUseNoAuthentication в параметре флагов , то сведения о версии продукта не возвращаются. Если запрос отправляется либо с проверкой подлинности по умолчанию, либо с другим заданным режимом проверки подлинности, можно вернуть сведения о версии продукта.

Запрос на определение того, настроен и прослушивает ли удаленный компьютер службу протокола WS-Management можно выполнить в начале скрипта с другими операциями. Это позволит убедиться, что целевой компьютер или компьютеры могут реагировать на дальнейшие запросы протокола WS-Management. Проверку также можно выполнить в отдельном скрипте.

Обнаружение службы протокола WS-Management

  1. Создание объекта WSMan .

    Set objWsman = CreateObject("Wsman.Automation")
    
  2. Определите, следует ли отправлять запрос, прошедший проверку подлинности или не прошедший проверку подлинности, и задайте соответствующий параметр флагов в вызове WSMan.CreateSession.

    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-код, возвращаемый удаленным компьютером. Версия протокола WS-Management ("https://schemas.dmtf.org/wbem/wsman/1/wsman.xsd") и поставщик операционной системы ("Корпорация Майкрософт") указываются в возвращаемом 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 отправляется запрос на идентификацию с проверкой подлинности на удаленный компьютер.

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