New-CMQuery

Configuration Manager クエリを作成します。

構文

New-CMQuery
   [-Comment <String>]
   -Expression <String>
   [-LimitToCollectionId <String>]
   -Name <String>
   [-TargetClassName <String>]
   [-DisableWildcardHandling]
   [-ForceWildcardHandling]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

説明

Configuration Manager でクエリを作成するには、このコマンドレットを使用します。

Configuration Manager クエリでは、指定した条件に基づいてサイト データベースから情報を取得する WMI クエリ言語 (WQL) 式を定義します。 WQL は SQL に似ていますが、引き続きデータベースに直接ではなく SMS プロバイダーを経由します。 そのため、WQL は引き続きロールベースのアクセス構成に従います。

クエリは、コンピューター、サイト、コレクション、アプリケーション、インベントリ データなど、ほとんどの種類の Configuration Manager オブジェクトを返すことができます。 詳細については、「 Configuration Manager でのクエリの概要」を参照してください。

既定では、Configuration Manager には複数のクエリが含まれています。 Get-CMQuery コマンドレットを使用して、既定のクエリを確認できます。 WQL 式のその他の例については、「 WQL クエリの例」を参照してください。

注:

PS XYZ:\>など、Configuration Manager サイト ドライブから Configuration Manager コマンドレットを実行します。 詳細については、「作業の 開始」を参照してください。

例 1: 特定のバージョンのサーバーに対する新しいクエリを作成する

この例では、Microsoft Windows Server 2012 で始まる OS キャプションを持つクライアントを検索する Server 2016 という名前の新しいクエリを作成します。 NameLast logon ユーザー名OS キャプションの 3 つのプロパティが返されます。

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"

例 2: デスクトップ デバイスのクエリを作成する

次の使用例は、System Enclosure クラスのシャーシタイププロパティの特定の値を持つデバイスを検索するデスクトップ デバイスという名前の新しいクエリを作成します。 複数のプロパティが返され、特定のコレクションによって制限されます。

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"

パラメーター

-Comment

オプションのコメントを指定して、サイト内のクエリをさらに識別します。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Confirm

コマンドレットを実行する前に確認メッセージを表示します。

型:SwitchParameter
Aliases:cf
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-DisableWildcardHandling

このパラメーターは、ワイルドカード文字をリテラル文字の値として扱います。 ForceWildcardHandling と組み合わせることはできません。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Expression

結果に表示する属性と、結果を制限する条件を定義する WQL ステートメントを指定します。

WQL ステートメントには二重引用符 (") が含まれることがよくあります。そのため、このパラメーターの値を単一引用符 (') で囲まれた文字列として設定します。

その他の例については、「 WQL クエリの例」を参照してください。

型:String
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-ForceWildcardHandling

このパラメーターはワイルドカード文字を処理し、予期しない動作が発生する可能性があります (推奨されません)。 DisableWildcardHandling と組み合わせることはできません。

型:SwitchParameter
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-LimitToCollectionId

このクエリのコレクション制限を構成する方法を指定します。

  • コレクションに制限されない: このパラメーターの値を空の文字列 ("") に設定します。 $null組み込み変数は使用しないでください。
  • コレクションへの制限: コレクションの ID を指定します。 たとえば、すべてのデスクトップクライアントとサーバークライアントコレクションの"SMSDM003"
  • 収集のプロンプト: このパラメーターの値を "<Prompt>" に設定します。
型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Name

クエリの名前を指定します。

型:String
配置:Named
規定値:None
必須:True
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-TargetClassName

クエリで返すオブジェクト クラスの名前を指定します。 使用可能なオブジェクトの種類は多数あります。 次の表に、Configuration Manager コンソールの説明を含む一般的なクラス名をいくつか示します。

クラス名 説明
SMS_R_System システム リソース
SMS_Program プログラム
SMS_R_UserGroup ユーザー グループ リソース
SMS_R_User User リソース
SMS_SiteAndSubsites サイトとサブサイト
SMS_R_UnknownSystem 不明なコンピューター
型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-WhatIf

コマンドレットが実行されるとどうなるかを示します。 コマンドレットは実行されません。

型:SwitchParameter
Aliases:wi
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

入力

None

出力

IResultObject