Invoke-CMQuery
Eseguire una query di Configuration Manager.
Sintassi
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>]
Descrizione
Usare questo cmdlet per eseguire una query nel sito di Configuration Manager. Le query di Configuration Manager definiscono un'espressione WQL (WMI Query Language) per ottenere informazioni dal database del sito in base ai criteri specificati. WQL è simile a SQL, ma passa comunque attraverso il provider SMS anziché direttamente al database. WQL rimane quindi in base alla configurazione degli accessi in base al ruolo.
Quando si esegue una query, il sito elabora l'espressione WQL e restituisce i risultati in PowerShell. A seconda della struttura dell'istruzione WQL, il formato dei risultati può variare.
Le query possono restituire la maggior parte dei tipi di oggetti di Configuration Manager, tra cui computer, siti, raccolte, applicazioni e dati di inventario. Per altre informazioni, vedere Introduzione alle query in Configuration Manager.
Nota
Eseguire i cmdlet di Configuration Manager dall'unità del sito di Configuration Manager, ad esempio PS XYZ:\>
. Per altre informazioni, vedere Introduzione.
Esempio
Esempio 1: Visualizzare ed eseguire una query predefinita
Questo esempio mostra innanzitutto il cmdlet Get-CMQuery per visualizzare le proprietà della query predefinita This Site e dei relativi siti secondari.
Viene quindi visualizzato il cmdlet Invoke-CMQuery per eseguire la stessa query e visualizzare i risultati.
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
Si noti nell'output del cmdlet Get-CMQuery che l'espressione WQL è semplice. Seleziona quattro attributi da una singola classe.
Si noti quindi come l'output del cmdlet Invoke-CMQuery sia una tabella semplice.
Esempio 2: Visualizzare ed eseguire una query complessa
Questo esempio mostra innanzitutto il cmdlet Get-CMQuery per visualizzare le proprietà di una query personalizzata.
Viene quindi visualizzato il cmdlet Invoke-CMQuery per eseguire la stessa query e visualizzare i risultati.
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";
};
Questa query ha un'espressione più complessa che unisce due classi. Il risultato della query è quindi più complesso.
Parametri
-Confirm
Richiede la conferma prima di eseguire il cmdlet.
Tipo: | SwitchParameter |
Alias: | cf |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-DisableWildcardHandling
Questo parametro considera i caratteri jolly come valori letterali. Non è possibile combinarlo con ForceWildcardHandling.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-ForceWildcardHandling
Questo parametro elabora caratteri jolly e può causare un comportamento imprevisto (non consigliato). Non è possibile combinarlo con DisableWildcardHandling.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Id
Specificare l'ID della query da eseguire. Ad esempio, "XYZ00006"
.
Tipo: | String |
Alias: | QueryId |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-InputObject
Specificare un oggetto query da eseguire. Per ottenere questo oggetto, usare il cmdlet Get-CMQuery .
Tipo: | IResultObject |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-LimitToCollectionId
Se la query è configurata per richiedere la raccolta di limitazione, usare questo parametro per specificare un ID raccolta. Se la proprietà LimitToCollectionID della query è <Prompt>
e non si include questo parametro quando si esegue la query, il cmdlet ha esito negativo.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Name
Specificare il nome della query da eseguire.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-WhatIf
Mostra cosa accade se viene eseguito il cmdlet. Il cmdlet non viene eseguito.
Tipo: | SwitchParameter |
Alias: | wi |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
Input
Microsoft.ConfigurationManagement.ManagementProvider.IResultObject
Output
System.Object