Invoke-CMWmiQuery
Führen Sie eine WMI-Abfrage aus.
Syntax
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>]
Beschreibung
Das Cmdlet Invoke-CMWmiQuery führt eine WMI-Abfrage (Windows Management Instrumentation) aus. Im Gegensatz zu anderen Abfrage-Cmdlets oder -Tools sind mit diesem Cmdlet die Verbindung und der Namespace bereits für Sie eingerichtet.
Sie können dieses Cmdlet auch verwenden, um eine Abfrage mit WMI Query Language (WQL) zu erstellen. Configuration Manager verwendet WQL für Abfragen in Sammlungen. WQL ähnelt SQL, verwendet aber weiterhin den SMS-Anbieter und hält sich daher an rollenbasierte Zugriffssteuerungen.
Hinweis
Führen Sie Configuration Manager-Cmdlets auf dem Configuration Manager-Standortlaufwerk aus, z. B PS XYZ:\>
. . Weitere Informationen finden Sie unter Erste Schritte.
Beispiele
Beispiel 1: Ausführen einer WQL-Abfrage
Der erste Befehl erstellt eine WQL-Abfrage und speichert sie in der variablen $WQL . Der zweite Befehl führt die in der Variablen gespeicherte Abfrage aus.
$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
Beispiel 2: Ausführen einer WMI-Abfrage für Gerätesammlungen
Der erste Befehl erstellt ein Suchobjekt und speichert das Objekt in der variablen $Search .
Der zweite Befehl gibt an, dass die Suchreihenfolge nach CollectionID aufsteigend ist.
Der dritte Befehl fügt suchparameter zum $Search-Objekt hinzu. In diesem Fall sucht die Abfrage nach Gerätesammlungen.
Der letzte Befehl führt die in $Search gespeicherte Abfrage aus. Es gibt SMS_Collection als die Klasse an, die die CollectionID-Eigenschaft enthält.
$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
Beispiel 3: Ausführen einer WMI-Abfrage für Websites nach Status
Der erste Befehl löscht die Suchparameter aus allen vorhandenen Suchobjekten.
Der zweite Befehl fügt suchparameter zum $Search-Objekt hinzu. In diesem Fall sucht die Abfrage nach Websites.
Der letzte Befehl führt die in $Search gespeicherte Abfrage aus. Sie gibt SMS_Site als Klasse an, die die Status-Eigenschaft der Website enthält.
$Search.Clear()
$Search.Add("Status", $True)
Invoke-CMWmiQuery -ClassName "SMS_Site" -Search $Search
Beispiel 4: Ausführen einer WMI-Abfrage für Websites anhand des Namens
Der erste Befehl löscht die Suchparameter aus allen vorhandenen Suchobjekten.
Der zweite Befehl fügt suchparameter zum $Search-Objekt hinzu. In diesem Fall sucht die Abfrage nach Websites.
Der letzte Befehl führt die in $Search gespeicherte Abfrage aus. Sie gibt SMS_Site als die Klasse an, die die SiteName-Eigenschaft enthält.
$Search.Clear()
$Search.Add("SiteName", $null, [Microsoft.ConfigurationManagement.PowerShell.Provider.SearchParameterOperator]::NotEquals)
Invoke-CMWmiQuery -ClassName "SMS_Site" -Search $Search
Beispiel 5: Ausführen einer WMI-Abfrage für Anwendungen
Der erste Befehl löscht die Suchparameter aus allen vorhandenen Suchobjekten.
Der zweite Befehl fügt suchparameter zum $Search-Objekt hinzu. In diesem Fall sucht die Abfrage nach Anwendungen.
Der letzte Befehl führt die in $Search gespeicherte Abfrage aus. Es gibt SMS_Application als Klasse an, die die Website CI_ID-Eigenschaft enthält.
$Search.Clear()
$Search.AddAdhoc("CI_ID > 0")
Invoke-CMWmiQuery -ClassName "SMS_Application" -Search $Search -Option Lazy
Parameter
-ClassName
Gibt die Configuration Manager-WMI-Klasse an, die Sie abfragen möchten.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Confirm
Fordert Sie vor dem Ausführen des Cmdlets zur Bestätigung auf.
Typ: | SwitchParameter |
Aliase: | cf |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Context
Geben Sie den WMI-Kontext als Hashtabelle an. Es handelt sich um eine Liste von Name-Wert-Paaren, die an einen WMI-Anbieter übergeben werden, der Kontextinformationen für einen benutzerdefinierten Vorgang unterstützt.
Typ: | Hashtable |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-DisableWildcardHandling
Dieser Parameter behandelt Wildcardzeichen als Literalzeichenwerte. Sie können es nicht mit ForceWildcardHandling kombinieren.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-ForceWildcardHandling
Dieser Parameter verarbeitet Wildcardzeichen und kann zu unerwartetem Verhalten führen (nicht empfohlen). Sie können es nicht mit DisableWildcardHandling kombinieren.
Typ: | SwitchParameter |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Option
Die häufigste Option ist Fast
.
Geben Sie eine Abfrageoption an:
-
None
:Vorgabe -
Lazy
: Standardmäßig lädt das Cmdlet verzögerte Eigenschaften. -
Fast
: Verwenden Sie diese Option, um keine verzögerten Eigenschaften zu laden. Diese Option kann für einige Klassen schneller Ergebnisse zurückgeben. -
ExpectResults
ExpectResultsThrowException
& : Wenn die Abfrage keine Ergebnisse zurückgibt, lösen Sie eine Ausnahme aus. Diese Ausnahme beendet in der Regel ein Skript. -
FastExpectResults
LazyExpectResults
&: Diese Optionen kombinierenFast
undLazy
mitExpectResults
. -
ExpectResultsSoftFail
: Wenn die Abfrage keine Ergebnisse zurückgibt, geben Sie einen Fehler aus, beenden Sie das Skript jedoch nicht.
Weitere Informationen zu verzögerten Eigenschaften finden Sie unter Verzögerte Eigenschaften von Configuration Manager.
Die folgenden Werte sind nur für die interne Verwendung vorgesehen:
- Klonen
- NoMask
- NoRefresh
- IgnoreNoResults
Typ: | QueryOptions |
Aliase: | Options |
Zulässige Werte: | None, NoRefresh, Lazy, Fast, ExpectResults, FastExpectResults, LazyExpectResults, Clone, ExpectResultsSoftFail, ExpectResultsThrowException, NoMask, IgnoreNoResults |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Query
Gibt eine WMI Query Language (WQL)-Anweisung an.
Typ: | String |
Position: | 0 |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Search
Gibt ein SMSProviderSearch-Objekt an.
Typ: | SmsProviderSearch |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-WhatIf
Zeigt, was passieren würde, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.
Typ: | SwitchParameter |
Aliase: | wi |
Position: | Named |
Standardwert: | False |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
Eingaben
None
Ausgaben
IResultObject[]
IResultObject