Invoke-CMWmiQuery
Eseguire una query WMI.
Sintassi
Invoke-CMWmiQuery
[-Context <Hashtable>]
[-Option <QueryOptions>]
[-Query] <String>
[-DisableWildcardHandling]
[-ForceWildcardHandling]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-CMWmiQuery
-ClassName <String>
[-Context <Hashtable>]
[-Option <QueryOptions>]
-Search <SmsProviderSearch>
[-DisableWildcardHandling]
[-ForceWildcardHandling]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Descrizione
Il cmdlet Invoke-CMWmiQuery esegue una query WMI (Windows Management Instrumentation). A differenza di altri cmdlet o strumenti di query, con questo cmdlet la connessione e lo spazio dei nomi sono già configurati.
È anche possibile usare questo cmdlet per creare una query con WQL (WMI Query Language). Configuration Manager usa WQL per le query nelle raccolte. WQL è simile a SQL, ma usa ancora il provider SMS, quindi rispetta i controlli di accesso in base al ruolo.
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: Eseguire una query WQL
Il primo comando crea una query WQL e la archivia nella variabile $WQL . Il secondo comando esegue la query archiviata nella variabile .
$WQL = @"
SELECT app.* FROM SMS_ApplicationLatest AS app
INNER JOIN SMS_CIContentPackage AS con ON app.CI_ID=con.CI_ID
INNER JOIN SMS_DistributionPoint AS srv ON con.PackageID=srv.PackageID
WHERE app.IsHidden = 0
"@
Invoke-CMWmiQuery -Query $WQL -Option Lazy
Esempio 2: Eseguire una query WMI per le raccolte di dispositivi
Il primo comando crea un oggetto di ricerca e archivia l'oggetto nella variabile $Search .
Il secondo comando specifica che l'ordine di ricerca è crescente in base a CollectionID.
Il terzo comando aggiunge parametri di ricerca all'oggetto $Search . In questo caso, la query cerca le raccolte di dispositivi.
L'ultimo comando esegue la query archiviata in $Search. Specifica SMS_Collection come classe che contiene la proprietà CollectionID .
$Search = [Microsoft.ConfigurationManagement.PowerShell.Provider.SmsProviderSearch]::new()
$Search.AddOrder("CollectionID", [Microsoft.ConfigurationManagement.PowerShell.Provider.SearchParameterOrderBy]::Asc)
$Search.Add("Name","DeviceCol*", $True)
Invoke-CMWmiQuery -Search $Search -ClassName "SMS_Collection" -Option Lazy
Esempio 3: Eseguire una query WMI per i siti in base allo stato
Il primo comando cancella i parametri di ricerca da qualsiasi oggetto di ricerca esistente.
Il secondo comando aggiunge parametri di ricerca all'oggetto $Search . In questo caso, la query cerca i siti.
L'ultimo comando esegue la query archiviata in $Search. Specifica SMS_Site come classe che contiene la proprietà Status del sito.
$Search.Clear()
$Search.Add("Status", $True)
Invoke-CMWmiQuery -ClassName "SMS_Site" -Search $Search
Esempio 4: Eseguire una query WMI per i siti per nome
Il primo comando cancella i parametri di ricerca da qualsiasi oggetto di ricerca esistente.
Il secondo comando aggiunge parametri di ricerca all'oggetto $Search . In questo caso, la query cerca i siti.
L'ultimo comando esegue la query archiviata in $Search. Specifica SMS_Site come classe che contiene la proprietà SiteName .
$Search.Clear()
$Search.Add("SiteName", $null, [Microsoft.ConfigurationManagement.PowerShell.Provider.SearchParameterOperator]::NotEquals)
Invoke-CMWmiQuery -ClassName "SMS_Site" -Search $Search
Esempio 5: Eseguire una query WMI per le applicazioni
Il primo comando cancella i parametri di ricerca da qualsiasi oggetto di ricerca esistente.
Il secondo comando aggiunge parametri di ricerca all'oggetto $Search . In questo caso, la query cerca le applicazioni.
L'ultimo comando esegue la query archiviata in $Search. Specifica SMS_Application come classe che contiene la proprietà CI_ID del sito.
$Search.Clear()
$Search.AddAdhoc("CI_ID > 0")
Invoke-CMWmiQuery -ClassName "SMS_Application" -Search $Search -Option Lazy
Parametri
-ClassName
Specifica la classe WMI di Configuration Manager su cui si vuole eseguire una query.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | True |
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: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Context
Specificare il contesto WMI come tabella hash. Si tratta di un elenco di coppie nome/valore passate a un provider WMI che supporta le informazioni di contesto per un'operazione personalizzata.
Tipo: | Hashtable |
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 |
-Option
L'opzione più comune è Fast
.
Specificare un'opzione di query:
-
None
:Default -
Lazy
: per impostazione predefinita, il cmdlet carica le proprietà lazy. -
Fast
: usare questa opzione per non caricare le proprietà lazy. Questa opzione può restituire risultati più rapidamente per alcune classi. -
ExpectResults
ExpectResultsThrowException
& : se la query non restituisce risultati, generare un'eccezione. Questa eccezione termina in genere uno script. -
FastExpectResults
LazyExpectResults
& : queste opzioni combinanoFast
eLazy
conExpectResults
. -
ExpectResultsSoftFail
: se la query non restituisce risultati, restituisce un errore, ma non termina lo script.
Per altre informazioni sulle proprietà lazy, vedere Proprietà lazy di Configuration Manager.
I valori seguenti sono solo per uso interno:
- Clone
- NoMask
- NoRefresh
- IgnoreNoResults
Tipo: | QueryOptions |
Alias: | Options |
Valori accettati: | None, NoRefresh, Lazy, Fast, ExpectResults, FastExpectResults, LazyExpectResults, Clone, ExpectResultsSoftFail, ExpectResultsThrowException, NoMask, IgnoreNoResults |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Query
Specifica un'istruzione WQL (WMI Query Language).
Tipo: | String |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Search
Specifica un oggetto SMSProviderSearch .
Tipo: | SmsProviderSearch |
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: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
Input
None
Output
IResultObject[]
IResultObject