Udostępnij przez


Wykrywanie, czy komputer zdalny obsługuje protokół WS-Management

Można użyć metod Session.Identify lub IWSManSession.Identify, aby określić, czy komputer zdalny ma usługę, która obsługuje protokół WS-Management.

Jeśli usługa protokołu WS-Management jest skonfigurowana na komputerze zdalnym i nasłuchuje żądań, usługa może wykryć żądanie Identyfikacji przez następujący kod XML w nagłówku.

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

Usługa protokołu WS-Management, która odbiera żądanie, zwraca informacje zawarte na poniższej liście w treści komunikatu:

  • Wersja protokołu WS-Management. Na przykład "https://schemas.dmtf.org/wbem/wsman/1/wsman".
  • Dostawca produktu, na przykład "Microsoft Corporation".
  • Wersja produktu. Jeśli żądanie jest wysyłane z WSManFlagUseNoAuthentication w parametrze flag , nie są zwracane informacje o wersji produktu. Jeśli żądanie jest wysyłane przy użyciu uwierzytelniania domyślnego lub z określonym innym trybem uwierzytelniania, można zwrócić informacje o wersji produktu.

Żądanie wykrycia, czy komputer zdalny ma skonfigurowaną i nasłuchującą usługę protokołu WS-Management, może być wykonane na początku działania skryptu razem z innymi operacjami. Spowoduje to sprawdzenie, czy komputer docelowy lub komputery mogą odpowiadać na dalsze żądania protokołu WS-Management. Weryfikację można również przeprowadzić w osobnym skrypcie.

Aby wykryć usługę protokołu WS-Management

  1. Utwórz obiekt WSMan.

    Set objWsman = CreateObject("Wsman.Automation")
    
  2. Ustal, czy żądanie powinno zostać wysłane jako uwierzytelnione czy nieuwierzytelnione, i odpowiednio ustaw flagi w wywołaniu WSMan.CreateSession.

    set objSession = objWsman.CreateSession("Remote1", _
       objWsman.SessionFlagUseNoAuthentication)
    
  3. Wywołaj Session.Identify.

    objSession.Identify
    

Przykłady

Poniższy przykład kodu VBScript wysyła nieuwierzytelnione żądanie identyfikowania do komputera zdalnego o nazwie "Remote1" w tej samej domenie.

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

Poniższa odpowiedź przedstawia kod XML zwrócony przez komputer zdalny. Wersja protokołu WS-Management ("https://schemas.dmtf.org/wbem/wsman/1/wsman.xsd") i dostawca systemu operacyjnego ("Microsoft Corporation") są określone w zwracanym kodzie XML. Ponieważ komunikat jest wysyłany nieuwierzytelniony, wersja produktu nie jest zwracana przez usługę zdalnego zarządzania systemem 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>

Poniższy przykład kodu VBScript wysyła uwierzytelnione żądanie identyfikowania do komputera zdalnego.

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

Ponieważ żądanie zostało wysłane z uwierzytelnianiem, zwracane są informacje o wersji.

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

Informacje o zdalnym zarządzaniu systemem Windows

Korzystanie z zdalnego zarządzania systemem Windows

dokumentacja zarządzania zdalnego systemu Windows