Sdílet prostřednictvím


Invoke-CMQuery

SYNOPSIS

Spusťte Správce konfigurace dotaz.

SYNTAX

SearchByValueMandatory (výchozí)

Invoke-CMQuery -InputObject <IResultObject> [-LimitToCollectionId <String>] [-DisableWildcardHandling]
 [-ForceWildcardHandling] [-WhatIf] [-Confirm] [<CommonParameters>]

SearchByIdMandatory

Invoke-CMQuery -Id <String> [-LimitToCollectionId <String>] [-DisableWildcardHandling] [-ForceWildcardHandling]
 [-WhatIf] [-Confirm] [<CommonParameters>]

SearchByNameMandatory

Invoke-CMQuery [-LimitToCollectionId <String>] -Name <String> [-DisableWildcardHandling]
 [-ForceWildcardHandling] [-WhatIf] [-Confirm] [<CommonParameters>]

DESCRIPTION

Tuto rutinu použijte ke spuštění dotazu v Správce konfigurace lokalitě. Správce konfigurace dotazy definují výraz jazyk WQL (WMI Query Language) (WQL) pro získání informací z databáze lokality na základě zadaných kritérií. Jazyk WQL je SQL, ale stále prochází přes poskytovatele serveru SMS místo přímo do databáze. Jazyk WQL se tedy stále uchová v konfiguraci přístupu na základě role.

Když spustíte dotaz, web zpracuje výraz WQL a vrátí výsledky v PowerShellu. Formát výsledků se může lišit v závislosti na struktuře příkazu WQL.

Dotazy mohou vracet většinu typů objektů Správce konfigurace, mezi které patří počítače, lokality, kolekce, aplikace a data inventáře. Další informace najdete v tématu Úvod do dotazů v Správce konfigurace.

Poznámka

Spusťte Správce konfigurace rutiny z Správce konfigurace lokality, například PS XYZ:\> . Další informace najdete v tématu Začínáme.

EXAMPLES

Příklad 1: Zobrazení a spuštění výchozího dotazu

Tento příklad nejprve ukazuje rutinu Get-CMQuery, která zobrazuje vlastnosti výchozího dotazu This Site a jeho podřízené lokality.

Potom zobrazí rutinu Invoke-CMQuery, která spustí stejný dotaz a zobrazí výsledky.

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

Všimněte si, že ve výstupu rutiny Get-CMQuery je výraz jazyka WQL jednoduchý. Vybere čtyři atributy z jedné třídy.

Pak si všimněte, že výstupem rutiny Invoke-CMQuery je jednoduchá tabulka.

Příklad 2: Zobrazení a spuštění složitého dotazu

Tento příklad nejprve ukazuje rutinu Get-CMQuery, která zobrazuje vlastnosti vlastního dotazu.

Potom zobrazí rutinu Invoke-CMQuery, která spustí stejný dotaz a zobrazí výsledky.

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";
                                };

Tento dotaz má složitější výraz Expression, který spojuje dvě třídy. Výsledek dotazu je pak složitější.

PARAMETERS

-Confirm

Před spuštěním rutiny zobrazí výzvu k potvrzení.

Type: SwitchParameter
Parameter Sets: (All)
Aliases: cf

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-DisableWildcardHandling

Tento parametr považuje zástupné znaky za hodnoty literálových znaků. Nemůžete ho kombinovat s forceWildcardHandling.

Type: SwitchParameter
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-ForceWildcardHandling

Tento parametr zpracovává zástupné znaky a může vést k neočekávanému chování (nedoporučuje se). Nemůžete ho kombinovat s příkazem DisableWildcardHandling.

Type: SwitchParameter
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Id

Zadejte ID dotazu, který se má spustit. Například, "XYZ00006".

Type: String
Parameter Sets: SearchByIdMandatory
Aliases: QueryId

Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-InputObject

Zadejte objekt dotazu, který se má spustit. K získání tohoto objektu použijte rutinu 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

Pokud je dotaz nakonfigurovaný tak, aby vyzve k zadání limitující kolekce, použijte tento parametr k zadání ID kolekce. Pokud je vlastnost LimitToCollectionID dotazu a tento parametr při spuštění dotazu nezahrnujete, <Prompt> rutina selže.

Type: String
Parameter Sets: (All)
Aliases:

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-Name

Zadejte název dotazu, který se má spustit.

Type: String
Parameter Sets: SearchByNameMandatory
Aliases:

Required: True
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

-WhatIf

Zobrazuje, co by se stalo při spuštění rutiny. Rutina se nespouštěl.

Type: SwitchParameter
Parameter Sets: (All)
Aliases: wi

Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False

CommonParameters

Tato rutina podporuje společné parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction a -WarningVariable. Další informace najdete v tématu about_CommonParameters.

INPUTS

Microsoft.ConfigurationManagement.ManagementProvider.IResultObject

OUTPUTS

System.Object

POZNÁMKY

Export CMQuery Get-CMQuery Import CMQuery New-CMQuery Odebrání CMQuery Nastavení CMQuery Úvod do dotazů v Správce konfigurace