Invoke-CMQuery
Ejecute una consulta de Configuration Manager.
Sintaxis
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>]
Description
Use este cmdlet para ejecutar una consulta en el sitio de Configuration Manager. Las consultas de Configuration Manager definen una expresión de lenguaje de consulta WMI (WQL) para obtener información de la base de datos del sitio en función de los criterios que proporcione. WQL es similar a SQL, pero sigue pasando por el proveedor de SMS en lugar de directamente a la base de datos. Por lo tanto, WQL sigue cumpliendo con la configuración de acceso basada en roles.
Al ejecutar una consulta, el sitio procesa la expresión WQL y devuelve los resultados en PowerShell. Dependiendo de la estructura de la instrucción WQL, el formato de los resultados puede variar.
Las consultas pueden devolver la mayoría de los tipos de objetos de Configuration Manager, que incluyen equipos, sitios, colecciones, aplicaciones y datos de inventario. Para obtener más información, consulte Introducción a las consultas en Configuration Manager.
Nota:
Ejecute cmdlets de Configuration Manager desde la unidad de sitio de Configuration Manager, por ejemplo PS XYZ:\>
. Para obtener más información, consulte Introducción.
Ejemplos
Ejemplo 1: Visualización y ejecución de una consulta predeterminada
En este ejemplo se muestra primero el cmdlet Get-CMQuery para mostrar las propiedades de la consulta predeterminada, Este sitio y sus subsitios.
A continuación, muestra el cmdlet Invoke-CMQuery para ejecutar la misma consulta y mostrar los resultados.
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
Observe en la salida del cmdlet Get-CMQuery que la expresión WQL es sencilla. Selecciona cuatro atributos de una sola clase.
A continuación, observe cómo la salida del cmdlet Invoke-CMQuery es una tabla sencilla.
Ejemplo 2: Visualización y ejecución de una consulta compleja
En este ejemplo se muestra primero el cmdlet Get-CMQuery para mostrar las propiedades de una consulta personalizada.
A continuación, muestra el cmdlet Invoke-CMQuery para ejecutar la misma consulta y mostrar los resultados.
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";
};
Esta consulta tiene una expresión más compleja que combina dos clases. El resultado de la consulta es más complejo.
Parámetros
-Confirm
Solicitará confirmación antes de ejecutar el cmdlet.
Tipo: | SwitchParameter |
Alias: | cf |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-DisableWildcardHandling
Este parámetro trata los caracteres comodín como valores de caracteres literales. No se puede combinar con ForceWildcardHandling.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-ForceWildcardHandling
Este parámetro procesa caracteres comodín y puede provocar un comportamiento inesperado (no recomendado). No se puede combinar con DisableWildcardHandling.
Tipo: | SwitchParameter |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Id
Especifique el identificador de la consulta que se va a ejecutar. Por ejemplo, "XYZ00006"
.
Tipo: | String |
Alias: | QueryId |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-InputObject
Especifique un objeto de consulta que se va a ejecutar. Para obtener este objeto, use el cmdlet Get-CMQuery .
Tipo: | IResultObject |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | True |
Aceptar caracteres comodín: | False |
-LimitToCollectionId
Si la consulta está configurada para solicitar la colección de limitación, use este parámetro para especificar un identificador de colección. Si la propiedad LimitToCollectionID de la consulta es <Prompt>
y no incluye este parámetro al ejecutar la consulta, se produce un error en el cmdlet.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-Name
Especifique el nombre de la consulta que se va a ejecutar.
Tipo: | String |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | True |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
-WhatIf
Muestra lo que ocurriría si se ejecuta el cmdlet. El cmdlet no se ejecuta.
Tipo: | SwitchParameter |
Alias: | wi |
Posición: | Named |
Valor predeterminado: | None |
Requerido: | False |
Aceptar entrada de canalización: | False |
Aceptar caracteres comodín: | False |
Entradas
Microsoft.ConfigurationManagement.ManagementProvider.IResultObject
Salidas
System.Object