Получение данных с удаленного компьютера

Можно получить данные или управлять ресурсами на удаленных компьютерах, а также на локальном компьютере. подключение к удаленному компьютеру в служба удаленного управления Windows сценария очень похоже на создание локального соединения. Данные экземпляра WMI доступны, и, если на удаленном компьютере установлено оборудование BMC, которое может обмениваться данными по протоколу WS-Management, то доступны также данные интеллектуального управления платформой (IPMI) . дополнительные сведения см. в разделе служба удаленного управления Windows и инструментарий WMI и удаленное управление оборудованием.

Может потребоваться создать объект ConnectionOptions , чтобы указать сведения о типе проверки подлинности, запрашиваемом для входа в систему.

Если учетная запись на удаленном компьютере имеет одинаковое имя пользователя и пароль для входа, необходимы только дополнительные сведения: транспорт, имя домена и имя компьютера. Из-за контроля учетных записей пользователейудаленная учетная запись должна быть учетной записью домена и членом группы администраторов удаленного компьютера. Если учетная запись является членом локальной группы "Администраторы", то UAC не разрешает доступ к службе WinRM. чтобы получить доступ к удаленной службе удаленного управления windows в рабочей группе, необходимо отключить фильтрацию контроля учетных записей для локальных учетных записей, создав следующую запись реестра DWORD и установив для нее значение 1: [ HKEY _ local _ MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ политики \ System ] LocalAccountTokenFilterPolicy.

Подключение к удаленному компьютеру с использованием имени пользователя и пароля для входа

  1. Укажите конечный компьютер с полным доменным именем или IP-адресом и назначьте его константе. Если указан IPv6-адрес, адрес должен быть заключен в квадратные скобки.

    Const RemoteComputer = "ComputerName.domain.com"
    
  2. Создайте объект WSMan .

    Set objWsman = CreateObject("WSMan.Automation")
    
  3. Создайте сеанс, указав транспорт, HTTP или HTTPS, и объедините его с константой, представляющей целевой компьютер.

    
    Set objSession = objWsman.CreateSession("https://" & RemoteComputer)
    

В следующем примере кода VBScript показан полный скрипт. Скрипт включает подпрограммы для преобразования данных из необработанного XML в удобочитаемую форму. Дополнительные сведения см. в разделе вывод XML-данных из скриптов WinRM.

Const RemoteComputer = "ComputerName.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_OperatingSystem"
Set objResponse = objSession.Enumerate(strResource)

While Not objResponse.AtEndOfStream
    DisplayOutput(objResponse.ReadItem) 
Wend

'****************************************************
' Displays WinRM XML message using built-in XSL
'****************************************************
Sub DisplayOutput(strWinRMXml)
    Dim xmlFile, xslFile
    Set xmlFile = CreateObject("MSXml.DOMDocument") 
    Set xslFile = CreateObject("MSXml.DOMDocument")
    xmlFile.LoadXml(strWinRMXml)
    xslFile.Load("WsmTxt.xsl")
    Wscript.Echo xmlFile.TransformNode(xslFile) 
End Sub

Подключение к удаленному компьютеру с помощью другой учетной записи

  1. Укажите конечный компьютер с полным доменным именем или IP-адресом и назначьте его константе. Если указан IPv6-адрес, адрес должен быть заключен в квадратные скобки.

    Const RemoteComputer = "ComputerName.domain.com"
    
  2. Создайте объект WSMan .

    Set objWsman = CreateObject("Wsman.Automation")
    
    
  3. Вызовите метод WSMan. креатеконнектионоптионс , чтобы создать объект ConnectionOptions . Учетная запись на удаленном компьютере должна быть членом группы администраторов локального компьютера.

    Set objConnectionOptions = objWsman.CreateConnectionOptions
    objConnectionOptions.UserName = "Username"
    objConnectionOptions.Password = "Password"
    
  4. В вызове WSman. CreateSession укажите соответствующие флаги подключения сеанса в параметре flags . Дополнительные сведения см. в разделе константы сеанса. Укажите конечный компьютер с полным именем компьютера или IP-адресом, а также транспортом — HTTP или HTTPS. Этот сценарий запрашивает проверку подлинности Kerberos из удаленной службы WinRM.

    В отличие от сценариев WMI, в сценариях WinRM можно использовать несколько методов проверки подлинности. Дополнительные сведения см. в разделе Проверка подлинности удаленных подключений.

    iFlags = objWsman.SessionFlagUseKerberos Or _
      objWsman.SessionFlagCredUserNamePassword
    Set objSession = objWsman.CreateSession("https://" & RemoteComputer, _
      iFlags, objConnectionOptions)
    
  5. После того как объект сеанса будет доступен, можно вызвать любой из методов объекта Session для получения данных для ресурса. Можно получить данные для любого ресурса, доступного на компьютере, на котором выполняется сеанс. Дополнительные сведения см. в разделе Получение данных с локального компьютера.

В следующем примере кода VBScript показан полный скрипт. Скрипт включает подпрограммы для преобразования данных из необработанного XML в удобочитаемую форму. Дополнительные сведения см. в разделе вывод XML-данных из скриптов WinRM. В скрипте указывается проверка подлинности Kerberos, но если удаленный компьютер находится в Рабочей группе, а не в домене, то при указании протокола Kerberos возникает ошибка.

Const RemoteComputer = "ComputerName.domain.com"

Set objWsman = CreateObject("Wsman.Automation")
Set objConnectionOptions = objWsman.CreateConnectionOptions
objConnectionOptions.UserName = "Username"
objConnectionOptions.Password = "Password"
iFlags = objWsman.SessionFlagUseKerberos Or _
  objWsman.SessionFlagCredUserNamePassword
Set objSession = objWsman.CreateSession("https://" & RemoteComputer, _
  iFlags, objConnectionOptions)
strResource = "http://schemas.microsoft.com/wbem/wsman/1/" & _
  "wmi/root/cimv2/Win32_OperatingSystem"
Set objResponse = objSession.Enumerate(strResource)

While Not objResponse.AtEndOfStream
    DisplayOutput(objResponse.ReadItem) 
Wend

'****************************************************
' Displays WinRM XML message using built-in XSL
'****************************************************
Sub DisplayOutput(strWinRMXml)
    Dim xmlFile, xslFile
    Set xmlFile = CreateObject("MSXml2.DOMDocument.3.0") 
    Set xslFile = CreateObject("MSXml2.DOMDocument.3.0")
    xmlFile.LoadXml(strWinRMXml)
    xslFile.Load("WsmTxt.xsl")
    Wscript.Echo xmlFile.TransformNode(xslFile) 
End Sub

о служба удаленного управления Windows

использование служба удаленного управления Windows

Windows Справочник по удаленному управлению