Invoke-CMQuery
Execute uma consulta Configuration Manager.
Syntax
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 executar uma consulta no site Configuration Manager. Configuration Manager consultas definem uma expressão WQL (WMI Query Language) para obter informações do banco de dados do site com base nos critérios fornecidos. O WQL é semelhante ao SQL, mas ainda passa pelo Provedor de SMS em vez de diretamente para o banco de dados. Portanto, o WQL ainda respeita sua configuração de acesso baseada em função.
Quando você executa uma consulta, o site processa a expressão WQL e retorna os resultados no PowerShell. Dependendo da estrutura da instrução WQL, o formato dos resultados pode variar.
As consultas podem retornar a maioria dos tipos de objetos Configuration Manager, que incluem computadores, sites, coleções, aplicativos e dados de inventário. Para obter mais informações, consulte Introdução a consultas no Configuration Manager.
Observação
Execute Configuration Manager cmdlets da unidade do site Configuration Manager, por exemplo PS XYZ:\>
. Para obter mais informações, confira introdução.
Exemplos
Exemplo 1: exibir e executar uma consulta padrão
Este exemplo mostra primeiro o cmdlet Get-CMQuery para mostrar as propriedades da consulta padrão, Este Site e seus Subsites.
Em seguida, ele mostra o cmdlet Invoke-CMQuery para executar a mesma consulta e mostrar os 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 na saída do cmdlet Get-CMQuery que a Expressão WQL é simples. Ele seleciona quatro atributos de uma única classe.
Em seguida, observe como a saída do cmdlet Invoke-CMQuery é uma tabela simples.
Exemplo 2: exibir e executar uma consulta complexa
Este exemplo mostra primeiro o cmdlet Get-CMQuery para mostrar as propriedades de uma consulta personalizada.
Em seguida, ele mostra o cmdlet Invoke-CMQuery para executar a mesma consulta e mostrar os 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";
};
Essa consulta tem uma Expressão mais complexa que une duas classes. O resultado da consulta é então mais complexo.
Parâmetros
-Confirm
Solicita a confirmação antes de executar o cmdlet.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DisableWildcardHandling
Esse parâmetro trata caracteres curinga como valores de caractere literal. Você não pode combiná-lo com ForceWildcardHandling.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ForceWildcardHandling
Esse parâmetro processa caracteres curinga e pode levar a um comportamento inesperado (não recomendado). Você não pode combiná-lo com DisableWildcardHandling.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Id
Especifique a ID da consulta a ser executada. Por exemplo, "XYZ00006"
.
Type: | String |
Aliases: | QueryId |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Especifique um objeto de consulta a ser executado. Para obter esse objeto, use o cmdlet Get-CMQuery .
Type: | IResultObject |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-LimitToCollectionId
Se a consulta estiver configurada para solicitar a coleção de limitação, use esse parâmetro para especificar uma ID de coleção. Se a propriedade LimitToCollectionID da consulta for <Prompt>
, e você não incluir esse parâmetro ao executar a consulta, o cmdlet falhará.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
Especifique o nome da consulta a ser executada.
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
Mostrar o que aconteceria se o cmdlet fosse executado. O cmdlet não é executado.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Entradas
Microsoft.ConfigurationManagement.ManagementProvider.IResultObject
Saídas
System.Object
Links Relacionados
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de