Invoke-CMQuery
Führen Sie eine Configuration Manager Abfrage aus.
Syntax
Invoke-CMQuery
-InputObject <IResultObject>
[-LimitToCollectionId <String>]
[-DisableWildcardHandling]
[-ForceWildcardHandling]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-CMQuery
-Id <String>
[-LimitToCollectionId <String>]
[-DisableWildcardHandling]
[-ForceWildcardHandling]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Invoke-CMQuery
[-LimitToCollectionId <String>]
-Name <String>
[-DisableWildcardHandling]
[-ForceWildcardHandling]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Beschreibung
Verwenden Sie dieses Cmdlet, um eine Abfrage auf der Configuration Manager-Website auszuführen. 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.
Wenn Sie eine Abfrage ausführen, verarbeitet die Website den WQL-Ausdruck und gibt die Ergebnisse in PowerShell zurück. Je nach Struktur der WQL-Anweisung kann das Format der Ergebnisse variieren.
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.
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: Anzeigen und Ausführen einer Standardabfrage
Dieses Beispiel zeigt zunächst das Cmdlet Get-CMQuery , um die Eigenschaften der Standardabfrage Diese Website und deren Unterwebsites anzuzeigen.
Anschließend wird das Cmdlet Invoke-CMQuery angezeigt, um dieselbe Abfrage auszuführen und die Ergebnisse anzuzeigen.
PS XYZ:\> Get-CMQuery -Id "SMS012"
SmsProviderObjectPath : SMS_Query.QueryID="SMS012"
Comments : This site and all its subsites in the ConfigMgr hierarchy
Expression : SELECT SiteCode, SiteName, Version, ServerName FROM sms_siteandsubsites
LimitToCollectionID :
LocalizedCategoryInstanceNames : {}
Name : This Site and its Subsites
QueryID : SMS012
ResultAliasNames : {sms_siteandsubsites, sms_siteandsubsites, sms_siteandsubsites, sms_siteandsubsites}
ResultColumnsNames : {sms_siteandsubsites.SiteCode, sms_siteandsubsites.SiteName,
sms_siteandsubsites.Version, sms_siteandsubsites.ServerName}
TargetClassName : sms_siteandsubsites
PS XYZ:\> Invoke-CMQuery -Id "SMS012"
SmsProviderObjectPath : SMS_SiteAndSubsites.SiteCode="XYZ"
ServerName : cmserver.contoso.com
SiteCode : XYZ
SiteName : Production primary site
Version : 5.00.9043.1000
Beachten Sie in der Ausgabe des Cmdlets Get-CMQuery , dass der WQL-Ausdruck einfach ist. Es wählt vier Attribute aus einer einzelnen Klasse aus.
Beachten Sie dann, dass die Ausgabe des Cmdlets Invoke-CMQuery eine einfache Tabelle ist.
Beispiel 2: Anzeigen und Ausführen einer komplexen Abfrage
Dieses Beispiel zeigt zunächst das Cmdlet Get-CMQuery , um die Eigenschaften einer benutzerdefinierten Abfrage anzuzeigen.
Anschließend wird das Cmdlet Invoke-CMQuery angezeigt, um dieselbe Abfrage auszuführen und die Ergebnisse anzuzeigen.
PS XYZ:\> Get-CMQuery -Id "XYZ00002"
SmsProviderObjectPath : SMS_Query.QueryID="XYZ00002"
Comments :
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%"
LimitToCollectionID : XYZ0025F
LocalizedCategoryInstanceNames : {}
Name : Server 2016
QueryID : XYZ00002
ResultAliasNames : {SMS_R_System, SMS_R_System, SMS_G_System_OPERATING_SYSTEM}
ResultColumnsNames : {SMS_R_System.Name, SMS_R_System.LastLogonUserName,
SMS_G_System_OPERATING_SYSTEM.Caption}
TargetClassName : SMS_R_System
PS XYZ:\> Invoke-CMQuery -Id "XYZ00002"
SmsProviderObjectPath : __GENERIC
SMS_G_System_OPERATING_SYSTEM :
instance of SMS_G_System_OPERATING_SYSTEM
{
Caption = "Microsoft Windows Server 2012 R2 Datacenter";
};
SMS_R_System :
instance of SMS_R_System
{
LastLogonUserName = "jqpublic";
Name = "millcreek01";
};
Diese Abfrage verfügt über einen komplexeren Ausdruck , der zwei Klassen verknüpft. Das Ergebnis der Abfrage ist dann komplexer.
Parameter
-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 |
-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 |
-Id
Geben Sie die ID der auszuführenden Abfrage an. Beispiel: "XYZ00006"
.
Type: | String |
Aliases: | QueryId |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
Geben Sie ein auszuführende Abfrageobjekt an. Verwenden Sie zum Abrufen dieses Objekts das Cmdlet Get-CMQuery .
Type: | IResultObject |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-LimitToCollectionId
Wenn die Abfrage so konfiguriert ist, dass sie zur Eingabe der einschränkenden Sammlung auffordert, verwenden Sie diesen Parameter, um eine Sammlungs-ID anzugeben. Wenn die LimitToCollectionID-Eigenschaft der Abfrage ist <Prompt>
und Sie diesen Parameter beim Ausführen der Abfrage nicht einschließen, schlägt das Cmdlet fehl.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
Geben Sie den Namen der auszuführenden Abfrage an.
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
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
Microsoft.ConfigurationManagement.ManagementProvider.IResultObject
Ausgaben
System.Object
Ähnliche Themen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für