Dela via


Invoke-CMQuery

SYNOPSIS

Kör en Konfigurationshanteraren fråga.

SYNTAX

SearchByValueMandatory (standard)

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

Använd den här cmdleten för att köra en fråga Konfigurationshanteraren webbplatsen. Konfigurationshanteraren definierar ett WMI Query Language-uttryck (WQL) för att hämta information från platsdatabasen baserat på de kriterier som du anger. WQL liknar en SQL, men går fortfarande via SMS-providern i stället för direkt till databasen. WQL följer alltså fortfarande din rollbaserade åtkomstkonfiguration.

När du kör en fråga bearbetar platsen WQL-uttrycket och returnerar resultatet i PowerShell. Beroende på strukturen för WQL-instruktionen kan resultatets format variera.

Frågor kan returnera de flesta typer av Konfigurationshanteraren objekt, bland annat datorer, platser, samlingar, program och inventeringsdata. Mer information finns i Introduktion till frågor i Konfigurationshanteraren.

Anteckning

Kör Konfigurationshanteraren cmdlets från Konfigurationshanteraren platsenheten, till exempel PS XYZ:\> . Mer information finns i Komma igång.

EXAMPLES

Exempel 1: Visa och köra en standardfråga

Det här exemplet visar först cmdleten Get-CMQuery för att visa egenskaperna för standardfrågan, Den här platsen och dess underplatser.

Den visar sedan cmdleten Invoke-CMQuery för att köra samma fråga och visa resultatet.

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

Observera i utdata från get-CMQuery-cmdleten att WQL-uttrycket är enkelt. Den väljer fyra attribut från en enda klass.

Observera sedan hur utdata från cmdleten Invoke-CMQuery är en enkel tabell.

Exempel 2: Visa och köra en komplex fråga

Det här exemplet visar först cmdleten Get-CMQuery för att visa egenskaperna för en anpassad fråga.

Den visar sedan cmdleten Invoke-CMQuery för att köra samma fråga och visa resultatet.

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

Den här frågan har ett mer komplext uttryck som ansluter till två klasser. Resultatet av frågan är sedan mer komplext.

PARAMETERS

-Confirm

Uppmanar dig att bekräfta innan du kör cmdleten.

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

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

-DisableWildcardHandling

Den här parametern behandlar jokertecken som värden för literaltecken. Du kan inte kombinera den med ForceWildcardHandling.

Type: SwitchParameter
Parameter Sets: (All)
Aliases:

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

-ForceWildcardHandling

Den här parametern bearbetar jokertecken och kan leda till oväntat beteende (rekommenderas inte). Du kan inte kombinera den med DisableWildcardHandling.

Type: SwitchParameter
Parameter Sets: (All)
Aliases:

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

-Id

Ange ID för den fråga som ska köras. Till exempel "XYZ00006".

Type: String
Parameter Sets: SearchByIdMandatory
Aliases: QueryId

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

-InputObject

Ange ett frågeobjekt som ska köras. Hämta det här objektet med cmdleten 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

Om frågan är konfigurerad för att fråga efter den begränsande samlingen använder du den här parametern för att ange ett samlings-ID. Om frågans LimitToCollectionID-egenskap är , och du inte inkluderar den här parametern när du kör frågan, misslyckas <Prompt> cmdleten.

Type: String
Parameter Sets: (All)
Aliases:

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

-Name

Ange namnet på frågan som ska köras.

Type: String
Parameter Sets: SearchByNameMandatory
Aliases:

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

-WhatIf

Visar vad som skulle hända om cmdleten kördes. Cmdleten körs inte.

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

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

CommonParameters

Denna cmdlet har stöd för parametrarna -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction och -WarningVariable. Mer information finns i about_CommonParameters.

INPUTS

Microsoft.ConfigurationManagement.ManagementProvider.IResultObject

OUTPUTS

System.Object

ANTECKNINGAR

Export-CMQuery Get-CMQuery Import-CMQuery New-CMQuery Remove-CMQuery Set-CMQuery Introduktion till frågor i Konfigurationshanteraren