Abfragen bestimmter Instanzen einer Ressource
Der Aufruf von Session.Enumerate verfügt über optionale Parameter, die die Enumeration in eine Abfrage eingrenzen. Da die WinRM-Skript-API und die WinRM-C++-API eng auf das zugrunde liegende WS-Management Protokoll modelliert sind, verwenden die Parameter dieselbe Terminologie für die Abfrage wie das Protokoll – Filter - und Filterdialekt.
Sie können entweder die Filter- und Dialektparameter von Session.Enumerate verwenden, oder Sie können ein ResourceLocator-Objekt und die AddSelector-Methode erstellen und bereitstellen, aber Sie können nicht beides tun.
Mit diesem Verfahren wird eine Abfrage für Netzwerkadapter ausgeführt, für die TCP/IP gebunden und aktiviert ist. Die Abfrage fordert alle Instanzen von Win32_NetworkAdapterConfiguration an, für die die IpEnabled-Eigenschaft auf True festgelegt ist. Mit Ausnahme der Hinzufügung von Filter und Dialekt wird die Abfrage wie eine einfache Enumeration behandelt.
In diesem Beispiel wird der Ressourcenname für die Resource-Konstante durch ein Sternchen "*" dargestellt, da der Klassenname Win32_NetworkAdapterConfiguration bereits in der strFilter-Zeichenfolge erwähnt wird.
So fragen Sie bestimmte Instanzen einer Ressource ab
Um das Lesen zu erleichtern, definieren Sie URIs als Konstanten.
Const RemoteComputer = "servername.domain.com" Const Resource = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/*" Const Dialect = "http://schemas.microsoft.com/wbem/wsman/1/WQL"
Erstellen Sie eine Sitzung.
Set objWsman = CreateObject("Wsman.Automation") Set objSession = objWsman.CreateSession("https://" & RemoteComputer)
Erstellen Sie die Filterzeichenfolge. Die Windows-Remoteverwaltung unterstützt WQL als Filterdialekt.
strFilter = "SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IpEnabled=TRUE"
Legen Sie alle erforderlichen Enumerationskonstanten im flags-Parameter fest.
Beachten Sie folgendes: Wenn die Flags die EnumerationskonstantenWSManFlagHierarchyDeepBasePropsOnly oder WSManFlagHierarchyShallow enthalten, gibt der WinRM-Dienst den Fehlercode ERROR_WSMAN_POLYMORPHISM_MODE_UNSUPPORTED zurück.
Rufen Sie die Session.Enumerate-Methode auf . Mit diesem Aufruf wird eine Enumeration gestartet. Die Session.Enumerate-Methode erstellt einen WS-Management Protokollaufzählungskontext, der im Enumerator-Objekt verwaltet wird.
Set objResultSet = objSession.Enumerate(Resource, strFilter, Dialect)
Rufen Sie die Enumerator.ReadItem-Methode auf, um das nächste Element der Ergebnisse abzurufen. In WS-Management Protokoll entspricht dies dem Pullvorgang. Verwenden Sie die Enumerator.AtEndOfStream-Methode als Steuerelement, um zu ermitteln, wann das Lesen beendet werden soll.
While Not objResultSet.AtEndOfStream DisplayOutput(objResultSet.ReadItem) Wend
Das folgende VBScript-Codebeispiel zeigt das vollständige Skript.
Const RemoteComputer = "servername.domain.com"
Const Resource = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/*"
Const Dialect = "http://schemas.microsoft.com/wbem/wsman/1/WQL"
Set objWsman = CreateObject("Wsman.Automation")
Set objSession = objWsman.CreateSession("https://" & RemoteComputer)
strFilter = "SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IpEnabled=TRUE"
Set objResultSet = objSession.Enumerate(Resource, strFilter, Dialect)
While Not objResultSet.AtEndOfStream
DisplayOutput(objResultSet.ReadItem)
Wend
'****************************************************
' Displays WinRM XML message using built-in XSL
'****************************************************
Sub DisplayOutput(strWinRMXml)
Dim xmlFile, xslFile
Set xmlFile = CreateObject("MSXml2.DOMDocument.3.0")
Set xslFile = CreateObject("MSXml2.DOMDocument.3.0")
xmlFile.LoadXml(strWinRMXml)
xslFile.Load("WsmTxt.xsl")
Wscript.Echo xmlFile.TransformNode(xslFile)
End Sub
Zugehörige Themen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für