Поделиться через


about_WMI_Cmdlets

Назначение: Windows PowerShell 2.0, Windows PowerShell 3.0

Вставьте сюда введение.

РАЗДЕЛ

about_WMI_cmdlets

КРАТКОЕ ОПИСАНИЕ

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

ПОДРОБНОЕ ОПИСАНИЕ

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

СВЕДЕНИЯ О WMI

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

запуск процесса на удаленном компьютере;

удаленный перезапуск компьютера;

получение списка приложений, установленных на локальном или удаленном компьютере;

запрос журналов событий Windows на локальном или удаленном компьютере.

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

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

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

      Cmdlet                 Description
      ------------------     ----------------------------------------------
      Get-WmiObject          Gets instances of WMI classes or information 
                             about the available classes.

      Invoke-WmiMethod       Calls WMI methods.

      Register-WmiEvent      Subscribes to a WMI event.

      Remove-WmiObject       Deletes WMI classes and instances.

      Set-WmiInstance        Creates or modifies instances of WMI classes.

ПРИМЕРЫ КОМАНД

Следующая команда отображает сведения о 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 поддерживаются следующие типы акселераторов.

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

          "Remote server machine does not exist or is unavailable"

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

Проблема 2.

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

Чтобы удаленно использовать WMI, необходимы права локального администратора на удаленном компьютере. Если у вас их нет, доступ к этому компьютеру не будет предоставлен.

Проверка безопасности пространства имен

а. Нажмите кнопку "Пуск", щелкните правой кнопкой мыши "Мой компьютер" и выберите "Управление".

б. В оснастке "Управление компьютером" разверните узел "Службы и приложения", щелкните правой кнопкой мыши "Управляющий элемент WMI" и выберите команду "Свойства".

в. В диалоговом окне "Свойства управляющего элемента WMI" щелкните вкладку "Безопасность".

Проблема 3.

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

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

          "Remote server machine does not exist or is unavailable"

Дополнительные сведения о WMI

Дополнительные сведения об инструментарии WMI см. в следующих разделах библиотеки MSDN (Microsoft Developer Network):

"Сведения о WMI:

https://go.microsoft.com/fwlink/?LinkId=142212

"Устранение неполадок WMI"

https://go.microsoft.com/fwlink/?LinkId=142213

См. также раздел "Секреты инструментария управления Windows — устранение неполадок и советы" на портале Microsoft TechNet Script Center:

https://go.microsoft.com/fwlink/?LinkId=142214

СМ. ТАКЖЕ

Версия в Интернете: https://go.microsoft.com/fwlink/?LinkId=142219

Get-WmiObject

Invoke-WmiMethod

Register-WmiEvent

Remove-WmiObject

Set-WmiInstance