New-CMQuery
Creare una query di Configuration Manager.
Sintassi
New-CMQuery
[-Comment <String>]
-Expression <String>
[-LimitToCollectionId <String>]
-Name <String>
[-TargetClassName <String>]
[-DisableWildcardHandling]
[-ForceWildcardHandling]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Descrizione
Usare questo cmdlet per creare una query in 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.
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.
Per impostazione predefinita, Configuration Manager include diverse query. È possibile usare il cmdlet Get-CMQuery per esaminare le query predefinite. Per altri esempi di espressioni WQL, vedere Query WQL di esempio.
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: Creare una nuova query per i server di una versione specifica
In questo esempio viene creata una nuova query denominata Server 2016 che cerca i client con la didascalia del sistema operativo che inizia con Microsoft Windows Server 2012. Restituisce le tre proprietà seguenti: Nome, Cognome utente di accesso e didascalia del sistema operativo.
New-CMQuery -Name "Server 2016" -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%"' -TargetClassName "SMS_R_System" -LimitToCollectionId "SMS00001"
Esempio 2: Creare una query per i dispositivi desktop
In questo esempio viene creata una nuova query denominata Dispositivi desktop che cerca i dispositivi con valori specifici per la proprietà Tipi chassis della classe System Enclosure . Restituisce più proprietà ed è limitata da una raccolta specifica.
New-CMQuery -Name "Desktop devices" -Expression 'select SMS_R_SYSTEM.ResourceID,SMS_R_SYSTEM.ResourceType,SMS_R_SYSTEM.Name,SMS_R_SYSTEM.SMSUniqueIdentifier,SMS_R_SYSTEM.ResourceDomainORWorkgroup,SMS_R_SYSTEM.Client from SMS_R_System inner join SMS_G_System_SYSTEM_ENCLOSURE on SMS_G_System_SYSTEM_ENCLOSURE.ResourceID = SMS_R_System.ResourceId where SMS_G_System_SYSTEM_ENCLOSURE.ChassisTypes in ( "3", "4", "5","6", "7", "15","16")' -TargetClassName "SMS_R_System" -LimitToCollectionId "XYZ000049"
Parametri
-Comment
Specificare un commento facoltativo per identificare ulteriormente la query nel sito.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-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 |
-Expression
Specificare l'istruzione WQL che definisce gli attributi da visualizzare nei risultati e i criteri per limitare i risultati.
Le istruzioni WQL includono spesso virgolette doppie ("
), quindi impostare il valore di questo parametro come stringa racchiusa tra virgolette singole ('
).
Per altri esempi, vedere Query WQL di esempio.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | True |
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 |
-LimitToCollectionId
Specificare come configurare la limitazione della raccolta per questa query:
-
Non limitato alla raccolta: impostare il valore di questo parametro su una stringa vuota (
""
). Non usare la$null
variabile predefinita. -
Limite alla raccolta: specificare l'ID di una raccolta. Ad esempio,
"SMSDM003"
per la raccolta Tutti i client desktop e server . -
Richiedi raccolta: impostare il valore di questo parametro su
"<Prompt>"
.
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.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-TargetClassName
Specificare il nome della classe oggetto che si desidera restituire la query. Sono disponibili molti tipi di oggetto. Nella tabella seguente sono elencati diversi nomi di classi comuni con la descrizione della console di Configuration Manager:
Nome classe | Descrizione |
---|---|
SMS_R_System |
Risorsa di sistema |
SMS_Program |
Programma |
SMS_R_UserGroup |
Risorsa gruppo di utenti |
SMS_R_User |
Risorsa utente |
SMS_SiteAndSubsites |
Sito e siti secondari |
SMS_R_UnknownSystem |
Computer sconosciuto |
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
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
None
Output
IResultObject