Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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
Utwórz obiekt WSMan i utwórz sesję.
Set Wsman = CreateObject("Wsman.Automation") Set Session = Wsman.CreateSessionUtwórz obiekty MSXML reprezentujące dane wyjściowe odpowiedzi XML i przekształcenie XSL.
Set xmlFile = CreateObject( "MSXml.DOMDocument" ) Set xslFile = CreateObject( "MSXml.DOMDocument" )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")Podaj odpowiedź na metodę MSXML loadXML oraz metodę ładuj w celu przechowywania pliku przekształcenia.
xmlFile.LoadXml(xmlResponse) xslFile.Load("WsmTxt.xsl")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
Tematy pokrewne