New-CMQuery
Erstellen Sie eine Configuration Manager-Abfrage.
Syntax
New-CMQuery
[-Comment <String>]
-Expression <String>
[-LimitToCollectionId <String>]
-Name <String>
[-TargetClassName <String>]
[-DisableWildcardHandling]
[-ForceWildcardHandling]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Beschreibung
Verwenden Sie dieses Cmdlet, um eine Abfrage in Configuration Manager zu erstellen.
Configuration Manager-Abfragen definieren einen WQL-Ausdruck (WMI Query Language), um Informationen aus der Standortdatenbank basierend auf den von Ihnen angegebenen Kriterien abzurufen. WQL ähnelt SQL, überläuft aber weiterhin den SMS-Anbieter und nicht direkt in die Datenbank. Daher hält sich WQL weiterhin an Ihre rollenbasierte Zugriffskonfiguration.
Abfragen können die meisten Arten von Configuration Manager-Objekten zurückgeben, z. B. Computer, Standorte, Sammlungen, Anwendungen und Bestandsdaten. Weitere Informationen finden Sie unter Einführung in Abfragen in Configuration Manager.
Standardmäßig enthält Configuration Manager mehrere Abfragen. Sie können das Cmdlet Get-CMQuery verwenden, um die Standardabfragen zu überprüfen. Weitere Beispiele für WQL-Ausdrücke finden Sie unter Beispiel für WQL-Abfragen.
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: Erstellen einer neuen Abfrage für Server einer bestimmten Version
In diesem Beispiel wird eine neue Abfrage mit dem Namen Server 2016 erstellt, die nach Clients mit der Betriebssystembeschriftung sucht, die mit Microsoft Windows Server 2012 beginnt. Es werden die folgenden drei Eigenschaften zurückgegeben: Name, Benutzername der letzten Anmeldung und Beschriftung des Betriebssystems.
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"
Beispiel 2: Erstellen einer Abfrage für Desktopgeräte
In diesem Beispiel wird eine neue Abfrage mit dem Namen Desktopgeräte erstellt, die nach Geräten mit bestimmten Werten für die Eigenschaft Chassis types der System Enclosure-Klasse sucht. Es gibt mehrere Eigenschaften zurück und wird durch eine bestimmte Auflistung eingeschränkt.
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"
Parameter
-Comment
Geben Sie einen optionalen Kommentar an, um die Abfrage auf der Website weiter zu identifizieren.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
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: | 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 |
-Expression
Geben Sie die WQL-Anweisung an, die die attribute definiert, die in den Ergebnissen angezeigt werden sollen, und die Kriterien zum Einschränken der Ergebnisse.
WQL-Anweisungen enthalten häufig doppelte Anführungszeichen ("
). Legen Sie daher den Wert dieses Parameters als Zeichenfolge fest, die in einfache Anführungszeichen ('
) eingeschlossen ist.
Weitere Beispiele finden Sie unter Beispiel für WQL-Abfragen.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
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 |
-LimitToCollectionId
Geben Sie an, wie die Sammlungsbegrenzung für diese Abfrage konfiguriert werden soll:
-
Keine Sammlungsbegrenzung: Legen Sie den Wert dieses Parameters auf eine leere Zeichenfolge (
""
) fest. Verwenden Sie nicht die$null
integrierte Variable. -
Limit to collection (Auf Sammlung beschränken): Geben Sie die ID einer Sammlung an. Beispiel
"SMSDM003"
: Für die Sammlung Alle Desktop- und Serverclients . -
Aufforderung zur Sammlung: Legen Sie den Wert dieses Parameters auf fest
"<Prompt>"
.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-Name
Geben Sie den Namen der Abfrage an.
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | True |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
-TargetClassName
Geben Sie den Namen der Objektklasse an, die von der Abfrage zurückgegeben werden soll. Es sind viele Objekttypen verfügbar. In der folgenden Tabelle sind mehrere allgemeine Klassennamen mit der Beschreibung aus der Configuration Manager-Konsole aufgeführt:
Name der Klasse | Beschreibung |
---|---|
SMS_R_System |
Systemressource |
SMS_Program |
Programm |
SMS_R_UserGroup |
Benutzergruppenressource |
SMS_R_User |
User-Ressource |
SMS_SiteAndSubsites |
Website und Unterwebsites |
SMS_R_UnknownSystem |
Unbekannter Computer |
Typ: | String |
Position: | Named |
Standardwert: | None |
Erforderlich: | False |
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: | None |
Erforderlich: | False |
Pipelineeingabe akzeptieren: | False |
Platzhalterzeichen akzeptieren: | False |
Eingaben
None
Ausgaben
IResultObject