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


Invoke-CMWmiQuery

Выполните запрос WMI.

Синтаксис

Invoke-CMWmiQuery
      [-Context <Hashtable>]
      [-Option <QueryOptions>]
      [-Query] <String>
      [-DisableWildcardHandling]
      [-ForceWildcardHandling]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-CMWmiQuery
      -ClassName <String>
      [-Context <Hashtable>]
      [-Option <QueryOptions>]
      -Search <SmsProviderSearch>
      [-DisableWildcardHandling]
      [-ForceWildcardHandling]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

Описание

Командлет Invoke-CMWmiQuery выполняет запрос инструментария управления Windows (WMI). В отличие от других командлетов запросов или средств, с помощью этого командлета подключение и пространство имен уже настроены для вас.

Этот командлет также можно использовать для создания запроса с использованием языка запросов WMI (WQL). Configuration Manager использует WQL для запросов в коллекциях. WQL похож на SQL, но по-прежнему использует поставщик SMS, поэтому соблюдает управление доступом на основе ролей.

Примечание.

Выполните командлеты Configuration Manager с диска сайта Configuration Manager, например PS XYZ:\>. Дополнительные сведения см. в статье Начало работы.

Примеры

Пример 1. Выполнение WQL-запроса

Первая команда создает запрос WQL и сохраняет его в переменной $WQL . Вторая команда выполняет запрос, хранящийся в переменной.

$WQL = @"
SELECT app.* FROM SMS_ApplicationLatest AS app
INNER JOIN SMS_CIContentPackage AS con ON app.CI_ID=con.CI_ID
INNER JOIN SMS_DistributionPoint AS srv ON con.PackageID=srv.PackageID
WHERE app.IsHidden = 0
"@

Invoke-CMWmiQuery -Query $WQL -Option Lazy

Пример 2. Выполнение запроса WMI для коллекций устройств

Первая команда создает объект поиска и сохраняет его в переменной $Search .

Вторая команда указывает, что порядок поиска возрастает по CollectionID.

Третья команда добавляет параметры поиска в объект $Search . В этом случае запрос выполняет поиск коллекций устройств.

Последняя команда выполняет запрос, хранящийся в $Search. Он указывает SMS_Collection как класс, содержащий свойство CollectionID .

$Search = [Microsoft.ConfigurationManagement.PowerShell.Provider.SmsProviderSearch]::new()
$Search.AddOrder("CollectionID", [Microsoft.ConfigurationManagement.PowerShell.Provider.SearchParameterOrderBy]::Asc)
$Search.Add("Name","DeviceCol*", $True)

Invoke-CMWmiQuery -Search $Search -ClassName "SMS_Collection" -Option Lazy

Пример 3. Выполнение запроса WMI для сайтов по состоянию

Первая команда очищает параметры поиска из любого существующего объекта поиска.

Вторая команда добавляет параметры поиска в объект $Search . В этом случае запрос выполняет поиск сайтов.

Последняя команда выполняет запрос, хранящийся в $Search. Он указывает SMS_Site в качестве класса, содержащего свойство site Status .

$Search.Clear()
$Search.Add("Status", $True)

Invoke-CMWmiQuery -ClassName "SMS_Site" -Search $Search

Пример 4. Выполнение запроса WMI для сайтов по имени

Первая команда очищает параметры поиска из любого существующего объекта поиска.

Вторая команда добавляет параметры поиска в объект $Search . В этом случае запрос выполняет поиск сайтов.

Последняя команда выполняет запрос, хранящийся в $Search. Он указывает SMS_Site как класс, содержащий свойство SiteName .

$Search.Clear()
$Search.Add("SiteName", $null, [Microsoft.ConfigurationManagement.PowerShell.Provider.SearchParameterOperator]::NotEquals)

Invoke-CMWmiQuery -ClassName "SMS_Site" -Search $Search

Пример 5. Выполнение запроса WMI для приложений

Первая команда очищает параметры поиска из любого существующего объекта поиска.

Вторая команда добавляет параметры поиска в объект $Search . В этом случае запрос ищет приложения.

Последняя команда выполняет запрос, хранящийся в $Search. Он указывает SMS_Application как класс, содержащий свойство site CI_ID .

$Search.Clear()
$Search.AddAdhoc("CI_ID > 0")

Invoke-CMWmiQuery -ClassName "SMS_Application" -Search $Search -Option Lazy

Параметры

-ClassName

Указывает класс WMI Configuration Manager, к которому требуется выполнить запрос.

Тип:String
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Confirm

Перед запуском командлет запросит подтверждение.

Тип:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Context

Укажите контекст WMI в качестве хэш-таблицы. Это список пар "имя-значение", передаваемых поставщику WMI, который поддерживает сведения о контексте для настраиваемой операции.

Тип:Hashtable
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-DisableWildcardHandling

Этот параметр обрабатывает подстановочные знаки как литеральные символы. Вы не можете объединить его с ForceWildcardHandling.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-ForceWildcardHandling

Этот параметр обрабатывает подстановочные знаки и может привести к непредвиденному поведению (не рекомендуется). Его нельзя объединить с DisableWildcardHandling.

Тип:SwitchParameter
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Option

Наиболее распространенным вариантом является Fast.

Укажите параметр запроса:

  • None:По умолчанию
  • Lazy: по умолчанию командлет загружает отложенные свойства.
  • Fast: используйте этот параметр, чтобы не загружать отложенные свойства. Этот параметр позволяет быстрее возвращать результаты для некоторых классов.
  • ExpectResults ExpectResultsThrowException&. Если запрос не возвращает результатов, создайте исключение. Это исключение обычно завершает скрипт.
  • FastExpectResults LazyExpectResults&: эти параметры объединяют Fast и Lazy с ExpectResults.
  • ExpectResultsSoftFail: если запрос не возвращает результатов, выведите ошибку, но не завершайте сценарий.

Дополнительные сведения о отложенных свойствах см. в разделе Configuration Manager отложенных свойств.

Следующие значения предназначены только для внутреннего использования:

  • Клонировать
  • NoMask
  • NoRefresh
  • IgnoreNoResults
Тип:QueryOptions
Aliases:Options
Допустимые значения:None, NoRefresh, Lazy, Fast, ExpectResults, FastExpectResults, LazyExpectResults, Clone, ExpectResultsSoftFail, ExpectResultsThrowException, NoMask, IgnoreNoResults
Position:Named
Default value:None
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-Query

Указывает инструкцию WMI Query Language (WQL).

Тип:String
Position:0
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

Указывает объект SMSProviderSearch .

Тип:SmsProviderSearch
Position:Named
Default value:None
Обязательно:True
Принять входные данные конвейера:False
Принять подстановочные знаки:False

-WhatIf

Показывает, что произойдет при запуске этого командлета. Командлет не выполняется.

Тип:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Обязательно:False
Принять входные данные конвейера:False
Принять подстановочные знаки:False

Входные данные

None

Выходные данные

IResultObject[]

IResultObject