Sdílet prostřednictvím


Zobrazení výstupu XML ze skriptů WinRM

Skripty vzdálené správy systému Windows vrací místo objektů XML. XML není ve formátu čitelném pro člověka. Pomocí metod rozhraní MSXML API a předinstalovaného souboru XSL můžete transformovat data do čitelného formátu člověka.

Další informace o výstupu WINRM XML a příklady nezpracovaných a formátovaných XML naleznete v tématu Skriptování ve Windows Remote Management.

Nástroj příkazového řádku Winrm obsahuje transformační soubor s názvem WsmTxt.xsl, který zobrazuje výstup v tabulkové podobě. Pokud váš skript tento soubor dodává metodám MSXML, které provádějí transformace, výstup se zobrazí stejně jako výstup z nástroje Winrm .

Naformátovat nezpracovaný XML výstup

  1. Vytvořte objekt WSMan a vytvořte relaci.

    Set Wsman = CreateObject("Wsman.Automation")
    Set Session = Wsman.CreateSession
    
  2. Vytvořte objekty MSXML, které představují výstup odpovědi XML a transformaci XSL.

    Set xmlFile = CreateObject( "MSXml.DOMDocument" )
    Set xslFile = CreateObject( "MSXml.DOMDocument" )
    
  3. Získejte data prostřednictvím metodami objektu Session.

    xmlResponse = Session.Get("http://schemas.microsoft.com/" & _
        "wbem/wsman/1/wmi/root/cimv2/Win32_Service?Name=Spooler")
    
  4. Dodejte odpověď metodě loadXML systému MSXML a metodě load pro uložení transformačního souboru.

    xmlFile.LoadXml(xmlResponse)
    xslFile.Load("WsmTxt.xsl")
    
    
  5. Použijte msXML transformNode metodu a zobrazte nebo uložte výstup.

    Wscript.Echo xmlFile.TransformNode(xslFile)
    

Následující příklad kódu jazyka VBScript ukazuje úplný 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)

Přidání přenosného podprogramu pro transformaci XML do skriptů

Do skriptů, které používají předinstalovaný soubor XSL, můžete přidat podprogram, který převede nezpracovaný výstup XML ze skriptu WinRM do tabulkového formuláře.

Následující podprogram používá volání metod skriptování MSXML k zadání výstupu wsmTxt.xsl.

'****************************************************
' 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

Následující podprogram transformuje každý řádek dat, jak je znázorněno v následujícím příkladu.

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 

o vzdálené správy systému Windows

Používání vzdálené správy systému Windows

Referenční příručka pro vzdálenou správu systému Windows