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 WMI Query Language-Ausdruck (WQL), 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 Typen 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-Websitelaufwerk aus, z. PS XYZ:\>B. . 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.

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

-Confirm

Fordert Sie vor dem Ausführen des Cmdlets zur Bestätigung auf.

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

-DisableWildcardHandling

Dieser Parameter behandelt Wildcardzeichen als Literalzeichenwerte. Sie können es nicht mit ForceWildcardHandling kombinieren.

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

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

-ForceWildcardHandling

Dieser Parameter verarbeitet Wildcardzeichen und kann zu unerwartetem Verhalten führen (nicht empfohlen). Sie können es nicht mit DisableWildcardHandling kombinieren.

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

-Name

Geben Sie den Namen der Abfrage an.

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters: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
Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-WhatIf

Zeigt, was passieren würde, wenn das Cmdlet ausgeführt wird. Das Cmdlet wird nicht ausgeführt.

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

Eingaben

None

Ausgaben

IResultObject