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
&:這些選項會將 和Lazy
與ExpectResults
結合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 |
-Search
指定 SMSProviderSearch 物件。
類型: | SmsProviderSearch |
Position: | Named |
預設值: | None |
必要: | True |
接受管線輸入: | False |
接受萬用字元: | False |
-WhatIf
顯示執行 Cmdlet 時會發生什麼情況。 Cmdlet 不會執行。
類型: | SwitchParameter |
別名: | wi |
Position: | Named |
預設值: | False |
必要: | False |
接受管線輸入: | False |
接受萬用字元: | False |
輸入
None
輸出
IResultObject[]
IResultObject