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
RELATED LINKS
Export-CMQuery Get-CMQuery Import-CMQuery New-CMQuery Remove-CMQuery Set-CMQuery Introduktion till frågor i Konfigurationshanteraren