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 Configuration Manager cmdlet dall'unità del sito 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 Configuration Manager classe WMI su cui si vuole eseguire una query.

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

-Confirm

Richiede la conferma prima di eseguire il cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

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

-DisableWildcardHandling

Questo parametro considera i caratteri jolly come valori letterali. Non è possibile combinarlo con ForceWildcardHandling.

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

-ForceWildcardHandling

Questo parametro elabora caratteri jolly e può causare un comportamento imprevisto (non consigliato). Non è possibile combinarlo con DisableWildcardHandling.

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

-Option

L'opzione più comune è Fast.

Specificare un'opzione di query:

  • None:Predefinito
  • 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.
  • ExpectResultsExpectResultsThrowException& : se la query non restituisce risultati, generare un'eccezione. Questa eccezione termina in genere uno script.
  • FastExpectResultsLazyExpectResults& : queste opzioni combinano Fast e Lazy con ExpectResults.
  • ExpectResultsSoftFail: se la query non restituisce risultati, restituisce un errore, ma non termina lo script.

Per altre informazioni sulle proprietà lazy, vedere Configuration Manager proprietà lazy.

I valori seguenti sono solo per uso interno:

  • Clone
  • NoMask
  • NoRefresh
  • IgnoreNoResults
Type:QueryOptions
Aliases:Options
Accepted values:None, NoRefresh, Lazy, Fast, ExpectResults, FastExpectResults, LazyExpectResults, Clone, ExpectResultsSoftFail, ExpectResultsThrowException, NoMask, IgnoreNoResults
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Query

Specifica un'istruzione WQL (WMI Query Language).

Type:String
Position:0
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

Specifica un oggetto SMSProviderSearch .

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

-WhatIf

Mostra cosa accade se viene eseguito il cmdlet. Il cmdlet non viene eseguito.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Input

None

Output

IResultObject[]

IResultObject