次の方法で共有


Invoke-CMWmiQuery

WMI クエリを実行します。

構文

Invoke-CMWmiQuery
      [-Context <Hashtable>]
      [-Option <QueryOptions>]
      [-Query] <String>
      [-DisableWildcardHandling]
      [-ForceWildcardHandling]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]
Invoke-CMWmiQuery
      -ClassName <String>
      [-Context <Hashtable>]
      [-Option <QueryOptions>]
      -Search <SmsProviderSearch>
      [-DisableWildcardHandling]
      [-ForceWildcardHandling]
      [-WhatIf]
      [-Confirm]
      [<CommonParameters>]

説明

Invoke-CMWmiQuery コマンドレットは、Windows Management Instrumentation (WMI) クエリを実行します。 他のクエリ コマンドレットやツールとは異なり、このコマンドレットを使用すると、接続と名前空間が既に設定されています。

このコマンドレットを使用して、WMI クエリ言語 (WQL) を使用してクエリを作成することもできます。 Configuration Manager は、コレクション内のクエリに WQL を使用します。 WQL は SQL に似ていますが、引き続き SMS プロバイダーを使用するため、ロールベースのアクセス制御に従います。

注:

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

例 1: WQL クエリを実行する

最初のコマンドは、WQL クエリを作成し、 $WQL 変数に格納します。 2 番目のコマンドは、 変数に格納されているクエリを実行します。

$WQL = @"
SELECT app.* FROM SMS_ApplicationLatest AS app
INNER JOIN SMS_CIContentPackage AS con ON app.CI_ID=con.CI_ID
INNER JOIN SMS_DistributionPoint AS srv ON con.PackageID=srv.PackageID
WHERE app.IsHidden = 0
"@

Invoke-CMWmiQuery -Query $WQL -Option Lazy

例 2: デバイス コレクションの WMI クエリを実行する

最初のコマンドは、検索オブジェクトを作成し、 オブジェクトを $Search 変数に格納します。

2 番目のコマンドは、検索順序が CollectionID で昇順であることを指定します。

3 番目のコマンドは、 $Search オブジェクトに検索パラメーターを追加します。 この場合、クエリはデバイス コレクションを検索します。

最後のコマンドは、 $Searchに格納されているクエリを実行します。 CollectionID プロパティ含むクラスとしてSMS_Collectionを指定します。

$Search = [Microsoft.ConfigurationManagement.PowerShell.Provider.SmsProviderSearch]::new()
$Search.AddOrder("CollectionID", [Microsoft.ConfigurationManagement.PowerShell.Provider.SearchParameterOrderBy]::Asc)
$Search.Add("Name","DeviceCol*", $True)

Invoke-CMWmiQuery -Search $Search -ClassName "SMS_Collection" -Option Lazy

例 3: 状態別にサイトの WMI クエリを実行する

最初のコマンドは、既存の検索オブジェクトから検索パラメーターをクリアします。

2 番目のコマンドは、 $Search オブジェクトに検索パラメーターを追加します。 この場合、クエリはサイトを検索します。

最後のコマンドは、 $Searchに格納されているクエリを実行します。 サイトの Status プロパティを含むクラスとしてSMS_Siteを指定します。

$Search.Clear()
$Search.Add("Status", $True)

Invoke-CMWmiQuery -ClassName "SMS_Site" -Search $Search

例 4: サイトの WMI クエリを名前で実行する

最初のコマンドは、既存の検索オブジェクトから検索パラメーターをクリアします。

2 番目のコマンドは、 $Search オブジェクトに検索パラメーターを追加します。 この場合、クエリはサイトを検索します。

最後のコマンドは、 $Searchに格納されているクエリを実行します。 siteName プロパティ含むクラスとしてSMS_Siteを指定します。

$Search.Clear()
$Search.Add("SiteName", $null, [Microsoft.ConfigurationManagement.PowerShell.Provider.SearchParameterOperator]::NotEquals)

Invoke-CMWmiQuery -ClassName "SMS_Site" -Search $Search

例 5: アプリケーションの WMI クエリを実行する

最初のコマンドは、既存の検索オブジェクトから検索パラメーターをクリアします。

2 番目のコマンドは、 $Search オブジェクトに検索パラメーターを追加します。 この場合、クエリはアプリケーションを検索します。

最後のコマンドは、 $Searchに格納されているクエリを実行します。 サイト CI_ID プロパティを含むクラスとして SMS_Application を指定します。

$Search.Clear()
$Search.AddAdhoc("CI_ID > 0")

Invoke-CMWmiQuery -ClassName "SMS_Application" -Search $Search -Option Lazy

パラメーター

-ClassName

クエリを実行する Configuration Manager WMI クラスを指定します。

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

-Confirm

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

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

-Context

WMI コンテキストをハッシュ テーブルとして指定します。 これは、カスタマイズされた操作のコンテキスト情報をサポートする WMI プロバイダーに渡される名前と値のペアの一覧です。

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

-DisableWildcardHandling

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

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

-ForceWildcardHandling

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

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

-Option

最も一般的なオプションは Fastです。

クエリ オプションを指定します。

  • None:デフォルト
  • Lazy: 既定では、コマンドレットは遅延プロパティを読み込みます。
  • Fast: 遅延プロパティを読み込まないようにするには、このオプションを使用します。 このオプションは、一部のクラスの結果をより迅速に返すことができます。
  • ExpectResults & ExpectResultsThrowException: クエリから結果が返されない場合は、例外をスローします。 この例外は通常、スクリプトを終了します。
  • FastExpectResults & LazyExpectResults: これらのオプションは、 FastLazyExpectResultsと組み合わせたオプションです。
  • ExpectResultsSoftFail: クエリから結果が返されない場合は、エラーを出力しますが、スクリプトは終了しません。

遅延プロパティの詳細については、「 Configuration Manager の遅延プロパティ」を参照してください。

次の値は、内部でのみ使用されます。

  • Clone
  • NoMask
  • NoRefresh
  • IgnoreNoResults
型:QueryOptions
Aliases:Options
指定可能な値:None, NoRefresh, Lazy, Fast, ExpectResults, FastExpectResults, LazyExpectResults, Clone, ExpectResultsSoftFail, ExpectResultsThrowException, NoMask, IgnoreNoResults
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:False
ワイルドカード文字を受け取る:False

-Query

WMI クエリ言語 (WQL) ステートメントを指定します。

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

SMSProviderSearch オブジェクトを指定します。

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

-WhatIf

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

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

入力

None

出力

IResultObject[]

IResultObject