РАЗДЕЛ
about_WMI_cmdlets
КРАТКОЕ ОПИСАНИЕ
Содержит общие сведения об инструментарии управления Windows (WMI)
и Windows PowerShell.
ПОЛНОЕ ОПИСАНИЕ
В этом разделе содержатся сведения о технологии WMI, командлетах
WMI для Windows PowerShell, удаленном взаимодействии с
использованием WMI, ускорителях WMI и устранении неполадок WMI.
Кроме того, в этом разделе приведены ссылки на более подробные
сведения о WMI.
Об инструментарии управления Windows (WMI)
Инструментарий управления Windows (WMI) представляет собой
подготовленную корпорацией Майкрософт реализацию технологий
WBEM (Web-Based Enterprise Management) - отраслевой инициативы
по разработке стандартной технологии работы с информацией
по управлению в корпоративной среде. В WMI для представления
систем, приложений, сетей, устройств и других управляемых
компонентов используется отраслевой стандарт CIM. Модель CIM
разрабатывается и поддерживается организацией Distributed
Management Task Force (DMTF). С помощью инструментария WMI
можно управлять как локальными, так и удаленными компьютерами.
Например, с помощью WMI можно выполнять следующие операции.
-- Запуск процесса на удаленном компьютере.
-- Удаленный перезапуск компьютера.
-- Получение списка установленных на локальном или удаленном
компьютере приложений.
-- Создание запросов к журналам событий Windows на локальном
или удаленном компьютере.
Командлеты WMI для Windows PowerShell
В Windows PowerShell функциональность WMI реализована с помощью
набора командлетов, которые доступны в Windows PowerShell
по умолчанию. С помощью этих командлетов можно выполнять
полный набор задач, необходимых для управления локальными
и удаленными компьютерами.
Доступны следующие командлеты WMI.
Командлет Описание
------------------ ----------------------------------------------
Get-WmiObject Получает экземпляры классов WMI либо
сведения о доступных классах.
Invoke-WmiMethod Вызывает методы WMI.
Register-WmiEvent Создает подписку на событие WMI.
Remove-WmiObject Удаляет классы WMI и экземпляры
этих классов.
Set-WmiInstance Создает или изменяет экземпляры
классов WMI.
Примеры команд
Следующая команда выводит сведения BIOS для
локального компьютера.
C:\PS> get-wmiobject win32_bios | format-list *
Следующая команда выводит сведения о службе WinRM для трех
удаленных компьютеров.
C:\PS> get-wmiobject -query "select * from win32_service
where name='WinRM'" -computername server01, server01,
server03
Следующая более сложная команда закрывает все
экземпляры программы.
C:\PS> notepad.exe
C:\PS> $np = get-wmiobject -query "select * from win32 _process where name='notepad.exe'"
C:\PS> $np | remove-wmiobject
Удаленное взаимодействие с использованием WMI
Хотя возможности управления с помощью WMI локальной системой
бывают полезны, именно поддержка удаленного взаимодействия
делает инструментарий WMI по-настоящему мощным средством администрирования.
В WMI для подключения к управляемым системам используется
модель DCOM корпорации Майкрософт. Чтобы сделать возможными
подключения DCOM, может потребоваться настроить некоторые
системы. Параметры брандмауэра и заблокированные разреения
DCOM могут препятствовать удаленному управлению системами
с помощью WMI.
Типизированные ускорители WMI
Windows PowerShell включает типизированные ускорители WMI. Эти типизированные
ускорители WMI позволяют быстрее обращаться к объектам WMI
по сравнению с нетипизированными ускорителями.
В WMI поддерживаются следующие типизированные ускорители.
[WMISEARCHER] - ускоритель для поиска объектов WMI.
[WMICLASS] - ускоритель для обращения к статическим
свойствам и методам класса.
[WMI] - ускоритель для получения одного экземпляра класса.
[WMISEARCHER] - это типизированный ускоритель для ManagementObjectSearcher.
Он принимает строковый конструктор и создает модуль поиска, с
помощью которого затем можно применять операцию GET().
Пример:
PS> $s = [WmiSearcher]'Select * from Win32_Process where Handlecount > 1000'
PS> $s.Get() |sort handlecount |ft handlecount,__path,name -auto
handlecount __PATH name
----------- ------ ----
1105 \\SERVER01\root\cimv2:Win32_Process.Handle="3724" powershell...
1132 \\SERVER01\root\cimv2:Win32_Process.Handle="1388" winlogon.exe
1495 \\SERVER01\root\cimv2:Win32_Process.Handle="2852" iexplore.exe
1699 \\SERVER01\root\cimv2:Win32_Process.Handle="1204" OUTLOOK.EXE
1719 \\SERVER01\root\cimv2:Win32_Process.Handle="1912" iexplore.exe
2579 \\SERVER01\root\cimv2:Win32_Process.Handle="1768" svchost.exe
[WMICLASS] - это типизированный ускоритель для ManagementClass.
У него имеется строковый конструктор, который принимает локальный или
абсолютный путь WMI к классу WMI и возвращает связанный с
этим классом объект.
Пример:
PS> $c = [WMICLASS]"root\cimv2:WIn32_Process"
PS> $c |fl *
Name : Win32_Process
__GENUS : 1
__CLASS : Win32_Process
__SUPERCLASS : CIM_Process
__DYNASTY : CIM_ManagedSystemElement
__RELPATH : Win32_Process
__PROPERTY_COUNT : 45
__DERIVATION : {CIM_Process, CIM_LogicalElement, CIM_ManagedSystemElement}
__SERVER : SERVER01
__NAMESPACE : ROOT\cimv2
__PATH : \\SERVER01\ROOT\cimv2:Win32_Process
[WMI] - это типизированный ускоритель для ManagementObject. У
него имеется строковый конструктор, который принимает
локальный или абсолютный путь WMI к экземпляру WMI и
возвращает связанный с этим экземпляром объект.
Пример:
PS> $p = [WMI]'\\SERVER01\root\cimv2:Win32_Process.Handle="1204"'
PS> $p.Name
OUTLOOK.EXE
Устранение неполадок WMI
Ниже описаны наиболее распространенные неполадки, которые могут
возникнуть при попытке подключения к удаленному компьютеру.
Неполадка 1. Удаленный компьютер не подключен к сети.
Если компьютер находится вне сети, подключиться к нему с помощью
WMI невозможно. При этом появляется следующее сообщение об
ошибке:
"Удаленный сервер не существует или недоступен"
При получении этого сообщения об ошибке проверьте, что компьютер
подключен к сети. Попробуйте выполнить проверку связи с
удаленным компьютером.
Неполадка 2. Отсутствуют права администратора на
удаленном компьютере.
Для удаленного использования WMI требуются права администратора
на удаленном компьютере. Если эти права отсутствуют, в доступе
к компьютеру будет отказано.
Чтобы проверить безопасность пространства имен, выполните
следующие действия.
a. Нажмите кнопку "Пуск", правой кнопкой мыши щелкните "Мой
компьютер" и выберите пункт "Управление".
b. В диалоговом окне "Управление компьютером" разверните
узел "Службы и приложения", щелкните правой кнопкой
мыши узел "Управляющий элемент WMI" и выберите пункт
"Свойства".
c. В диалоговом окне "Свойства: Управляющий элемент WMI"
перейдите на вкладку "Безопасность".
Неполадка 3. Брандмауэр блокирует доступ к удаленному компьютеру.
Инструментарий WMI использует для сетевого взаимодействия
протоколы DCOM и RPC (удаленный вызов процедур). По умолчанию
многие брандмауэры блокируют трафик DCOM и RPC. Если используемый
брандмауэр блокирует эти протоколы, осуществить удаленное
подключение не удастся. Например, "Брандмауэр Windows" в Microsoft
Windows XP с пакетом обновления 2 (SP2) автоматически настраивается
на блокировку всего нежелательного сетевого трафика, включая
трафик DCOM и WMI. В конфигурации по умолчанию "Брандмауэр
Windows" отклоняет все входящие запросы WMI; при этом
появляется следующее сообщение об ошибке:
"Удаленный сервер не существует или недоступен"
Дополнительные сведения о WMI
Дополнительные сведения об инструментарии WMI см. в следующих
разделах библиотеки MSDN (Microsoft Developer Network):
"Об инструментарии управления Windows (WMI)"
https://go.microsoft.com/fwlink/?LinkId=142212
"Устранение неполадок WMI"
https://go.microsoft.com/fwlink/?LinkId=142213
Кроме того, ознакомьтесь с разделом "Секреты WMI - устранение
неполадок и советы" в центре скриптов Microsoft TechNet:
https://go.microsoft.com/fwlink/?LinkId=142214
CМ. ТАКЖЕ
Интернет-версия: https://go.microsoft.com/fwlink/?LinkId=142219
Get-WmiObject
Invoke-WmiMethod
Register-WmiEvent
Remove-WmiObject
Set-WmiInstance