Поделиться через


Определение того, поддерживает ли удаленный компьютер протокол 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. Вызов Сессия.Идентификация.

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

Справочник по удаленному управлению Windows