共用方式為


New-CMQuery

建立 Configuration Manager 查詢。

語法

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

Description

使用此 Cmdlet 在 Configuration Manager 中建立查詢。

Configuration Manager 查詢會定義 WMI 查詢語言 (WQL) 表示式,以根據您提供的準則從月台資料庫取得資訊。 WQL 類似於 SQL,但仍會通過 SMS 提供者,而不是直接進入資料庫。 因此,WQL 仍然遵守您的角色型存取設定。

查詢可以傳回大部分類型的 Configuration Manager 物件,包括計算機、月臺、集合、應用程式和清查數據。 如需詳細資訊, 請參閱 Configuration Manager 中的查詢簡介

根據預設,Configuration Manager 包含數個查詢。 您可以使用 Get-CMQuery Cmdlet 來檢閱預設查詢。 如需 WQL 表達式的更多範例,請參閱 範例 WQL 查詢

注意事項

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

範例

範例 1:為特定版本的伺服器建立新的查詢

此範例會建立名為 Server 2016 的新查詢,以搜尋具有以 windows Server 2012 Microsoft開頭操作系統標題的用戶端。 它會傳回下列三個屬性: 名稱上次登入用戶名稱OS標題

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:建立桌面裝置的查詢

此範例會建立名為 Desktop 裝置的新查詢,以搜尋具有系統機箱類別底座類型屬性之特定值的裝置。 它會傳回多個屬性,並受限於特定集合。

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
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-Confirm

執行 Cmdlet 之前提示您確認。

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

-DisableWildcardHandling

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

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

-Expression

指定 WQL 語句,定義要在結果中顯示的屬性,以及限制結果的準則。

WQL 語句通常會在) (" 包含雙引號,因此請將此參數的值設定為以單引號括住的字串, (') 。

如需更多範例,請 參閱範例 WQL 查詢

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

-ForceWildcardHandling

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

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

-LimitToCollectionId

指定如何設定此查詢的集合限制:

  • 不限集合:將此參數的值設定為空白字串 ("") 。 請勿使用 $null 內建變數。
  • 集合限制:指定集合的標識碼。 例如, "SMSDM003" 針對 [所有桌面] 和 [伺服器用戶端] 集合。
  • 提示收集:將此參數的值設定為 "<Prompt>"
類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-Name

指定查詢的名稱。

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

-TargetClassName

指定您要查詢傳回的物件類別名稱。 有許多可用的物件類型。 下表列出數個通用類別名稱,以及 Configuration Manager 控制台的描述:

類別名稱 描述
SMS_R_System 系統資源
SMS_Program 程式
SMS_R_UserGroup 使用者群組資源
SMS_R_User 用戶資源
SMS_SiteAndSubsites 網站和子網站
SMS_R_UnknownSystem 未知的電腦
類型:String
Position:Named
預設值:None
必要:False
接受管線輸入:False
接受萬用字元:False

-WhatIf

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

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

輸入

None

輸出

IResultObject