about_WMI_Cmdlets

Краткое описание

Содержит общие сведения об инструментарии управления Windows (WMI) и Windows PowerShell.

Подробное описание

В этом разделе содержатся сведения о технологии WMI, командлетах WMI для Windows PowerShell, удаленном взаимодействии на основе WMI, акселераторах WMI и устранении неполадок WMI. В этом разделе также содержатся ссылки на дополнительные сведения о WMI.

О WMI

Инструментарий управления Windows (WMI) разработан корпорацией Майкрософт в рамках отраслевой инициативы управления предприятием через Интернет (WBEM), целью которой является создание стандартной технологии получения доступа к информации по управлению в среде предприятия. В инструментарии WMI используется модель CIM — отраслевой стандарт, служащий для представления систем, приложений, сетей, устройств и других управляемых компонентов. Модель CIM разработана и обслуживается организацией Distributed Management Task Force (DMTF). WMI можно использовать для управления локальными и удаленными компьютерами. Например, для выполнения следующих действий можно использовать WMI:

  • Запустите процесс на удаленном компьютере.
  • Перезагрузите компьютер удаленно.
  • Получите список приложений, установленных на локальном или удаленном компьютере.
  • Запрос журналов событий Windows на локальном или удаленном компьютере.

КОМАНДЛЕТЫ WMI ДЛЯ WINDOWS POWERSHELL

Windows PowerShell реализует функции WMI с помощью набора командлетов, доступных в Windows PowerShell по умолчанию. Эти командлеты можно использовать для выполнения комплексных задач, необходимых для управления локальными и удаленными компьютерами.

Включены следующие командлеты WMI.

Командлет Description
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 для трех удаленных компьютеров.

$wql = "select * from win32_service where name='WinRM'"
get-wmiobject -query $wql -computername server01, server01, server03

Следующая более сложная команда завершает все экземпляры программы.

C:\PS> notepad.exe
C:\PS> $wql = "select * from win32_process where name='notepad.exe'"
C:\PS> $np = get-wmiobject -query $wql
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

count  __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. Может появиться следующее сообщение об ошибке:

Remote server machine does not exist or is unavailable

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

Проблема 2. У вас нет прав локального администратора на удаленном компьютере.

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

Чтобы проверить безопасность пространства имен, выполните следующее:

  1. Нажмите кнопку "Пуск", щелкните правой кнопкой мыши "Мой компьютер" и выберите пункт "Управление".
  2. В разделе "Управление компьютерами" разверните службы и приложения, щелкните правой кнопкой мыши элемент управления WMI и выберите пункт "Свойства".
  3. В диалоговом окне Свойства: элемент управления WMI перейдите на вкладку Безопасность .

Проблема 3. Брандмауэр блокирует доступ к удаленному компьютеру.

WMI использует протоколы DCOM (распределенный COM) и RPC (удаленный вызов процедур) для обхода сети. По умолчанию многие брандмауэры блокируют трафик DCOM и RPC. Если брандмауэр блокирует эти протоколы, подключение завершится ошибкой. Например, брандмауэр Windows в Microsoft Windows XP с пакетом обновления 2 (SP2) настроен для автоматического блокирования всего неопрошенного сетевого трафика, включая DCOM и WMI. В конфигурации по умолчанию брандмауэр Windows отклоняет входящий запрос WMI, и вы получите следующее сообщение об ошибке:

Remote server machine does not exist or is unavailable

См. также