Получение данных с локального компьютера
Хотя удаленное управление Windows и протокол WS-Management явно предназначены для удаленного взаимодействия, создание сеанса на локальном компьютере является самым простым случаем. Для некоторых сценариев могут потребоваться данные доступа как на локальном, так и на удаленных компьютерах.
**WinRM версии 2.0: **
Все операции считаются удаленными, и служба WinRM должна быть запущена перед выполнением любой операции. Если удаленное назначение не указано, то localhost используется по умолчанию, и все операции будут отправляться в локальную службу WinRM. Дополнительные сведения о запуске службы WinRM см. в разделе Установка и настройка удаленного управления Windows.
При использовании службы WinRM для локальных операций следует учитывать следующие факторы:
- Локальную конфигурацию WinRM могут считывать только администраторы.
- Пространства имен WMI должны иметь заданные разрешения удаленного включения. Дополнительные сведения см. в разделе Защита удаленного WMI-подключения.
- Если прослушиватель WinRM не создан, служба WinRM прослушивает локальные запросы через порт 47001.
Каждый скрипт WinRM должен начинаться с установки сеанса или подключения к компьютеру путем создания объекта Session . После создания сеанса можно использовать методы объекта Session , такие как Session.Enumerate или Session.Invoke , для получения данных или выполнения методов.
Создание сеанса во многом похоже на подключение к пространству имен инструментария управления Windows (WMI). По сути, сеанс — это слой, позволяющий отправлять и получать данные через сообщения SOAP и протокол WS-Management. Дополнительные сведения см. в разделе Протокол WS-Management.
Вызов метода WSMan.CreateSession для создания объекта Session запустит сеанс , который подключается к локальной системе WinRM.
Создание сеанса WSMan и получение данных
Создайте объект WSMan .
Set objWsman = CreateObject("Wsman.Automation")
Создайте сеанс, вызвав метод WSMan.CreateSession . Этот сеанс выполняется под вашим именем пользователя и паролем для входа и может получать данные через локальную систему WinRM.
Set objSession = objWsman.CreateSession()
Создайте URI ресурса, чтобы определить ресурс , которым вы хотите управлять или для которого требуется получить данные. Дополнительные сведения о форматировании URI см. в разделе URI ресурсов. Этот URI ресурса предназначен для конкретного экземпляра класса WMI Win32_Service , службы Winmgmt. Дополнительные сведения см. в статье Удаленное управление Windows и WMI.
strResource = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service?Name=Winmgmt"
Вызовите методы сеанса , которые получают или перечисляют данные с помощью URI ресурса. Дополнительные сведения см. в разделе API сценариев WinRM.
strResponse = objSession.Get(strResource) Wscript.Echo strResponse
Сведения о получении данных с другого компьютера или использовании других методов проверки подлинности и управлении ими см. в статье Получение данных с удаленного компьютера.
В следующем примере кода VBScript показан полный скрипт, который получает конкретный экземпляр Win32_Service WMI с именем "Winmgmt".
Set objWsman = CreateObject("Wsman.Automation")
Set objSession = objWsman.CreateSession()
strResource = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service?Name=Winmgmt"
strResponse = objSession.Get(strResource)
Wscript.Echo strResponse
В следующем примере кода VBScript показан полный скрипт с преобразованием данных. Дополнительные сведения см. в разделе Отображение выходных данных XML из скриптов WinRM.
Set objWsman = CreateObject("Wsman.Automation")
Set objSession = objWsman.CreateSession()
strResource = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service?Name=Winmgmt"
strResponse = objSession.Get(strResource)
Set xmlFile = CreateObject("MSXml.DOMDocument")
Set xslFile = CreateObject("MSXml.DOMDocument")
xmlFile.LoadXml(strResponse)
xslFile.Load("WsmTxt.xsl")
Wscript.Echo xmlFile.TransformNode(xslFile)
Связанные темы