Информационная схема CIM. Объектная модель WMI
Аннотация: Обсуждаются основные концепции информационной схемы Common Information Model (CIM) и ее реализации Windows Management Instrumentation (WMI) для операционной системы Microsoft Windows. Описывается трехуровневая архитектура WMI. Затрагиваются вопросы безопасности при работе с WMI
Информационная схема CIM. Объектная модель WMI
Среди инструментов и средств автоматизации в операционной системе Windows особое место занимает технология Windows Management Instrumentation ( WMI ). Технология WMI — это созданная фирмой Microsoft реализация модели управления предприятием на базе Web ( Web -Based Enterprise Management , WBEM ), которая разработана и принята рабочей группой по управлению распределенными системами ( Distributed Management Task Force , DMTF ), при участии таких компаний, как BMC Software , Cisco Systems, Intel и Microsoft. Задачей WBEM была разработка таких стандартов для удаленного управления информационной средой предприятия, которые позволили бы управлять всеми физическими и логическими компонентами этой среды из одной точки и не зависели бы при этом от конкретного оборудования, сетевой инфраструктуры, операционной системы, файловой системы и т. д. Для этого была предложена схема CIM (Common Information Model ), которая представляет физическую и логическую структуры компьютерной системы в виде единой расширяемой объектно-ориентированной информационной модели и определяет единые интерфейсы для получения информации о любом компоненте этой модели.
КАК ОТКЛЮЧИТЬ WMI Provider Host
Назначение и возможности WMI
В ранних версиях Windows (до Windows 2000) для администрирования операционной системы приходилось пользоваться несколькими утилитами и инструментами, т. к. данные о компонентах системы хранились в различных источниках (база пользователей SAM, журнал событий Event Log, системный реестр и т. д.), доступ к которым осуществлялся с помощью разных утилит (диспетчер пользователей — User Manager, просмотрщик журнала событий — Event Log Viewer, редактор реестра — Regedit) и программных интерфейсов (Network API для работы с данными о пользователях, Event Log API для просмотра сведений о произошедших событиях, Registry API для чтения или редактирования системного реестра). Понятно, что это было неудобно, т. к. во-первых, приходилось осваивать множество не связанных друг с другом технологий и инструментов, а во-вторых, усложнялось взаимодействие разных компонентов компьютерной системы друг с другом (например, настройки в локальном реестре рабочей станции могли конфликтовать с политиками безопасности, заданными на сервере).
С появлением Windows 2000 эта ситуация была в основном исправлена. Появилась встроенная в операционную систему консоль управления MMC (Microsoft Management Console), с помощью которой можно из одной точки управлять большинством логических и физических компонентов компьютерной сети, построенной на основе Windows. В свою очередь, это стало возможным именно благодаря применению технологии WMI, которая, во-первых, делает доступ к информации о самых различных компонентах информационной системы (журнал событий, системный реестр, подсистема производительности, драйверы устройств и т. д.) независимым от типа этих компонентов, а во-вторых, осуществляет управление любой подсистемой стандартным, не зависящим от реализации этой подсистемы, методом.
Что за процесс WmiPrvSE.exe (WMI Provider Host) и почему он грузит процессор
Итак, технология WMI — это глобальная концепция настройки, управления и слежения за работой различных частей корпоративной компьютерной сети. В частности, используя WMI, можно с помощью специальных утилит или сценариев Windows Script Host (WSH) решать следующие задачи.
- Управление различными версиями операционной системы Windows. С помощью сценариев WMI можно обращаться к системным счетчикам производительности, анализировать журналы событий (Event Logs), работать с файловой системой, установленными принтерами, управлять запущенными процессами и сервисами, просматривать и изменять настройки реестра, создавать и удалять совместно используемые ресурсы и т. д. При этом все операции можно выполнять одинаковым образом как на локальной, так и на удаленной машине.
- Управление ресурсами и службами сети. Сценарии WMI позволяют настраивать сетевые службы (DNS, DHCP и т. п.) и управлять сетевыми устройствами, поддерживающими технологию SNMP (Simple Network Management Protocol).
- Мониторинг состояния системы в реальном времени. Можно создавать сценарии-обработчики событий WMI, которые позволяют отслеживать и нужным образом обрабатывать события, связанные с теми или иными изменениями в информационной системе (например, появление определенной записи в журнале событий на локальном или удаленном компьютере, заполнение жесткого диска сервера до определенного предела, изменение определенного ключа в системном реестре и т. п.).
- Управление серверными приложениями Windows. С помощью WMI можно управлять различными приложениями Microsoft: Application Center, Operations Manager , Systems Management Server, Internet Information Server, Exchange Server, SQL Server.
Общая структура WMI
Архитектура WMI состоит из трех частей, показанных на рис. 10.1:
Управляемые объекты/ресурсы (managed resources) — любые логические или физические компоненты информационной системы, доступ к которым может быть получен с помощью WMI. В качестве управляемых ресурсов могут выступать, например, файлы на жестком диске, запущенный экземпляр приложения, системное событие, предоставленный в общее пользование ресурс, сетевой пакет или установленный в компьютере процессор.
Ядро WMI (WMI infrastructure). Это связующее звено архитектуры WMI, отвечающее за связь управляющих программ с управляемыми объектами. Ядро WMI, в свою очередь, можно разделить на три части: менеджер объектов CIM (Common Information Model Object Manager, CIMOM), репозиторий (хранилище классов и объектов) CIM и провайдеры WMI. Кроме этого, для доступа к WMI с помощью сценариев необходима специальная библиотека поддержки сценариев WMI (WMI scripting library), которая располагается в файле wbemdisp.dll в каталоге %SystemRoot%System32 Wbem .
Управляющие программы ( management applications ), которые являются потребителями сервисов WMI. В качестве потребителей могут выступать полновесные Win32-приложения, Web-приложения, сценарии WSH или другие инструменты администрирования, с помощью которых происходит доступ к управляемым объектам посредством WMI.
Рис. 10.1. Архитектура WMI
Отметим, что управляющие программы (потребители) различных типов применяют разные механизмы для доступа к WMI, т. е. используют разные интерфейсы прикладного программирования (Application Programming Interface, API). Программы Win32 могут взаимодействовать с WMI напрямую, используя для этого WMI COM API — главный API управления. ActiveX-компоненты WMI реализуют API другого уровня: разработчики Web-приложений применяют средства управления ActiveX для создания сетевых интерфейсов к данным WMI. Еще один способ управления WMI предполагает использование сценариев WSH с помощью специального API WMI для сценариев (такие сценарии мы иногда будем называть просто сценариями WMI).
Ядро WMI
Ядро WMI составляют провайдеры WMI, менеджер объектов CIM и репозиторий CIM . Рассмотрим эти компоненты более подробно.
Провайдеры WMI
Провайдеры WMI обеспечивают связь между менеджером объектов CIM и управляемыми ресурсами: провайдеры предоставляют для CIMOM данные об управляемом объекте, обрабатывают запросы от управляющих программ и генерируют сообщения о наступлении определенных событий (см. рис. 10.1).
При этом провайдер WMI общается с управляемым объектом с помощью специфического API этого объекта, а с CIMOM — посредством стандартного интерфейса прикладного программирования WMI (WMI API). Таким образом, провайдеры скрывают детали внутренней реализации управляемых объектов, позволяя CIMOM обращаться к этим объектам единообразно, используя один и тот же WMI API.
Фактически провайдеры WMI являются серверами COM или DCOM, которые представлены динамическими библиотеками (DLL), находящимися чаще всего в каталоге %SystemRoot%System32 Wbem . WMI включает в себя множество встроенных (стандартных) провайдеров для операционных систем Windows 2000, Windows XP и Windows Server 2003, которые предназначены для получения данных из известных системных источников таких, как подсистема Win32, журналы событий, системный реестр, системные счетчики производительности. В табл. 10.1 приведено описание некоторых стандартных провайдеров, которые присутствуют во всех ранее перечисленных операционных системах.
Провайдер каталога Active Directory(Active Directory provider) | Dsprov.dll | Позволяет обращаться к объектам Active Directory как к объектам WMI |
Провайдер журнала событий (Event Log provider) | Ntevt.dll | Обеспечивает управление журналом событий (выборка по определенному критерию записей для чтения, создание резервных копий и очистка журнала, изменение настроек и т. д.). Также этот провайдер позволяет обрабатывать события, генерируемые журналом (например, добавление в журнал записи определенного типа) |
Провайдер системных счетчиков производительности (Perfomance Counter provider) | Wbemperf.dll | Обеспечивает доступ к счетчикам производительности, т. е. к данным, позволяющим численно оценивать производительность системы |
Провайдер реестра (Registry provider) | Stdprov.dll | Позволяет читать данные из реестра, создавать и модифицировать там ключи и разделы. Кроме этого, провайдер обеспечивает генерацию события WMI при изменении определенного ключа или ветви реестра |
Провайдер SNMP-устройств (SNMP provider) | Snmpincl.dll | Является шлюзом для доступа к системам и устройствам, которые управляются с помощью протокола SNMP (Simple Network Management Protocol) |
Провайдер драйверов устройств ( WDM provider) | Wmiprov.dll | Позволяет получить доступ к информации низкого уровня о драйверах устройств Windows Driver Model ( WDM ); в качестве таких устройств могут выступать, например, порты ввода/вывода или сетевые платы |
Провайдер подсистемы Win32 (Win32 provider) | Cimwin32.dll | Обеспечивает доступ к информации о компьютере, операционной системе, подсистеме безопасности, дисках, периферийных устройствах, файловых системах, файлах, папках, сетевых ресурсах, принтерах, процессах, сервисах и т. п. |
Провайдер инсталлированных программных продуктов (Windows Installer provider) | Msiprov.dll | Позволяет получить информацию об инсталлированном программном обеспечении |
Технология WMI позволяет также создавать и устанавливать провайдеры сторонних поставщиков, с помощью которых можно будет, скажем, через WMI получать информацию о каких-то специфических устройствах или службах. Отметим, что свои провайдеры WMI имеются в таких продуктах Microsoft, как Application Center, Operations Manager , Systems Management Server, Internet Information Server, Exchange Server, SQL Server.
Менеджер объектов CIM
Задачей менеджера объектов CIM (CIMOM) является обеспечение взаимодействия между потребителями сервисов WMI (управляющими приложениями) и провайдерами WMI (см. рис. 10.1). CIMOM обрабатывает все запросы, которые поступают от управляющих приложений к WMI, и обеспечивает доставку к этим приложениям информации, полученной в результате выполнения таких запросов. Детальное описание функций CIMOM приведено далее.
- Регистрация провайдеров. Все провайдеры WMI должны быть зарегистрированы с помощью CIMOM; информация о провайдере (например, тип этого провайдера или путь к библиотеке DLL, которой он представлен) хранится в репозитории CIM .
- Переадресация запросов. Используя информацию о зарегистрированных провайдерах, CIMOM перенаправляет полученный от управляющего приложения запрос к нужному провайдеру.
- Доступ к удаленной машине с WMI. Управляющее приложение может обратиться с запросом к любой удаленной машине, на которой установлен WMI. При этом происходит соединение с CIMOM на удаленной машине, после чего все запросы здесь должны обрабатываться точно так же, как и на локальной машине.
- Обеспечение безопасности. Защита ресурсов WMI состоит в том, что CIMOM проверяет права пользователя, который пытается воспользоваться сервисами WMI на локальном или удаленном компьютере.
- Обработка запросов управляющих приложений. Потребители WMI обращаются к управляемым объектам с помощью специального языка запросов WMI Query Language (WQL). Если провайдер запрашиваемого объекта не поддерживает напрямую WQL, то CIMOM должен преобразовать этот запрос к тому виду, в котором он сможет быть обработан этим провайдером.
- Обработка событий WMI. Поддержка CIMOM этой функции позволяет потребителям WMI создавать обработчики событий, которые возникают при определенном изменении в управляемом объекте (примеры таких событий — снижение объема свободного пространства на жестком диске до заданного значения или запуск на компьютере определенного приложения). Для этого CIMOM периодически опрашивает нужный объект (интервал опроса задается в управляющем приложении) и генерирует событие как только обнаруживает, что заданное заранее условие возникновения события выполнено.
В Windows функциональность менеджера CIM обеспечивает файл winmgmt.exe, который находится в каталоге %SystemRoot%System32 Wbem (этот файл запускается как сервис).
Источник: intuit.ru
Инструментарий управления Windows (WMI)
Windows инструментарий управления (WMI) — это инфраструктура для управления данными и операциями с операционными системами на основе Windows. Вы можете создавать скрипты или приложения WMI для автоматизации административных задач на удаленных компьютерах, но WMI также предоставляет данные управления другим частям операционной системы и продуктов, например System Center Operations Manager (ранее Microsoft Operations Manager (MOM)) или Windows удаленному управлению (WinRM).
Эта документация предназначена для разработчиков и ИТ-администраторов. Если вы являетесь конечным пользователем, который столкнулся с сообщением об ошибке wMI, перейдите к служба поддержки Майкрософт и найдите код ошибки, который отображается в сообщении об ошибке. Дополнительные сведения об устранении неполадок с скриптами WMI и службой WMI см. в статье WMI не работает!
WMI полностью поддерживается корпорацией Майкрософт. Однако последняя версия административных сценариев и управления доступна через инфраструктуру управления Windows (MI). MI полностью совместим с предыдущими версиями WMI, и он предоставляет множество функций и преимуществ, которые упрощают проектирование и разработку поставщиков и клиентов. Дополнительные сведения см. в разделе Windows Management Infrastructure (MI).
Где применимо WMI?
WMI можно использовать во всех Windows приложениях, которые наиболее полезны в корпоративных приложениях и административных скриптах.
Системные администраторы могут найти сведения об использовании WMI в различных книгах по WMI. Дополнительные сведения см. в разделе «Дополнительные сведения».
Аудитория разработчиков
Инструментарий WMI предназначен для программистов, использующих C/C++, приложение Microsoft Visual Basic или язык сценариев, на Windows и обрабатывающий объекты Microsoft ActiveX. Хотя некоторые знания о программировании COM полезны, разработчики C++, которые пишут приложения, могут найти хорошие примеры для начала работы с созданием приложения WMI с помощью C++.
Сведения о разработке поставщиков управляемых кода или приложений в C# или Visual Basic .NET с помощью платформа .NET Framework см. в разделе WMI в платформа .NET Framework.
Многие администраторы и ИТ-специалисты получают доступ к WMI через PowerShell. Командлет Get-WMI для PowerShell позволяет получить сведения для локального или удаленного репозитория WMI. Таким образом, ряд разделов и классов, особенно в разделе «Создание клиентов WMI «, содержат примеры PowerShell. Дополнительные сведения об использовании PowerShell см. в Windows PowerShell.
Требования к среде выполнения
Дополнительные сведения о том, какая операционная система требуется для использования определенного элемента API или класса WMI, см. в разделе «Требования» каждого раздела в документации по WMI.
Для создания скриптов или приложений для WMI не требуется скачивать или устанавливать определенную разработку программного обеспечения (SDK). Однако существуют некоторые средства администрирования WMI, которые разработчики находят полезными. Дополнительные сведения см. в разделе «Загрузки» в разделе «Дополнительные сведения».
В этом разделе
Сведения о WMI | Общие сведения о WMI. |
Использование WMI | Сведения о разработке приложений для использования инструментария WMI, который содержит сведения о средствах. |
Справочник по WMI | Документация по классам WMI, классам WMI C++, COM API WMI, API скриптов и другим справочным материалам по WMI. |
Глоссарий WMI | Windows инструментарий управления (WMI) использует собственную коллекцию терминов. Многие из этих терминов знакомы разработчикам, но имеют новые или измененные определения в среде WMI. |
Источник: learn.microsoft.com
WMIC. Краткий обзор возможностей
Windows Management Instrumentation (WMI) — инструментарий управления Windows.
Инструментарий WMI, основанный на CIM, является открытой унифицированной системой интерфейсов доступа к любым параметрам операционной системы , устройствам и приложениям, которые функционируют в ней, и используется для централизованного управления и слежения за работой различных частей компьютерной инфраструктуры под управлением платформы Windows.
Предположим что мы не имеем понятия к каким свойствам класса BIOS мы можем обратиться. Что бы просмотреть список всех доступных свойств, средствами CMD, введите следующую команду:
wmic BIOS get /?
Аналогично можно вызвать справку для любого класса WMI
Алиасы
Хочу обратить внимание на то, что для удобства в консольной утилите WMIC, мы работаем не напрямую с классами WMI, а с их алиасами
# Все алиасы мы видим когда набираем wmic /? # Или отдельно выводим их на экран wmic alias list brief
Форматирование вывода
Так как по умолчанию wmic возвращает не форматированный ответ, то если не определить форматирование вручную, мы увидим хаотически разбросанные по окну консоли слова:
Весьма информативно, не правда ли?
Для того что бы получить читаемый вывод, попробуйте использовать такую команду:
wmic BIOS list brief
Параметр brief выводит список основных параметров.
Обычно не более 6 столбцов
Все типы форматов я смотрю такой командой:
wmic OS get /format /?
Можно использовать функцию /format, с любым доступным типом формата:
wmic BIOS get /format:list
Такой же вывод, как и в предыдущей команде, можно получить и следующим образом:
wmic BIOS list full
Запуск и завершение приложений
wmic process call create ‘notepad.exe’
wmic process where name=’notepad.exe’ delete
Выполнение команды wmi на удаленных хостах
wmic /node:’Server’ OS get Caption
Примеры WMI команд
Получить модель материнской платы
wmic baseboard get product,manufacturer,version,serialnumber
Узнать разрядность системы
wmic /Node:%ComputerName% Path Win32_Processor Get AddressWidth /format:list # Аналог команды для PoSh ( Get-WmiObject Win32_OperatingSystem ).OSArchitecture
Получить программы из автозагрузки
wmic startup list brief
Узнать имя активного пользователя
wmic /node:%ComputerName% path Win32_ComputerSystem get username
Просмотр списка пользователей компьютера
wmic useraccount list full
Просмотр списка принтеров удаленного компьютера
wmic /node:’Host0042′ printer get name
Получить информацию по оперативной памяти
wmic memorychip get BankLabel, DeviceLocator, Capacity, Speed
Источник: administra.top
Программа wmi что это
Windows Management Instrumentation (WMI) в дословном переводе — инструментарий управления Windows. WMI — это одна из базовых технологий для централизованного управления и слежения за работой различных частей компьютерной инфраструктуры под управлением платформы Windows.
- 1 Обзор
- 2 Классы, события и безопасность WMI
- 3 Средства работы с WMI
- 4 Язык запросов WMI
- 5 Использованная литература
- 6 См. также
Обзор [ ]
Технология WMI — это расширенная и адаптированная под Windows реализация стандарта на англ.), принятого многими компаниями, в основе которого лежит идея создания универсального интерфейса мониторинга и управления различными системами и компонентами распределенной информационной среды предприятия с использованием объектно-ориентированных идеологий и протоколов HTML и XML.
В основе структуры данных в WBEM лежит Common Information Model (CIM), реализующая объектно-ориентированный подход к представлению компонентов системы. CIM является расширяемой моделью, что позволяет программам, системам и драйверам добавлять в неё свои классы, объекты, методы и свойства.
WMI, основанный на CIM, также является открытой унифицированной системой интерфейсов доступа к любым параметрам операционной системы, устройствам и приложениям, которые функционируют в ней.
Важной особенностью WMI является то, что хранящиеся в нём объекты соответствуют динамическим ресурсам, то есть параметры этих ресурсов постоянно меняются, поэтому параметры таких объектов не хранятся постоянно, а создаются по запросу потребителя данных. Хранилище свойств объектов WMI называется репозиторием и расположено в системной папке операционной системы Windows:
%SystemRoot%System32WBEMRepository
Классы, события и безопасность WMI [ ]
Так как WMI построен по объектно-ориентированному принципу, то все данные операционной системы представлены в виде объектов и их свойств и методов.
Все классы группируются в пространства имен, которые иерархически упорядочены и логически связаны друг с другом по определенной технологии или области управления. В WMI имеется одно корневое пространство имен Root, которое в свою очередь имеет 4 подпространства: CIMv2, Default, Security и WMI.
Классы имеют свойства и методы и находятся в иерархической зависимости друг от друга, то есть классы-потомки могут наследовать или переопределять свойства классов-родителей, а также добавлять свои свойства.
Свойства классов используются для однозначной идентификации экземпляра класса и для описания состояния используемого ресурса. Обычно все свойства классов доступны только для чтения, хотя некоторые из них можно модифицировать определенным методом. Методы классов позволяют выполнить действия над управляемым ресурсом.
К каждому экземпляру класса можно обратиться по полному пути, который имеет следующую структуру:
[\ComputerNameNameSpace][:ClassName][.KeyProperty1=Value1][,KeyProperty2=Value2]…] где ComputerName – имя компьютера NameSpace – название пространства имен ClassName – имя класса KeyProperty1=Value1, KeyProperty2=Value2 – свойства объекта и значение по которому он идентифицируется.
Пример обращения к процессу с именем «Calc.exe», который запущен на локальной машине:
\.CIMv2:Win32_Process.Name=»Calc.exe»
Экземпляры классов могут генерировать события, к которым можно подписываться. При наступлении события WMI автоматически создает экземпляр того класса, которому соответствует это событие. Такой механизм удобно использовать для выполнения определенной команды при наступлении определенного события, то есть следить за состоянием объектов операционной системы.
Общая безопасность в WMI реализуется на уровне операционной системы, а дополнительная политика безопасности основана на уровнях пространств имен и протокола DCOM. То есть если пользователь не имеет права делать какое-то действие через операционную систему, он не сможет это сделать и через WMI. Если же пользователю дано какое-то право в операционной системе, то это ещё не означает, что это право будет и в WMI, так как в WMI действуют дополнительные параметры безопасности на уровне пространств имен.
Каждый объект операционной системы имеет своё описание безопасности (SD) со своим списком доступа (ACL), в котором перечислены идентификаторы пользователей (SID) и их привилегии. Каждое пространство имен может иметь собственное SD со своим ACL, где пользователям могут быть назначены разрешения на чтение данных, выполнение методов, запись классов и данных и другие. Данные о дополнительных разрешениях хранятся в репозитории WMI. Отдельные классы из пространств имен не имеют собственных описаний безопасности, они наследуют их от своего пространства имен.
По умолчанию администратор компьютера имеет полные права на использование WMI, а остальные пользователи могут лишь вызывать методы, считывать данные и записывать в репозиторий экземпляры классов провайдеров WMI.
Для доступа к инфраструктуре WMI используется протокол DCOM, через который пользователь подключается к WMI. Чтобы определить, какие права будут у подключившегося пользователя, используется механизмы олицетворения и аутентификации протокола DCOM.
Уровни олицетворения могут принимать следующие значения:
Anonymous | Анонимный | WMI-объект не может получить информацию о пользователе — доступ по такому типу не предоставляется |
Identify | Идентификация | WMI-объект запрашивает |
None | Отсутствует | Проверка подлинности отсутствует |
Default | По умолчанию | Стандартные настройки безопасности, которые задаются компьютером-целью команды |
Connect | Подключение | Проверка только во время подключения к компьютеру-цели команды, проверка в ходе работы отсутствует |
Call | Вызов | Проверка подлинности при каждом запросе к компьютеру-цели команды, заголовки пакетов подписываются, но содержимое не шифруется |
Pkt | Пакет | Проверка подлинности всех пакетов к компьютеру-цели команды, заголовки пакетов подписываются, но содержимое не шифруется |
PktIntegrity | Целостность пакета | Проверка подлинности и целостности всех пакетов к компьютеру-цели команды, заголовки пакетов подписываются, но содержимое не шифруется |
PktPrivacy | Секретность пакета | Проверка подлинности и целостности всех пакетов к компьютеру-цели команды, заголовки и содержимое пакетов подписываются и шифруются |
Средства работы с WMI [ ]
wmimgmt.msc — оснастка консоли управления MMC для настройки WMI на локальном компьютере.
winmgmt.exe — консольная утилита управления WMI локального компьютера.
wbemtest.exe — графическая утилита для взаимодействия со структурой WMI на локальном или удаленном компьютере.
wmic.exe — консольная утилита для взаимодействия со структурой WMI на локальном или удаленном компьютере.
mofcomp.exe — компилятор MOF-файлов для расширения структуры WMI, управления библиотекой классов WMI и восстановления репозитория.
Язык запросов WMI [ ]
Для обращения к объектам WMI используется специфический язык запросов WMI Query Language (WQL), который является одной из разновидностей SQL. Основное его отличие от ANSI SQL — это невозможность изменения данных, то есть с помощью WQL возможна лишь выборка данных с помощью команды SELECT. Помимо ограничений на работу с объектами, WQL не поддерживает такие операторы как DISTINCT, JOIN, ORDER, GROUP, математические функции. Конструкции IS и NOT IS применяются только в сочетании с константой NULL.
Запросы WQL обычно применяются в скриптах, но их также можно протестировать в программе Wbemtest и в консольной утилите Wmic (утилита wmic не требует написания ключевого слова SELECT и полей выборки)
Использованная литература [ ]
- Ошибка скрипта: Модуля «String» не существует.Windows Management Instrumentation (26 апреля 2010). Архивировано из первоисточника 12 марта 2012.
См. также [ ]
Источник: microsoft.fandom.com
Как работать с WMI в Powershell
WMI (Windows Management Instrumentation) — это технология, с помощью которой можно получить и изменить достаточно широкий перечень параметров Windows.
Для примера мы хотим узнать информацию о процессоре. Мы можем использовать команду CMD sysinfo или Powershell Get-ComputerInfo, но увидеть только часть информации. С помощью WMI мы можем получить почти всю информацию.
Для получения всех классов WMI в Powershell мы можем использовать:
Get-WmiObject -List
Мы получим все классы для пространства имен rootcimv2 т.к. оно стоит по умолчанию. Если мы хотим использовать другое, то его нужно указать с ключом -Namespace.
Одной из особенностей этого командлета является, что мы можем получить все классы и свойства и исполнить методы на удаленном компьютере:
Get-WmiObject -List -ComputerName CL1
Где:
-ComputerName — имя компьютера
WMI работает на 135 порту, а так же привилегированная учетная запись с правами на WMI и DCOM.
Либо у нас должен работать PSRemoting (тогда мы будем использовать Ivoke-Command). Весь процесс описан тут.
Навигация по посту
- Получение свойств
- Поиск по свойствам
- Удаленное и локальное выполнение методов
Получение свойств класса через Powershell WMI
Если мы еще не знаем какой класс нам нужен, а вывод очень большой, то мы можем немного отфильтровать результат. На примере я искал классы где в имени есть BIOS:
Get-WmiObject -List | where
Если мы выведем свойства класса операционной системы, то не увидим названия:
Get-WmiObject -Class Win32_OperatingSystem
Часть свойств можно получить и так:
[wmiclass]»Win32_OperatingSystem» | Get-Member
Для того что бы отобразить все свойства нужно выполнить:
Get-WmiObject -Class Win32_OperatingSystem | Select-Object -Property *
Либо можно объявить результат в переменную:
$result = Get-WmiObject -Class Win32_OperatingSystem
Получить все значения переменной:
$result | Get-Member
И затем вызывать через переменную. Так я получу название:
$result.Caption
Поиск свойств в Powershell WMI
У нас два способа поиска нужных свойств. Первый через ключ -Filter:
Get-WmiObject -List | where Get-WmiObject -Class Win32_Share -Filter «Status = ‘OK'»
Но если мы напишем что-то не так, то увидим язык WQL (WMI Query Language):
Get-WmiObject : Invalid query «select * from Win32_Share where Status1 = ‘OK'»
Т.е. мы можем писать и запрос WQL:
Get-WmiObject -Query «SELECT * FROM Win32_share WHERE Status=’OK'»
Вызов методов WMI через Powershell
Этот метод запустит Notepad.exe на удаленном компьютере AD. В $cred будут храниться учетные данные, если мы будем запускать процесс под другим пользователем.
$cred = Get-Credential $process = Get-WmiObject -Query «SELECT * FROM Meta_Class WHERE __Class = ‘Win32_Process'» ` -Namespace «rootcimv2» -Computername ‘AD’ -Credential $cred $process.Create( «notepad.exe» )
Есть другой подход, с другой командой:
Invoke-WmiMethod -Path win32_process -Name create -ArgumentList notepad.exe
Отмечу, что вызвать процесс в графической оболочке нельзя, он будет запущен в бэкграунде. Связано это с тем, что Microsoft против что бы вторгались в интерактивный сеанс пользователя кому-либо (не моя цитата). Один из вариантов решения этого помещать задачи в планировщике.
Для того что бы увидеть остальные команды по работе с WMI в Powershell можно запустить:
Get-Command -Noun *WMI*
Что бы увидеть примеры использования или получить справку:
Get-help Invoke-WmiMethod -Examples
Источник: fixmypc.ru