Invoke-CMQuery
SYNOPSIS
Executar uma consulta do Gestor de Configuração.
SYNTAX
SearchByValueMandatory (Padrão)
Invoke-CMQuery -InputObject <IResultObject> [-LimitToCollectionId <String>] [-DisableWildcardHandling]
[-ForceWildcardHandling] [-WhatIf] [-Confirm] [<CommonParameters>]
SearchByIdMandatory
Invoke-CMQuery -Id <String> [-LimitToCollectionId <String>] [-DisableWildcardHandling] [-ForceWildcardHandling]
[-WhatIf] [-Confirm] [<CommonParameters>]
PesquisaByNameMandatory
Invoke-CMQuery [-LimitToCollectionId <String>] -Name <String> [-DisableWildcardHandling]
[-ForceWildcardHandling] [-WhatIf] [-Confirm] [<CommonParameters>]
DESCRIPTION
Utilize este cmdlet para executar uma consulta no site do Gestor de Configuração. As consultas do Gestor de Configuração definem uma expressão WMI Query Language (WQL) para obter informações da base de dados do site com base nos critérios que fornece. O WQL é semelhante ao SQL, mas ainda passa pelo Fornecedor de SMS em vez de diretamente para a base de dados. Assim, o WQL ainda respeita a sua configuração de acesso baseada em funções.
Quando faz uma consulta, o site processa a expressão WQL e devolve os resultados no PowerShell. Dependendo da estrutura da declaração WQL, o formato dos resultados pode variar.
As consultas podem devolver a maioria dos tipos de objetos do Gestor de Configuração, que incluem computadores, sites, coleções, aplicações e dados de inventário. Para obter mais informações, consulte Introdução às consultas no Gestor de Configurações.
Nota
Executar cmdlets do Gestor de Configuração a partir da unidade do site do Gestor de Configuração, por exemplo PS XYZ:\>
. Para mais informações, consulte a partida.
EXAMPLES
Exemplo 1: Ver 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, 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
Note na saída do cmdlet Get-CMQuery que a expressão WQL é simples. Seleciona quatro atributos de uma única classe.
Em seguida, note como a saída do cmdlet Invoke-CMQuery é uma tabela simples.
Exemplo 2: Ver e executar uma consulta complexa
Este exemplo mostra primeiro o cmdlet Get-CMQuery para mostrar as propriedades de uma consulta personalizada.
Em seguida, 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";
};
Esta consulta tem uma Expressão mais complexa que junta duas classes. O resultado da consulta é então mais complexo.
PARAMETERS
-Confirm
Solicita a sua confirmação antes de executar o cmdlet.
Type: SwitchParameter
Parameter Sets: (All)
Aliases: cf
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-DisableWildcardHandling
Este parâmetro trata os caracteres wildcard como valores de caracteres literais. Não pode combiná-lo com ForceWildcardHandling.
Type: SwitchParameter
Parameter Sets: (All)
Aliases:
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-ForceWildcardHandling
Este parâmetro processa caracteres wildcard e pode levar a um comportamento inesperado (não recomendado). Não é possível combiná-lo com DisableWildcardHandling.
Type: SwitchParameter
Parameter Sets: (All)
Aliases:
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
- ID
Especifique o ID da consulta a ser executada. Por exemplo, "XYZ00006"
.
Type: String
Parameter Sets: SearchByIdMandatory
Aliases: QueryId
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-InputObject
Especifique um objeto de consulta para executar. Para obter este objeto, utilize o cmdlet Get-CMQuery.
Type: IResultObject
Parameter Sets: SearchByValueMandatory
Aliases:
Required: True
Position: Named
Default value: None
Accept pipeline input: True (ByValue)
Accept wildcard characters: False
-LimitToCollectionId
Se a consulta estiver configurada para solicitar a recolha de limitação, utilize este parâmetro para especificar um ID de recolha. Se a propriedade LimitToCollectionID da consulta for <Prompt>
, e não incluir este parâmetro quando executar a consulta, o cmdlet falha.
Type: String
Parameter Sets: (All)
Aliases:
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Name
Especifique o nome da consulta a executar.
Type: String
Parameter Sets: SearchByNameMandatory
Aliases:
Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
- O QueIf
Apresenta o que aconteceria mediante a execução do cmdlet. O comandante não funciona.
Type: SwitchParameter
Parameter Sets: (All)
Aliases: wi
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
CommonParameters
Este cmdlet suporta os parâmetros comuns: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction e -WarningVariable. Para mais informações, consulte about_CommonParameters.
INPUTS
Microsoft.ConfigurationManagement.ManagementProvider.IResultObject
OUTPUTS
Sistema.Objeto
NOTAS
RELATED LINKS
Exportação-CMQuery Get-CMQuery Importação-CMQuery New-CMQuery Remover-CMQuery Set-CMQuery Introdução a consultas no Gestor de Configuração