共用方式為


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>]

Description

Invoke-CMWmiQuery Cmdlet 會執行 Windows Management Instrumentation (WMI) 查詢。 不同於其他查詢 Cmdlet 或工具,此 Cmdlet 已為您設定連線和命名空間。

您也可以使用此 Cmdlet 來建立具有 WMI 查詢語言 (WQL) 的查詢。 Configuration Manager 會針對集合中的查詢使用 WQL。 WQL 類似於 SQL,但仍使用 SMS 提供者,因此會遵守角色型訪問控制。

注意事項

從 Configuration Manager 月臺磁碟驅動器執行 Configuration Manager Cmdlet,例如 PS XYZ:\>。 如需詳細資訊,請 參閱開始使用

範例

範例 1:執行 WQL 查詢

第一個命令會建立 WQL 查詢,並將它儲存在 $WQL 變數中。 第二個命令會執行儲存在變數中的查詢。

$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 變數中。

第二個命令指定搜尋順序是以 CollectionID 遞增。

第三個命令會將搜尋參數新增至 $Search 物件。 在此情況下,查詢會搜尋裝置集合。

最後一個命令會執行儲存在 $Search 中的查詢。 它會將 SMS_Collection 指定為包含 CollectionID 屬性的類別。

$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 查詢

第一個命令會清除任何現有搜尋物件中的搜尋參數。

第二個命令會將搜尋參數新增至 $Search 物件。 在此情況下,查詢會搜尋網站。

最後一個命令會執行儲存在 $Search 中的查詢。 它會將 SMS_Site 指定為包含月臺 Status 屬性的類別。

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

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

範例 4:依名稱執行網站的 WMI 查詢

第一個命令會清除任何現有搜尋物件中的搜尋參數。

第二個命令會將搜尋參數新增至 $Search 物件。 在此情況下,查詢會搜尋網站。

最後一個命令會執行儲存在 $Search 中的查詢。 它會將 SMS_Site 指定為包含 SiteName 屬性的類別。

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

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

範例 5:執行應用程式的 WMI 查詢

第一個命令會清除任何現有搜尋物件中的搜尋參數。

第二個命令會將搜尋參數新增至 $Search 物件。 在此情況下,查詢會搜尋應用程式。

最後一個命令會執行儲存在 $Search 中的查詢。 它會將 SMS_Application 指定為包含網站 CI_ID屬性的 類別。

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

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

參數

-ClassName

指定您要查詢的 Configuration Manager WMI 類別。

類型:String
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-Confirm

執行 Cmdlet 之前提示您確認。

類型:SwitchParameter
別名:cf
Position:Named
預設值:False
必要:False
接受管線輸入:False
接受萬用字元:False

-Context

將 WMI 內容指定為哈希表。 這是傳遞給 WMI 提供者的名稱/值組清單,該提供者支援自定義作業的內容資訊。

類型:Hashtable
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-DisableWildcardHandling

此參數會將通配符視為常值字元值。 您無法將其與 ForceWildcardHandling 結合。

類型:SwitchParameter
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-ForceWildcardHandling

此參數會處理通配符,並可能導致非預期的行為 (不建議) 。 您無法將其與 DisableWildcardHandling 結合。

類型:SwitchParameter
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-Option

最常見的選項是 Fast

指定查詢選項:

  • None:違約
  • Lazy:根據預設,Cmdlet 會載入延遲屬性。
  • Fast:使用此選項不載入延遲屬性。 此選項可以更快速地傳回某些類別的結果。
  • ExpectResults ExpectResultsThrowException&:如果查詢未傳回任何結果,則會擲回例外狀況。 此例外狀況通常會結束腳本。
  • FastExpectResults LazyExpectResults&:這些選項會將 和 LazyExpectResults結合Fast
  • ExpectResultsSoftFail:如果查詢未傳回任何結果,則會輸出錯誤,但不要結束腳本。

如需延遲屬性的詳細資訊,請參閱 Configuration Manager 延遲屬性

下列值僅供內部使用:

  • Clone
  • NoMask
  • NoRefresh
  • IgnoreNoResults
類型:QueryOptions
別名:Options
接受的值:None, NoRefresh, Lazy, Fast, ExpectResults, FastExpectResults, LazyExpectResults, Clone, ExpectResultsSoftFail, ExpectResultsThrowException, NoMask, IgnoreNoResults
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-Query

指定 WMI 查詢語言 (WQL) 語句。

類型:String
Position:0
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

指定 SMSProviderSearch 物件。

類型:SmsProviderSearch
Position:Named
預設值:None
必要:True
接受管線輸入:False
接受萬用字元:False

-WhatIf

顯示執行 Cmdlet 時會發生什麼情況。 Cmdlet 不會執行。

類型:SwitchParameter
別名:wi
Position:Named
預設值:False
必要:False
接受管線輸入:False
接受萬用字元:False

輸入

None

輸出

IResultObject[]

IResultObject