Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Windows Remote Management-scripts retourneren XML in plaats van objecten. De XML is niet in een menselijk leesbaar formaat. U kunt de methoden van de MSXML-API en het vooraf geïnstalleerde XSL-bestand gebruiken om de gegevens te transformeren in een door mensen leesbare indeling.
Zie Scripting in Windows Remote Managementvoor meer informatie over WinRM XML-uitvoer en voorbeelden van onbewerkte en opgemaakte XML-bestanden.
De Winrm opdrachtregelprogramma wordt geleverd met een transformatiebestand met de naam WsmTxt.xsl dat uitvoer weergeeft in een tabelvorm. Als uw script dit bestand levert aan de MSXML-methoden die transformaties uitvoeren, wordt de uitvoer hetzelfde weergegeven als de uitvoer van het Winrm-hulpprogramma .
Onbewerkte XML-uitvoer opmaken
Maak het WSMan--object en maak een sessie.
Set Wsman = CreateObject("Wsman.Automation") Set Session = Wsman.CreateSessionMaak MSXML-objecten die de XML-antwoorduitvoer en de XSL-transformatie vertegenwoordigen.
Set xmlFile = CreateObject( "MSXml.DOMDocument" ) Set xslFile = CreateObject( "MSXml.DOMDocument" )Gegevens verkrijgen via Sessie objectmethoden.
xmlResponse = Session.Get("http://schemas.microsoft.com/" & _ "wbem/wsman/1/wmi/root/cimv2/Win32_Service?Name=Spooler")Geef het antwoord op de methode MSXML loadXML en de load methode op om het transformatiebestand op te slaan.
xmlFile.LoadXml(xmlResponse) xslFile.Load("WsmTxt.xsl")Gebruik de methode MSXML transformNode en geef de uitvoer weer of sla deze op.
Wscript.Echo xmlFile.TransformNode(xslFile)
In het volgende voorbeeld van VBScript-code ziet u het volledige script.
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)
Een draagbare subroutine toevoegen om XML te transformeren naar uw scripts
U kunt een subroutine toevoegen aan uw scripts die gebruikmaken van het vooraf geïnstalleerde XSL-bestand om de onbewerkte XML-uitvoer van een WinRM-script te converteren naar een formulier in tabelvorm.
De volgende subroutine maakt gebruik van aanroepen naar de MSXML-scriptingmethoden om de uitvoer naar WsmTxt.xsl op te geven.
'****************************************************
' 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
Met de volgende subroutine wordt elke regel van uw gegevens getransformeerd, zoals wordt weergegeven in het volgende voorbeeld.
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
Verwante onderwerpen