设备查询使你能够快速获取有关 Windows 设备状态的按需信息。 在所选设备上输入查询时,设备查询将实时运行查询。 然后,返回的数据可用于响应安全威胁、对设备进行故障排除或做出业务决策。
开始之前
- 确认你的环境满足所有 先决条件。
设备查询的其他先决条件:
设备配置要求
设备查询支持以下 Windows 设备:
- 由 Intune 管理并标记为公司拥有。
- 已加入 Microsoft Entra
- 已加入 Microsoft Entra 混合
设备查询实时运行:查询设备时,Intune 会向设备发送请求,并期望立即得到响应。 WNS 是传输机制:Windows 推送通知服务用于通知设备并返回查询结果。 强制依赖关系:由于 WNS 是此通信不可或缺的一部分,因此无法禁用或绕过它。 如果 WNS 被阻止或不可用,则设备查询将失败。
角色要求
使用设备查询
- 在 Microsoft Intune 管理中心,选择“设备>Windows”。
- 选择一个设备,然后在“监视器”部分下选择“设备查询”。
“ 支持的属性 ”部分列出了可以查询的受支持属性。 若要运行查询,请输入Kusto 查询语言 (KQL) 查询,然后选择“运行”。 结果显示在 “结果” 选项卡区域中。
有关 Kusto 查询语言的详细信息,请参阅 Kusto 查询语言概述。
提示
使用 Intune 中的 Copilot,使用自然语言请求为设备查询生成 KQL 查询。 若要了解详细信息,请参阅 在设备查询中使用 Copilot 进行查询。
最佳实践:
- 考虑如何使用设备查询来帮助 L1/L2 工程师更快地解决支持票证,同时最大程度地减少对用户的服务中断。
- 查看通常需要远程控制会话到最终用户设备的支持流程和任务。 检查是否可以使用单一设备查询完成这些操作 - 例如检查正在运行的服务、检查应用程序配置的注册表项值、检查应用程序版本或按 CPU 消耗率报告排名靠前的进程。
- 在 ITSM 知识库中为定期调查创建已保存的查询,以便 L1/L2 工程师快速访问。
- 更新进程以使用远程操作来快速解决问题。 重新启动设备或运行修正脚本来解决已知问题。
远程设备操作
在单设备查询中使用 Intune 远程设备操作来帮助你远程管理设备。 在设备查询界面中,现在可以根据查询结果运行设备操作,以便更快、更高效地进行故障排除。
可用的设备操作取决于设备平台和配置。 并非所有操作都适用于所有设备。 有关可在设备上执行的操作的完整列表,请参阅 Microsoft Intune 中的远程设备操作。
支持的运算符
设备查询仅支持Kusto 查询语言 (KQL) 中支持的运算符子集。 目前支持以下运算符:
表运算符
表运算符可用于过滤、汇总和转换数据流。 目前支持以下运算符:
| 表运算符 | 说明 |
|---|---|
count |
返回具有包含记录数的单条记录的表 |
distinct |
生成一个表,其中包含输入表的所提供列的不同组合 |
join |
通过匹配同一设备的行来合并两个表的行以形成一个新表 |
order by |
按一列或多列对输入表的行进行排序 |
project |
选择要包含的列,重命名或删除,然后插入新的计算列 |
take |
返回指定行数 |
top |
返回按指定列排序的前 N 条记录 |
where |
将表筛选为满足谓词的行的子集 |
标量运算符
下表汇总了运算符:
| 运算符 | 说明 | 示例 |
|---|---|---|
== |
等于 | 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 |
- |
减法 | 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) |
聚合函数
聚合函数可与表运算符一起使用 summarize 来计算汇总值。 目前支持以下聚合函数:
| 功能 | 说明 |
|---|---|
avg() |
返回整个组中值的平均值 |
count() |
返回每个汇总组的记录计数 |
countif() |
返回谓词计算结果为 true 的行计数 |
dcount() |
返回组中非重复值的数目 |
max() |
返回整个组的最大值 |
maxif() |
从版本 2107 开始,可以 maxif 与表运算符一起使用 summarize 。
返回 Predicate 计算结果为 true的组的最大值。 |
min() |
返回整个组的最小值 |
minif() |
从版本 2107 开始,可以 minif 与表运算符一起使用 summarize 。
返回 谓词 计算结果为 true的组中的最小值。 |
percentile() |
返回由 Expr 定义的总体的指定最近排名百分点值的估计值 |
sum() |
返回组中值的和 |
sumif() |
返回 Expr 的总和,其 Predicate 计算结果为 true |
标量函数
标量函数可在表达式中使用。 目前支持以下标量函数:
| 功能 | 说明 |
|---|---|
ago() |
从当前 UTC 时钟时间减去给定的时间跨度 |
bin() |
将值向下舍入为给定箱大小的多个日期时间倍数 |
case() |
计算谓词列表,并返回满足谓词的第一个结果表达式 |
datetime_add() |
根据指定的日期部分乘以指定金额再加到指定日期时间计算新的日期时间 |
datetime_diff() |
计算两个日期时间值之间的差值 |
iif() |
计算第一个参数,并返回第二个或第三个参数的值,具体取决于预测在第二个) 计算结果 (是 true 还是在第三个) (计算结果为 false |
indexof() |
函数报告输入字符串中指定字符串首次出现时从零开始的索引 |
isnotnull() |
计算其唯一参数,并返回一个布尔值,指示参数的计算结果是否为非 null 值 |
isnull() |
计算其唯一参数并返回一个布尔值,指示参数的计算结果是否为 null 值 |
now() |
返回当前 UTC 时钟时间 |
strcat() |
连接 1 到 64 个参数 |
strlen() |
返回输入字符串的长度(字符数) |
substring() |
从源字符串提取从某个索引到字符串末尾的子字符串 |
tostring() |
将输入转换为字符串表示形式 |
支持的属性
设备查询支持以下实体。 若要详细了解每个实体支持哪些属性,请参阅 Intune 数据平台架构。
BiosInfoCertificateCpuDiskDriveEncryptableVolumeFileInfoLocalGroupLocalUserAccountLogicalDriveMemoryInfoOsVersionProcessSystemEnclosureSystemInfoTpmWindowsAppCrashEventWindowsDriverWindowsEventWindowsQfeWindowsRegistryWindowsService
已知限制
- 任何查询的结果字符串都限制为 128KB 字符。 如果查询结果超过 128KB 字符,结果将被截断。 一条错误消息,通知您截断了多少行。
- 每分钟只能发送 15 个查询。 如果遇到 超出查询限制 错误,请等待一分钟,然后重试。
- 查询输入的长度限制为 2048 个字符。 如果遇到 查询太长 错误,请将查询优化为包含更少的字符,然后重试。
- 现在 () 标量函数不支持 offset 参数。
- 不支持运
!like算符。 - 当以下运算符仅支持单引号时,输入窗口会自动推荐双引号:
contains!containsstartswith!startswithendswith
- WindowsRegistry 实体无法返回根目录的 RegistryKey。
- WindowsRegistry 实体无法返回 64 位共享注册表项。
- WindowsRegistry 实体无法返回二进制 ValueData。
- 如果计算机上有多个可用的网卡,则仅返回第一个配置的域。
- 如果设备上存在 TPM 2.0,则激活和启用将始终返回为 TRUE。
- 如果计算机上当前正在使用文件,则 FileInfo 查询将返回错误。
- 如果最终用户对设备具有管理员访问权限,则他们可能能够更改查询结果中返回的基于客户端的信息。 例如,OS 版本和注册表。