Invoke-CMQuery
Выполните запрос Configuration Manager.
Синтаксис
Invoke-CMQuery
-InputObject <IResultObject>
[-LimitToCollectionId <String>]
[-DisableWildcardHandling]
[-ForceWildcardHandling]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-CMQuery
-Id <String>
[-LimitToCollectionId <String>]
[-DisableWildcardHandling]
[-ForceWildcardHandling]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-CMQuery
[-LimitToCollectionId <String>]
-Name <String>
[-DisableWildcardHandling]
[-ForceWildcardHandling]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Описание
Используйте этот командлет для выполнения запроса на сайте Configuration Manager. Configuration Manager запросы определяют выражение WMI Query Language (WQL) для получения сведений из базы данных сайта на основе предоставленных вами критериев. WQL похож на SQL, но по-прежнему проходит через поставщик SMS, а не напрямую в базу данных. Поэтому WQL по-прежнему соответствует вашей конфигурации доступа на основе ролей.
При выполнении запроса сайт обрабатывает WQL-выражение и возвращает результаты в PowerShell. В зависимости от структуры инструкции WQL формат результатов может отличаться.
Запросы могут возвращать большинство типов объектов Configuration Manager, включая компьютеры, сайты, коллекции, приложения и данные инвентаризации. Дополнительные сведения см. в статье Общие сведения о запросах в Configuration Manager.
Примечание.
Выполните командлеты Configuration Manager с диска сайта Configuration Manager, например PS XYZ:\>
. Дополнительные сведения см. в статье Начало работы.
Примеры
Пример 1. Просмотр и выполнение запроса по умолчанию
В этом примере сначала показан командлет Get-CMQuery для отображения свойств запроса по умолчанию This Site и его дочерних сайтов.
Затем отображается командлет Invoke-CMQuery для выполнения того же запроса и отображения результатов.
PS XYZ:\> Get-CMQuery -Id "SMS012"
SmsProviderObjectPath : SMS_Query.QueryID="SMS012"
Comments : This site and all its subsites in the ConfigMgr hierarchy
Expression : SELECT SiteCode, SiteName, Version, ServerName FROM sms_siteandsubsites
LimitToCollectionID :
LocalizedCategoryInstanceNames : {}
Name : This Site and its Subsites
QueryID : SMS012
ResultAliasNames : {sms_siteandsubsites, sms_siteandsubsites, sms_siteandsubsites, sms_siteandsubsites}
ResultColumnsNames : {sms_siteandsubsites.SiteCode, sms_siteandsubsites.SiteName,
sms_siteandsubsites.Version, sms_siteandsubsites.ServerName}
TargetClassName : sms_siteandsubsites
PS XYZ:\> Invoke-CMQuery -Id "SMS012"
SmsProviderObjectPath : SMS_SiteAndSubsites.SiteCode="XYZ"
ServerName : cmserver.contoso.com
SiteCode : XYZ
SiteName : Production primary site
Version : 5.00.9043.1000
Обратите внимание на то, что в выходных данных командлета Get-CMQuery используется простое WQL Expression . Он выбирает четыре атрибута из одного класса.
Затем обратите внимание, что выходные данные командлета Invoke-CMQuery являются простой таблицей.
Пример 2. Просмотр и выполнение сложного запроса
В этом примере сначала показан командлет Get-CMQuery для отображения свойств настраиваемого запроса.
Затем отображается командлет Invoke-CMQuery для выполнения того же запроса и отображения результатов.
PS XYZ:\> Get-CMQuery -Id "XYZ00002"
SmsProviderObjectPath : SMS_Query.QueryID="XYZ00002"
Comments :
Expression : select SMS_R_System.Name, SMS_R_System.LastLogonUserName,
SMS_G_System_OPERATING_SYSTEM.Caption from SMS_R_System inner join
SMS_G_System_OPERATING_SYSTEM on SMS_G_System_OPERATING_SYSTEM.ResourceID =
SMS_R_System.ResourceId where SMS_G_System_OPERATING_SYSTEM.Caption like "Microsoft Windows Server 2012%"
LimitToCollectionID : XYZ0025F
LocalizedCategoryInstanceNames : {}
Name : Server 2016
QueryID : XYZ00002
ResultAliasNames : {SMS_R_System, SMS_R_System, SMS_G_System_OPERATING_SYSTEM}
ResultColumnsNames : {SMS_R_System.Name, SMS_R_System.LastLogonUserName,
SMS_G_System_OPERATING_SYSTEM.Caption}
TargetClassName : SMS_R_System
PS XYZ:\> Invoke-CMQuery -Id "XYZ00002"
SmsProviderObjectPath : __GENERIC
SMS_G_System_OPERATING_SYSTEM :
instance of SMS_G_System_OPERATING_SYSTEM
{
Caption = "Microsoft Windows Server 2012 R2 Datacenter";
};
SMS_R_System :
instance of SMS_R_System
{
LastLogonUserName = "jqpublic";
Name = "millcreek01";
};
Этот запрос содержит более сложное выражение , которое объединяет два класса. Результат запроса становится более сложным.
Параметры
-Confirm
Перед запуском командлет запросит подтверждение.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DisableWildcardHandling
Этот параметр обрабатывает подстановочные знаки как литеральные символы. Вы не можете объединить его с ForceWildcardHandling.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ForceWildcardHandling
Этот параметр обрабатывает подстановочные знаки и может привести к непредвиденному поведению (не рекомендуется). Его нельзя объединить с DisableWildcardHandling.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Id
Укажите идентификатор выполняемого запроса. Например, "XYZ00006"
.
Type: | String |
Aliases: | QueryId |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Укажите объект запроса для выполнения. Чтобы получить этот объект, используйте командлет Get-CMQuery .
Type: | IResultObject |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-LimitToCollectionId
Если запрос настроен так, чтобы запрашивать ограничивающую коллекцию, используйте этот параметр, чтобы указать идентификатор коллекции. Если свойство LimitToCollectionID запроса имеет значение <Prompt>
и этот параметр не включается при выполнении запроса, командлет завершается ошибкой.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
Укажите имя выполняемого запроса.
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Показывает, что произойдет при запуске этого командлета. Командлет не выполняется.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Входные данные
Microsoft.ConfigurationManagement.ManagementProvider.IResultObject
Выходные данные
System.Object
Связанные ссылки
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по