Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Windows-Remoteverwaltungsskripts geben XML anstelle von Objekten zurück. Der XML-Code weist kein lesbares Format auf. Sie können die Methoden der MSXML-API und der vorinstallierten XSL-Datei verwenden, um die Daten in ein lesbares Format zu transformieren.
Weitere Informationen zur WinRM-XML-Ausgabe und -Beispielen für unformatierte und formatierte XML finden Sie unter Scripting in Windows Remote Management.
Das Befehlszeilentool Winrm enthält eine Transformationsdatei mit dem Namen WsmTxt.xsl, die die Ausgabe in tabellarischer Form anzeigt. Wenn Ihr Skript diese Datei den MSXML-Methoden bereitstellt, die Transformationen ausführen, wird die Ausgabe mit der Ausgabe des Winrm-Tools identisch angezeigt.
So formatieren Sie die rohe XML-Ausgabe
Erstellen Sie das WSMan-Objekt , und erstellen Sie eine Sitzung.
Set Wsman = CreateObject("Wsman.Automation") Set Session = Wsman.CreateSession
Erstellen Sie MSXML-Objekte, die die XML-Antwortausgabe und die XSL-Transformation darstellen.
Set xmlFile = CreateObject( "MSXml.DOMDocument" ) Set xslFile = CreateObject( "MSXml.DOMDocument" )
Abrufen von Daten über Session-Objektmethoden .
xmlResponse = Session.Get("http://schemas.microsoft.com/" & _ "wbem/wsman/1/wmi/root/cimv2/Win32_Service?Name=Spooler")
Geben Sie die Antwort auf die MSXML loadXML-Methode und die Lademethode an, um die Transformationsdatei zu speichern.
xmlFile.LoadXml(xmlResponse) xslFile.Load("WsmTxt.xsl")
Verwenden Sie die MSXML transformNode-Methode , und zeigen Sie die Ausgabe an oder speichern Sie sie.
Wscript.Echo xmlFile.TransformNode(xslFile)
Das folgende VBScript-Codebeispiel zeigt das vollständige Skript.
Set Wsman = CreateObject("Wsman.Automation")
Set Session = Wsman.CreateSession
Set xmlFile = CreateObject( "MSXml.DOMDocument" )
Set xslFile = CreateObject( "MSXml.DOMDocument" )
xmlResponse = Session.Get("http://schemas.microsoft.com/" & _
"wbem/wsman/1/wmi/root/cimv2/Win32_Service?Name=Spooler")
xmlFile.LoadXml(xmlResponse)
xslFile.Load("WsmTxt.xsl")
Wscript.Echo xmlFile.TransformNode(xslFile)
Hinzufügen einer portablen Unterroutine zum Transformieren von XML zu Ihren Skripts
Sie können Ihren Skripts eine Unterroutine hinzufügen, die die vorinstallierte XSL-Datei verwendet, um die unformatierte XML-Ausgabe aus einem WinRM-Skript in ein tabellarisches Formular zu konvertieren.
Die folgende Unterroutine verwendet Aufrufe der MSXML-Skriptingmethoden, um die Ausgabe an WsmTxt.xsl anzugeben.
'****************************************************
' Displays WinRM XML message using built-in XSL
'****************************************************
Sub DisplayOutput(strWinRMXml)
Set xmlFile = CreateObject("MSXml.DOMDocument")
Set xslFile = CreateObject("MSXml.DOMDocument")
xmlFile.LoadXml(strWinRMXml)
xslFile.Load("WsmTxt.xsl")
Wscript.Echo xmlFile.TransformNode(xslFile)
End Sub
Die folgende Unterroutine transformiert jede Zeile Ihrer Daten, wie im folgenden Beispiel gezeigt.
Const RemoteComputer = "servername.domain.com"
Set objWsman = CreateObject("WSMan.Automation")
Set objSession = objWsman.CreateSession("https://" & RemoteComputer)
strResource = "http://schemas.microsoft.com/" & _
"wbem/wsman/1/wmi/root/cimv2/Win32_LogicalDisk"
Set objResultSet = objSession.Enumerate(strResource)
While Not objResultSet.AtEndOfStream
DisplayOutput(objResultSet.ReadItem)
Wend
Sub DisplayOutput(strWinRMXml)
Set xmlFile = CreateObject("MSXml.DOMDocument")
Set xslFile = CreateObject("MSXml.DOMDocument")
xmlFile.LoadXml(strWinRMXml)
xslFile.Load("WsmTxt.xsl")
Wscript.Echo xmlFile.TransformNode(xslFile)
End Sub
Zugehörige Themen