多個裝置的裝置查詢

在 Microsoft Intune 中對多個裝置使用裝置查詢,以跨裝置清查資料執行Kusto 查詢語言 (KQL) 查詢,並識別跨受管理機群的趨勢。 本文說明必要條件、如何在 Intune 系統管理中心建立和執行查詢、如何使用結果,以及支援的運算子、函式和屬性。

開始之前

針對多個裝置進行裝置查詢的其他必要條件:

裝置平台需求

多個裝置的裝置查詢支援:

  • Windows
  • Android
    • (COSU) Android 企業版公司所擁有的專用裝置
    • Android 企業版公司擁有的完全受控 (COBO)
    • Android 企業版公司擁有的工作設定檔 (COPE)
  • 蘋果
    • iOS/iPadOS
    • macOS

裝置設定需求

多個裝置的裝置查詢支援下列裝置:

  • 由 Intune 管理並標示為公司擁有。
  • Windows 裝置必須部署屬性 目錄原則 ,才能收集清查資料。
    針對 iOS/iPadOS、Android 和 macOS,系統會自動收集資料,而且不需要部署個別的屬性目錄原則。

角色需求

若要針對多個裝置使用裝置查詢,請使用至少具有下列其中一個角色的帳戶:

  • 技術支援中心操作員
  • 自訂角色 包含:
    • 權限 受管理的裝置/查詢
    • 提供 Intune (中受管理裝置的可見度和存取權限,例如,組織/讀取、受管理的裝置/讀取)

針對多個裝置使用裝置查詢

  1. Microsoft Intune 系統管理中心選取 [裝置>裝置查詢]。
  2. 使用支援的屬性和運算子在查詢方塊中輸入查詢。
  3. 選取 [執行] 以執行查詢。
  4. [結果 ] 索引標籤中檢視結果。
    • 若要在有多個查詢存在時執行部分查詢或單一查詢,請強調顯示您想要執行的查詢,然後選取 [執行]。 只會執行醒目提示的查詢。

您可以展開左側的檢視,以查看您可以查詢的所有可用屬性。 選取要插入查詢中的屬性。 您也可以調整左窗格和查詢視窗的大小,以調整配置。

如需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 Accounts
  • Apple Device States
  • Apple Update Settings
  • Battery
  • Bios Info
  • Bluetooth
  • Cellular
  • CPU
  • Device Storage
  • Disk Drive
  • Encryptable Volume
  • Local AI Agent
  • Logical Drive
  • Memory Info
  • Network Adapter
  • Os Version
  • Shared iPad
  • Sim Info
  • System Enclosure
  • SystemInfo
  • Time
  • Tpm
  • Video Controller
  • Windows 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 資料行,其為每一列提供裝置內容。 運算子,例如 projectsummarize或 可以 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$rightjoin查詢,在編輯器中可能會顯示紅色底線。 不過,查詢仍然可以如預期執行並傳回結果。

  • 單一查詢最多可以包含三個 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 協助。