Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Скрипты удаленного управления Windows возвращают XML, а не объекты. XML не находится в формате, доступном для чтения человеком. Методы API MSXML и предварительно установленного XSL-файла можно использовать для преобразования данных в удобочитаемый для человека формат.
Дополнительные сведения о выходных данных WinRM XML и примерах необработанных и форматированных XML см. в разделе "Скрипты" в удаленном управлении Windows.
Средство командной строки Winrm поставляется с файлом преобразования с именем WsmTxt.xsl, который отображает выходные данные в табличной форме. Если скрипт предоставляет этот файл методам MSXML, выполняющим преобразования, выходные данные отображаются так же, как выходные данные средства Winrm .
Форматирование необработанных выходных данных XML
Создайте объект WSMan и создайте сеанс.
Set Wsman = CreateObject("Wsman.Automation") Set Session = Wsman.CreateSessionСоздайте объекты MSXML, представляющие выходные данные XML-ответа и преобразование XSL.
Set xmlFile = CreateObject( "MSXml.DOMDocument" ) Set xslFile = CreateObject( "MSXml.DOMDocument" )Получение данных с помощью методов объекта Session .
xmlResponse = Session.Get("http://schemas.microsoft.com/" & _ "wbem/wsman/1/wmi/root/cimv2/Win32_Service?Name=Spooler")Предоставьте ответ методу MSXML loadXML и методу загрузки для хранения файла преобразования.
xmlFile.LoadXml(xmlResponse) xslFile.Load("WsmTxt.xsl")Используйте метод MSXML transformNode и отобразите или сохраните выходные данные.
Wscript.Echo xmlFile.TransformNode(xslFile)
В следующем примере кода VBScript показан полный скрипт.
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)
Добавление переносимой подпрограммы для преобразования XML в ваши скрипты
Вы можете добавить вложенный код в скрипты, которые используют предварительно установленный XSL-файл для преобразования необработанных выходных данных XML из скрипта WinRM в табличную форму.
Следующая подпрограмма использует вызовы методов скриптов MSXML для предоставления выходных данных 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
Следующая подпрограмма преобразует каждую строку данных, как показано в следующем примере.
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
Связанные темы