在 Microsoft Intune 中對多個裝置使用裝置查詢,以跨裝置清查資料執行Kusto 查詢語言 (KQL) 查詢,並識別跨受管理機群的趨勢。 本文說明必要條件、如何在 Intune 系統管理中心建立和執行查詢、如何使用結果,以及支援的運算子、函式和屬性。
開始之前
- 確認您的環境符合所有 必要條件。
針對多個裝置進行裝置查詢的其他必要條件:
裝置平台需求
多個裝置的裝置查詢支援:
- Windows
- Android
- (COSU) Android 企業版公司所擁有的專用裝置
- Android 企業版公司擁有的完全受控 (COBO)
- Android 企業版公司擁有的工作設定檔 (COPE)
- 蘋果
- iOS/iPadOS
- macOS
裝置設定需求
多個裝置的裝置查詢支援下列裝置:
- 由 Intune 管理並標示為公司擁有。
- Windows 裝置必須部署屬性 目錄原則 ,才能收集清查資料。
針對 iOS/iPadOS、Android 和 macOS,系統會自動收集資料,而且不需要部署個別的屬性目錄原則。
角色需求
針對多個裝置使用裝置查詢
- 在 Microsoft Intune 系統管理中心選取 [裝置>裝置查詢]。
- 使用支援的屬性和運算子在查詢方塊中輸入查詢。
- 選取 [執行] 以執行查詢。
- 在 [結果 ] 索引標籤中檢視結果。
- 若要在有多個查詢存在時執行部分查詢或單一查詢,請強調顯示您想要執行的查詢,然後選取 [執行]。 只會執行醒目提示的查詢。
您可以展開左側的檢視,以查看您可以查詢的所有可用屬性。 選取要插入查詢中的屬性。 您也可以調整左窗格和查詢視窗的大小,以調整配置。
如需Kusto 查詢語言 (KQL) 的詳細資訊,請參閱深入了解 Kusto 查詢語言。
提示
使用 Intune 中的 Copilot,利用自然語言要求產生裝置查詢的 KQL 查詢。 若要深入了解,請參閱 在裝置查詢中使用 Copilot 查詢。
查詢結果和動作
執行查詢之後,結果會顯示在 [結果 ] 索引標籤中。您可以透過數種方式與結果互動:
- 當查詢傳回 50 個或更少項目時,您可以搜尋結果中的所有資料列,並使用欄標題來套用篩選。
- 選取 [將所有項目新增至群組],直接從查詢結果建立 Microsoft Entra 安全性群組。 此動作可協助您使用 Microsoft Entra 條件式存取原則或 Microsoft Intune 原則鎖定特定裝置。
- 選取 [匯出] 以將結果儲存至 .csv 檔案。 您可以匯出所有資料欄位,或只匯出選取的資料欄位。 您最多可以匯出 50,000 個結果至檔案。
範例查詢
為了協助您開始使用,本節提供一些範例查詢。 若要存取範例查詢,請展開 [快速入門] 頁面下的範例查詢區段,然後選取您要新增至查詢視窗的查詢。 下一節顯示範例查詢的清單。
依核心數排名前列的處理器
此查詢會顯示依核心計數排列的前五個 CPU。
Cpu
| project Device, ProcessorId, Model, Architecture, CpuStatus, ProcessorType, CoreCount, LogicalProcessorCount, Manufacturer, AddressWidth
| order by CoreCount asc
| take 5
磁碟未受保護的裝置
此查詢會列出具有未加密磁碟的裝置。
EncryptableVolume
| where ProtectionStatus != "PROTECTED"
| join LogicalDrive on Device
ARM64 裝置
此查詢會列出所有配備 ARM64 處理器的裝置。
Cpu
| where Architecture == "ARM64"
依處理器架構排列的裝置計數
此查詢依 CPU 架構提供裝置摘要。
Cpu
| summarize DeviceCount = count() by Architecture
依電池容量排名前列的裝置
此查詢會依完全充電的電池容量列出前 10 個裝置。
Battery
| project Device, InstanceName, Manufacturer, Model, SerialNumber, CycleCount,
DesignedCapacity,
FullChargedCapacity,
FullChargedCapacityPercent = (FullChargedCapacity * 100) / DesignedCapacity
| top 10 by FullChargedCapacityPercent asc
裝置記憶體資訊
此查詢會列出具有實體和虛擬記憶體的裝置,單位 GB。
MemoryInfo
| project Device,
PhysicalMemoryGB = PhysicalMemoryTotalBytes/(1000*1000*1000),
VirtualMemoryGB = VirtualMemoryTotalBytes/(1000*1000*1000)
| order by PhysicalMemoryGB asc
依作業系統版本的裝置計數
此查詢依 OS 版本提供裝置摘要。
OsVersion| summarize DevicesCount = count() by OsVersion
裝置 BIOS 資訊
此查詢會根據 BIOS 製造商列出裝置。
BiosInfo| where Manufacturer contains "Microsoft"
停用 TPM 的裝置
此查詢會列出已停用 TPM 的裝置。
Tpm | where Enabled != true
支援的運算子
裝置查詢僅支援 Kusto 查詢語言 (KQL) 中支援的運算子子集。 目前支援下列運算子:
資料表運算子
資料表運算子可用來篩選、彙總及轉換資料流。 支援下列運算子:
| 資料表運算子 | 描述 |
|---|---|
count |
傳回包含記錄數目的單一記錄的資料表。 |
distinct |
產生一個表格,其中包含輸入資料表中所提供資料行的不同組合。 |
join |
合併兩個資料表中的資料列,根據指定資料行中的相符值形成新資料表。 支援下列連接類型: - innerunique (預設)- inner- leftouter- rightouter- fullouter- leftsemi- rightsemi- leftanti- rightanti聯結陳述式支援選擇性 on 子句。 在裝置查詢案例中,您通常會在聯結包含Device實體的資料表時使用on Device。 is: 的join常用語法。 LeftTable | join [hints] (RightTable) on Conditions重要: 已不再支援聯 on Device.DeviceID 結。 目前指定的on Device.DeviceId查詢應該切換為使用 on Device,或在加入實體時Device省略子on句。如需詳細資訊,請參閱 連接運算子。 |
order by |
依一欄或多欄排序輸入表格的列。 |
project |
選取要包含、重新命名或捨棄的欄,然後插入新的計算欄。 |
take |
返回最多指定的列數。 |
top |
傳回依指定資料行排序的前 N 筆記錄。 |
where |
將表格篩選為滿足述詞的列子集。 |
summarize |
產生彙總輸入資料表內容的資料表。 |
注意事項
Device是實體類型,不能直接用於需要純量值的運算子 (distinct例如 、 、 summarizeorder by 和) 。 針對這些運算子,請使用裝置 (的特定純量屬性,例如 Device.SerialNumberDevice.OSVersion) 。
純量運算子
純量運算子可用來執行個別值的運算。 支援下列運算子:
| 運算子 | 描述 | 範例 |
|---|---|---|
== |
等於 |
1 == 1, 'aBc' == 'AbC' |
!= |
不等於 |
1 != 2, 'abc' != 'abcd' |
< |
更少 |
1 < 2, 'abc' < 'DEF' |
> |
大於 |
2 > 1, 'xyz' > 'XYZ' |
<= |
小於或等於 |
1 <= 2, 'abc' <= 'abc' |
>= |
大於或等於 |
2 >= 1, 'abc' >= 'ABC' |
+ |
新增 |
2 + 1, now() + 1d |
- |
Subtract |
2 - 1, now() - 1h |
* |
乘法 | 2 * 2 |
/ |
除以 | 2 / 1 |
% |
餘數 | 2 % 1 |
like |
LHS 包含 RHS 的相符項目 | 'abc' like '%B%' |
contains |
RHS 作為 LHS 的亞序列出現 | 'abc' contains 'b' |
!contains |
RHS 不會在 LHS 中發生 | 'team' !contains 'i' |
startswith |
RHS 是 LHS 的初始子序列 | 'team' startswith 'tea' |
!startswith |
RHS 不是 LHS 的初始子序列 | 'abc' !startswith 'bc' |
endswith |
RHS 是 LHS 的結束子序列 | 'abc' endswith 'bc' |
!endswith |
RHS 不是 LHS 的結束子序列 | 'abc' !endswith 'a' |
and |
當且僅當 RHS 和 LHS 為 True 時,才為 True | (1 == 1) and (2 == 2) |
or |
當且僅當 RHS 或 LHS 為 True 時,才為 True | (1 == 1) or (1 == 2) |
彙總函數
彙總函數可用來摘要資料。 支援下列功能:
| 函數 | 描述 |
|---|---|
avg() |
傳回整個群組值的平均值 |
count() |
傳回每個摘要群組的記錄計數 |
countif() |
傳回述詞評估為 true 的列計數 |
dcount() |
傳回群組中不同值的數目 |
max() |
傳回整個群組的最大值 |
maxif() |
傳回述詞評估為 true 的群組的最大值 |
min() |
傳回整個群組的最小值 |
minif() |
傳回述詞評估為 true 的群組最小值 |
percentile() |
傳回由運算式所定義之母體中,指定之最接近排名百分位數的估計值 |
sum() |
傳回整個群組值的總和 |
sumif() |
傳回述詞評估為 True 的運算式總和 |
純量函數
純量函數可用來執行個別值的運算。 支援下列功能:
| 函數 | 描述 |
|---|---|
ago() |
從目前的 UTC 時鐘時間中減去指定的時間範圍。 |
bin() |
將值向下捨位為指定 Bin 大小的日期時間倍數。 |
case() |
評估述詞清單,並傳回滿足述詞的第一個結果運算式。 |
datetime_add() |
從指定的日期部分乘以指定金額計算新的日期時間,再加到指定的日期時間。 不支援 amount 參數的負值。 |
datetime_diff() |
計算兩個日期時間值之間的差異。 |
iif() |
評估第一個引數,並根據述詞在第二個) 評估為 True 或第三個) ( (評估為 False 傳回第二個或第三個引數的值。 |
indexof() |
報告輸入字串中指定字串第一次出現時的從零開始的索引。 |
isnotnull() |
評估其唯一引數,並傳回布林值,指出引數是否評估為非 Null 值。 |
isnull() |
評估其唯一引數,並傳回布林值,指出引數是否評估為 Null 值。 |
now() |
傳回目前的 UTC 時鐘時間。 |
strcat() |
串連 1 到 64 個引數。 |
strlen() |
傳回輸入字串的長度 (以字元為單位)。 |
substring() |
從來源字串擷取子字串,從某個索引開始到字串結尾。 |
tostring() |
將輸入轉換成字串表示法。 |
支援的屬性
裝置查詢支援下列實體。 若要深入了解每個實體支援的屬性,請參閱 Intune 資料平台結構描述。
Apple Auto Setup Admin AccountsApple Device StatesApple Update SettingsBatteryBios InfoBluetoothCellularCPUDevice StorageDisk DriveEncryptable VolumeLocal AI AgentLogical DriveMemory InfoNetwork AdapterOs VersionShared iPadSim InfoSystem EnclosureSystemInfoTimeTpmVideo ControllerWindows Qfe
裝置實體
多個裝置的裝置查詢支援連結實體。 [裝置] 實體可以與所有其他支援的實體一起使用。 裝置實體支援下列內容:
| 屬性 | 類型 | 描述 |
|---|---|---|
DeviceId |
字串 | 由 Intune 在裝置註冊過程中產生的唯一識別碼。 |
EntraDeviceId |
字串 | 由 Microsoft Entra 產生的唯一識別碼,做為 Microsoft Entra 註冊或加入的一部分。 |
ManagementName |
字串 | 僅在 Intune 系統管理中心使用的易於辨識的裝置名稱。 變更此名稱不會變更裝置名稱或公司入口網站中的名稱。 |
DeviceName |
字串 | 裝置名稱 |
SerialNumber |
字串 | 裝置的序號 |
Manufacturer |
字串 | 裝置製造商 |
Model |
字串 | 裝置的模型 |
OSDescription |
字串 | 作業系統版本的完整說明 |
OSVersion |
字串 | 裝置上的作業系統版本 |
EnrollmentProfileName |
字串 | 指派給裝置的註冊設定檔名稱。 預設值為空白字串,表示系統未將註冊設定檔指派至裝置。 |
EnrolledDateTime |
日期時間 | 裝置在 Intune 中註冊的日期與時間。 |
CertExpirationDateTime |
日期時間 | 報告裝置管理憑證到期日。 |
EnrolledByUserId |
字串 | 註冊裝置之使用者的唯一識別碼 |
PrimaryUserId |
字串 | 與裝置相關聯之使用者的唯一識別碼。 |
LastLoggedOnUserId |
字串 | 上次登入裝置之使用者的唯一識別碼。 |
InCompliancePeriodUntilDateTime |
日期時間 | 裝置合規性寬限期到期的日期時間 |
DeviceCategoryId |
字串 | 裝置類別顯示名稱。 預設值為空字串。 |
LastSeenDateTime |
字串 | 裝置上次連線至 Intune 的日期和時間。 |
Ownership |
字串 | 裝置的所有權。 |
Device實體可讓您參考與每個結果資料列相關聯的裝置資訊,而不需要明確聯結至裝置資料表。
根據預設,查詢結果會包含實體 Device 資料行,其為每一列提供裝置內容。 運算子,例如 project、 summarize或 可以 distinct 變更要返回的欄。
Device 代表與結果資料列相關聯的裝置,而且可以直接作為實體類型資料行參照。 在查詢結果中顯示時, Device 實體會使用易記識別碼顯示,例如裝置名稱,讓您可以更容易識別裝置。
您可以使用查詢中Device.[Property]參考實體的Device屬性。
下列查詢會傳回具有特定序號之裝置的所有 DiskDrive 資訊:
DiskDrive
| where Device.SerialNumber == "123"
下列查詢會從 Device 實體投影實體和 Manufacturer 屬性 DiskDrive :
DiskDrive
| project Device, Manufacturer
根據預設,查詢結果包含代表 Device 與每個資料列相關聯之裝置的實體。
Device實體是實體類型的資料行,不會隱含解析為特定的純量屬性。
排序或篩選結果時,明確參考您想要使用的裝置屬性。 例如,此查詢會依裝置名稱排序結果:
MemoryInfo
| order by Device.DeviceName
同樣地,若要依裝置名稱篩選,請直接參考 DeviceName 屬性:
Cpu
| where Device.DeviceName == "Desktop123"
已知限制
使用實體類型欄,
Device例如在彙總函數中,可以在編輯器中顯示紅色底線,因為彙總函數需要純量值。 若要避免這種情況,請參考實體的特定純量屬性。 例如:Cpu | summarize max(CpuUsage) by Device.Manufacturer使用 和 參數運算子
$left$right的join查詢,在編輯器中可能會顯示紅色底線。 不過,查詢仍然可以如預期執行並傳回結果。單一查詢最多可以包含三個
join運算子。 聯結較多的查詢失敗。查詢最多會傳回 ~50,000 筆記錄。
每分鐘最多可以提交 10 個查詢。 同一分鐘內的其他查詢失敗。
每月最多可以提交 1,000 個查詢。
函數參數
datetime_add()不支援負值amount。若參照彙總函式所產生的變數而未明確命名,可能會導致查詢失敗。 明確命名變數可讓查詢成功。 例如:
- 查詢
Device | summarize dcount(DeviceId) | order by dcount_DeviceId失敗。 - 查詢
Device | summarize DCountDeviceIdRename = dcount(DeviceId) | order by DCountDeviceIdRename成功。 - 目前不支援「本機 AI 代理程式」實體的 NL2KQL 協助。
- 查詢