Delen via


XML-uitvoer van WinRM-scripts weergeven

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

  1. Maak het WSMan--object en maak een sessie.

    Set Wsman = CreateObject("Wsman.Automation")
    Set Session = Wsman.CreateSession
    
  2. Maak MSXML-objecten die de XML-antwoorduitvoer en de XSL-transformatie vertegenwoordigen.

    Set xmlFile = CreateObject( "MSXml.DOMDocument" )
    Set xslFile = CreateObject( "MSXml.DOMDocument" )
    
  3. Gegevens verkrijgen via Sessie objectmethoden.

    xmlResponse = Session.Get("http://schemas.microsoft.com/" & _
        "wbem/wsman/1/wmi/root/cimv2/Win32_Service?Name=Spooler")
    
  4. 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")
    
    
  5. 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 

Over Windows Remote Management

Windows Remote Management gebruiken

Windows Extern Beheer Referentie