Udostępnij przez


Wyświetlanie danych wyjściowych XML ze skryptów usługi WinRM

Skrypty zdalnego zarządzania systemem Windows zwracają kod XML, a nie obiekty. Kod XML nie jest w formacie czytelnym dla człowieka. Można użyć metod interfejsu API MSXML i wstępnie zainstalowanego pliku XSL, aby przekształcić dane w format czytelny dla człowieka.

Aby uzyskać więcej informacji na temat danych wyjściowych XML usługi WinRM i przykładów nieprzetworzonych i sformatowanych plików XML, zobacz Scripting in Windows Remote Management.

Narzędzie wiersza polecenia Winrm zawiera plik przekształcenia o nazwie WsmTxt.xsl, który wyświetla dane wyjściowe w formie tabelarycznej. Jeśli skrypt dostarcza ten plik do metod MSXML, które wykonują przekształcenia, dane wyjściowe będą wyświetlane tak samo jak dane wyjściowe z narzędzia Winrm .

Aby sformatować nieprzetworzone dane wyjściowe XML

  1. Utwórz obiekt WSMan i utwórz sesję.

    Set Wsman = CreateObject("Wsman.Automation")
    Set Session = Wsman.CreateSession
    
  2. Utwórz obiekty MSXML reprezentujące dane wyjściowe odpowiedzi XML i przekształcenie XSL.

    Set xmlFile = CreateObject( "MSXml.DOMDocument" )
    Set xslFile = CreateObject( "MSXml.DOMDocument" )
    
  3. Uzyskaj dane za pomocą metod obiektów sesji .

    xmlResponse = Session.Get("http://schemas.microsoft.com/" & _
        "wbem/wsman/1/wmi/root/cimv2/Win32_Service?Name=Spooler")
    
  4. Podaj odpowiedź na metodę MSXML loadXML oraz metodę ładuj w celu przechowywania pliku przekształcenia.

    xmlFile.LoadXml(xmlResponse)
    xslFile.Load("WsmTxt.xsl")
    
    
  5. Użyj metody transformNode MSXML i wyświetl lub zapisz dane wyjściowe.

    Wscript.Echo xmlFile.TransformNode(xslFile)
    

Poniższy przykład kodu VBScript przedstawia kompletny skrypt.

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)

Dodawanie przenośnej podprocedury do przekształcania XML na skrypty

Do skryptów można dodać podprodukt, który używa wstępnie zainstalowanego pliku XSL do konwertowania nieprzetworzonych danych wyjściowych XML ze skryptu usługi WinRM na formularz tabelaryczny.

W poniższej podprocedurze użyto wywołań metod skryptowych MSXML, w celu dostarczenia danych wyjściowych do pliku 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

Poniższa podprokutyna przekształca każdy wiersz danych, jak pokazano w poniższym przykładzie.

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 

Informacje o zdalnym zarządzaniu systemem Windows

Używanie zdalnego zarządzania systemem Windows

Odniesienie do zdalnego zarządzania systemem Windows