Получение данных с локального компьютера
Хотя протокол удаленного управления Windows и WS-Management явно предназначен для удаленного взаимодействия, установка сеанса на локальном компьютере является самым простым случаем. Для некоторых сценариев может потребоваться доступ к данным на локальном компьютере, а также на удаленных компьютерах.
WinRM версии 2.0:
Все операции считаются удаленными и служба WinRM должна быть запущена перед выполнением любой операции. Если удаленное назначение не указано, то localhost используется по умолчанию, и все операции будут отправлены в локальную службу WinRM. Дополнительные сведения о запуске службы WinRM см. в разделе Установка и Настройка для Удаленного Управления Windows.
При использовании службы WinRM для локальных операций следует учитывать следующие факторы:
- Локальная конфигурация WinRM может читаться только администраторами.
- Пространства имен WMI должны иметь разрешения на удаленное включение. Дополнительные сведения см. в статье Защита удаленного подключения WMI.
- Если прослушиватель WinRM не создан, служба WinRM прослушивает локальные запросы через порт 47001.
Каждый скрипт WinRM должен начинаться с установления сеанса или подключения к компьютеру путем создания объекта сеанса . После создания сеанса можно использовать методы сеанса сеанса, например Session.Enumerate или Session.Invoke для получения данных или выполнения методов.
Создание сеанса несколько похоже на подключение к пространству имен инструментария управления Windows (WMI). Сеанс по сути является слоем, который позволяет отправлять и получать данные через сообщения SOAP и протокол WS-Management. Дополнительные сведения см. в разделе WS-Management протокола.
Вызов метода WSMan.CreateSession для создания объекта сеанса запустит сеанс , который подключается к локальному 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 показан полный скрипт, который получает конкретный экземпляр WMI Win32_Service с именем 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)
Связанные разделы