Invoke-CMQuery
Configuration Manager クエリを実行します。
構文
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>]
説明
このコマンドレットを使用して、Configuration Manager サイトでクエリを実行します。 Configuration Managerクエリでは、指定した条件に基づいてサイト データベースから情報を取得する WMI クエリ言語 (WQL) 式を定義します。 WQL は SQL に似ていますが、引き続きデータベースに直接ではなく SMS プロバイダーを経由します。 そのため、WQL は引き続きロールベースのアクセス構成に従います。
クエリを実行すると、サイトは WQL 式を処理し、結果を PowerShell に返します。 WQL ステートメントの構造によっては、結果の形式が異なる場合があります。
クエリは、コンピューター、サイト、コレクション、アプリケーション、インベントリ データなど、ほとんどの種類のConfiguration Manager オブジェクトを返すことができます。 詳細については、「Configuration Managerでのクエリの概要」を参照してください。
注:
Configuration Manager サイト ドライブからConfiguration Managerコマンドレットを実行します (例: PS XYZ:\>
)。 詳細については、「作業の 開始」を参照してください。
例
例 1: 既定のクエリを表示して実行する
この例では、最初に Get-CMQuery コマンドレットを示し、既定のクエリのプロパティである このサイトとそのサブサイトを表示します。
次に、 Invoke-CMQuery コマンドレットを表示して同じクエリを実行し、結果を表示します。
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
Get-CMQuery コマンドレットの出力で、WQL 式は単純であることに注意してください。 1 つのクラスから 4 つの属性を選択します。
次に、 Invoke-CMQuery コマンドレットの出力が単純なテーブルであることがわかります。
例 2: 複雑なクエリを表示して実行する
この例では、最初に Get-CMQuery コマンドレットを示し、カスタム クエリのプロパティを表示します。
次に、 Invoke-CMQuery コマンドレットを表示して同じクエリを実行し、結果を表示します。
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";
};
このクエリには、2 つのクラスを結合するより複雑な 式 があります。 その後、クエリの結果はより複雑になります。
パラメーター
-Confirm
コマンドレットを実行する前に確認メッセージを表示します。
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-DisableWildcardHandling
このパラメーターは、ワイルドカード文字をリテラル文字の値として扱います。 ForceWildcardHandling と組み合わせることはできません。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-ForceWildcardHandling
このパラメーターはワイルドカード文字を処理し、予期しない動作が発生する可能性があります (推奨されません)。 DisableWildcardHandling と組み合わせることはできません。
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Id
実行するクエリの ID を指定します。 たとえば、「 "XYZ00006"
」のように入力します。
Type: | String |
Aliases: | QueryId |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-InputObject
実行するクエリ オブジェクトを指定します。 このオブジェクトを取得するには、 Get-CMQuery コマンドレットを使用します。
Type: | IResultObject |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-LimitToCollectionId
制限コレクションのプロンプトを表示するようにクエリが構成されている場合は、このパラメーターを使用してコレクション ID を指定します。 クエリの LimitToCollectionID プロパティが で <Prompt>
、クエリの実行時にこのパラメーターを含めない場合、コマンドレットは失敗します。
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Name
実行するクエリの名前を指定します。
Type: | String |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-WhatIf
コマンドレットが実行されるとどうなるかを示します。 コマンドレットは実行されません。
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
入力
Microsoft.ConfigurationManagement.ManagementProvider.IResultObject
出力
System.Object
関連リンク
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示