Erkennen, ob ein Remotecomputer WS-Management Protokoll unterstützt
Sie können die Methoden Session.Identify oder IWSManSession.Identify verwenden, um festzustellen, ob der Remotecomputer über einen Dienst verfügt, der das WS-Management-Protokoll unterstützt.
Wenn ein WS-Management-Protokolldienst auf dem Remotecomputer konfiguriert ist und auf Anforderungen lauscht, kann der Dienst eine Identifizierungsanforderung anhand des folgenden XML-Codes im Header erkennen.
xmlns:wsmid="https://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity"
Der WS-Management-Protokolldienst, der die Anforderung empfängt, gibt die In der folgenden Liste enthaltenen Informationen im Nachrichtentext zurück:
- Die WS-Management Protokollversion. Beispiel: "https://schemas.dmtf.org/wbem/wsman/1/wsman".
- Der Produktanbieter, z. B. "Microsoft Corporation".
- Die Produktversion. Wenn die Anforderung mit WSManFlagUseNoAuthentication im flags-Parameter gesendet wird, werden keine Produktversionsinformationen zurückgegeben. Wenn die Anforderung mit der gültigen Standardauthentifizierung oder mit einem anderen Authentifizierungsmodus gesendet wird, können die Produktversionsinformationen zurückgegeben werden.
Die Anforderung zum Erkennen, ob der Remotecomputer über einen konfigurierten und lauschenden WS-Management Protokolldienst verfügt, kann am Anfang eines Skripts mit anderen Vorgängen ausgeführt werden. Dadurch wird überprüft, ob der Zielcomputer oder die Zielcomputer auf weitere WS-Management Protokollanforderungen reagieren können. Die Überprüfung kann auch in einem separaten Skript durchgeführt werden.
So erkennen Sie einen WS-Management-Protokolldienst
Erstellen Sie ein WSMan-Objekt .
Set objWsman = CreateObject("Wsman.Automation")
Bestimmen Sie, ob die Anforderung authentifiziert oder nicht authentifiziert gesendet werden soll, und legen Sie den Flags-Parameter entsprechend im Aufruf von WSMan.CreateSession fest.
set objSession = objWsman.CreateSession("Remote1", _ objWsman.SessionFlagUseNoAuthentication)
Rufen Sie Session.Identify auf.
objSession.Identify
Beispiele
Das folgende VBScript-Codebeispiel sendet eine nicht authentifizierte Identifizierungsanforderung an den Remotecomputer "Remote1" in derselben Domäne.
set objWsman = CreateObject("Wsman.Automation")
set objSession = objWsman.CreateSession("Remote1", _
objWsman.SessionFlagUseNoAuthentication)
WScript.Echo objSession.Identify
Die folgende Antwort zeigt den vom Remotecomputer zurückgegebenen XML-Code. Die WS-Management Protokollversion ("https://schemas.dmtf.org/wbem/wsman/1/wsman.xsd") und der Betriebssystemanbieter ("Microsoft Corporation") werden in der zurückgegebenen XML angegeben. Da die Nachricht nicht authentifiziert gesendet wird, wird die Produktversion nicht vom Windows-Remoteverwaltungsdienst zurückgegeben.
<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>
Das folgende VBScript-Codebeispiel sendet eine authentifizierte Identifikationsanforderung an den Remotecomputer.
set ObjWSMan = CreateObject("Wsman.Automation")
set objSession = WSMan.CreateSession("Remote1", _
objWSMan.SessionFlagUseKerberos)
WScript.Echo objSession.Identify
Da die Anforderung mit Authentifizierung gesendet wurde, werden die Versionsinformationen zurückgegeben.
<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>
Zugehörige Themen