РАЗДЕЛ 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)" http://go.microsoft.com/fwlink/?LinkId=142212 "Устранение неполадок WMI" http://go.microsoft.com/fwlink/?LinkId=142213 Кроме того, ознакомьтесь с разделом "Секреты WMI - устранение неполадок и советы" в центре скриптов Microsoft TechNet: http://go.microsoft.com/fwlink/?LinkId=142214 CМ. ТАКЖЕ Интернет-версия: http://go.microsoft.com/fwlink/?LinkId=142219 Get-WmiObject Invoke-WmiMethod Register-WmiEvent Remove-WmiObject Set-WmiInstance