Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Os scripts de Gerenciamento Remoto do Windows retornam XML em vez de objetos. O XML não está em um formato legível por humanos. Você pode usar os métodos do MSXML API e o arquivo XSL pré-instalado para transformar os dados em formato legível por humanos.
Para obter mais informações sobre a saída XML do WinRM e exemplos de XML bruto e formatado, consulte Scripting in Windows Remote Management.
A ferramenta de linha de comando Winrm vem com um arquivo de transformação chamado WsmTxt.xsl que exibe a saída em um formato tabular. Se o script fornecer esse arquivo para os métodos MSXML que executam transformações, a saída aparecerá igual à saída da ferramenta Winrm .
Para formatar a saída XML bruta
Crie o objeto WSMan e crie uma sessão.
Set Wsman = CreateObject("Wsman.Automation") Set Session = Wsman.CreateSessionCrie objetos MSXML que representam a saída de resposta XML e a transformação XSL.
Set xmlFile = CreateObject( "MSXml.DOMDocument" ) Set xslFile = CreateObject( "MSXml.DOMDocument" )Obtenha dados através dos métodos de objeto Session.
xmlResponse = Session.Get("http://schemas.microsoft.com/" & _ "wbem/wsman/1/wmi/root/cimv2/Win32_Service?Name=Spooler")Forneça a resposta para o método loadXML do MSXML e o método load para armazenar o arquivo de transformação.
xmlFile.LoadXml(xmlResponse) xslFile.Load("WsmTxt.xsl")Use o método MSXML transformNode e exiba ou salve a saída.
Wscript.Echo xmlFile.TransformNode(xslFile)
O exemplo de código VBScript a seguir mostra o script completo.
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)
Adicionando uma subrotina portátil para converter XML nos seus scripts
Você pode adicionar uma sub-rotina aos seus scripts que usa o arquivo XSL pré-instalado para converter a saída XML bruta de um script WinRM em um formulário tabular.
A sub-rotina a seguir usa chamadas para os métodos de script MSXML para fornecer a saída para 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
A sub-rotina a seguir transforma cada linha de seus dados, conforme mostrado no exemplo a seguir.
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
Tópicos relacionados