Windows Удаленное управление и инструментарий WMI

Windows удаленное управление можно использовать для получения данных, предоставляемых инструментарий управления Windows (WMI) (WMI и MI). Данные WMI можно получить с помощью скриптов или приложений, использующих API-интерфейсы WinRM или с помощью программы командной строки WinRM .

WinRM поддерживает большинство знакомых классов и операций WMI, включая внедренные объекты. WinRM может использовать инструментарий WMI для получения данных о ресурсах или управлении ресурсами в операционной системе на основе Windows. Это означает, что вы можете получать данные об объектах, таких как диски, сетевые адаптеры, службы или процессы в Организации, с помощью существующего набора классов WMI. Вы также можете получить доступ к данным оборудования, доступным в стандартном поставщике IPMIWMI.

Определение ресурса WMI

Вы можете ссылаться на класс WMI в качестве ресурса в WinRM и в протоколе WS-Management: тип управляемого объекта, например службы или диска.

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

Создание префикса URI для классов WMI

Префикс URI содержит фиксированную часть и пространство имен WMI. например, префикс URI в Windows Server, содержащий фиксированную часть префикса: http://schemas.microsoft.com/wbem/wsman/1/wmi/<WmiNamespace> . Это позволяет создать префикс URI для любого пространства имен WMI. Например, чтобы получить доступ к корневому пространству имен WMI \ по умолчанию , используйте следующий префикс URI: http://schemas.microsoft.com/wbem/wsman/1/wmi/root/default/ .

Большинство классов WMI для управления находятся в корневом пространстве имен \ CIMV2 . Чтобы получить доступ к классам и экземплярам в корневом пространстве имен \ CIMV2 , используйте префикс URI: http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/ . Дополнительные сведения см. в разделе URI ресурсов.

Создание полного URI для классов WMI

Предоставленный универсальный код ресурса (URI) для программы командной строки WinRM или скрипта состоит из префикса и спецификации ресурсов.

В следующей процедуре описывается создание URI ресурса для получения класса WMI или для использования в операции перечисления.

Создание URI ресурса для класса WMI

  1. Начните с префикса, указывающего на необходимость использования схемы протокола WS-Management.

    https://schemas.microsoft.com/wbem/wsman/1

    Префикс URI ресурса для классов WMI всегда совпадает. Дополнительные сведения см. в разделе префиксы URI.

  2. Добавьте пространство имен WMI к префиксу.

    http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/

  3. Добавьте имя класса.

    http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32\_Service

  4. Чтобы задать значение свойства или вызвать конкретный метод, добавьте требуемое значение ключа или значения для класса.

    http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32\_Service?Name=Winmgmt

    Если оставить значение ключа пустым, исходное значение свойства не будет изменено.

    Примечание

    Если оставить значение ключа пустым, значение свойства будет равно null.

Поиск ресурса WMI с помощью WinRM

данные WMI можно получить с помощью программы командной строки, Winrm или скрипта Visual Basic, использующего API-интерфейс для сценариев Winrm. Не используйте путь WMI для поиска ресурса. Вместо этого необходимо преобразовать пространство имен и иерархию WMI в универсальный код ресурса (URI).

URI WinRM для класса WMI содержит две части: префикс URI и класс, к которому требуется получить доступ.

Например, следующий универсальный код ресурса (URI) может быть передано методу Session. Enumerate для вывода списка всех служб на компьютере. Префикс URI — http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/ , а класс — _ служба Win32.

strResourceUri = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_CurrentTime"

В инструментарии WMI перечислите данные для всех экземпляров ресурса или класса несколькими способами.

В WinRM существует один способ перечисления всех экземпляров ресурса: Session. Enumerate.

strResource = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service"
Set colServices = objSession.Enumerate( strResource )

Поиск конкретного экземпляра ресурса WMI

В инструментарии WMI можно назначить определенный экземпляр класса либо путем указания значений для ключевых свойств, либо путем запроса экземпляра, который соответствует списку значений свойств. Ключевые свойства имеют квалификатор ключаWMI.

Получить конкретный экземпляр класса можно несколькими способами.

  • Вызов Session. Enumerate с параметрами Filter и диалект для создания запроса.

    RemoteComputer = "servername.domain.com"
    strDialect = "http://schemas.microsoft.com/wbem/wsman/1/WQL"
    strResource = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/*"
    Set objWsman = CreateObject("Wsman.Automation")
    Set objSession = objWsman.CreateSession("https://" & RemoteComputer)
    
    strFilter = "SELECT * FROM Win32_Share WHERE Name='Admin$'"
    Set objResultSet = objSession.Enumerate(strResource, strFilter, strDialect)
    
  • Вызов SwbemServices. Get. Для сеанса. Getнеобходимо указать одно или несколько конкретных ключевых значений, перед которыми стоит вопросительный знак (?).

    Формат URI для конкретного экземпляра — http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/WMI\_Class?Key1=Value .

    strResourceUri = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Service?Name=winmgmt"
    

    Класс WMI может иметь более одного ключа. Пары "имя-значение" ключа разделяются знаком "+". В этом случае используется формат: http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32\_Service?Key1=Value1+Key2=Value2 .

    Синтаксис WinRM для получения Singleton-объекта WMI отличается от WMI. Singleton — это класс WMI, определенный таким образом, что допускается только один экземпляр. Win32 _ CurrentTime или Win32 _ вмисеттинг являются примерами одноэлементного класса WMI.

    Синтаксис WMI для Singleton показан в следующем примере кода VBScript.

    Set TimeObject = objWMIService.Get("Win32_CurrentTime=@")
    

    В следующем примере показан одноэлементный синтаксис WinRM, в котором не используется символ "@".

    strResourceUri = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_CurrentTime"
    
  • Добавление селектора к объекту ResourceLocator или ивсманресаурцелокатор .

    В следующем примере кода VBScript показано, как использовать селектор для получения конкретного экземпляра _ процессора Win32.

    strUri = "http://schemas.microsoft.com/wbem/wsman/1/wmi/root/cimv2/Win32_Processor"
    Set objWsman = CreateObject("Wsman.Automation")
    Set Session = objWsman.CreateSession
    Set Locator = objWsman.CreateResourceLocator(strUri)
    Locator.AddSelector "DeviceID", "CPU0"
    

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

Префиксы URI

URI ресурсов

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