You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用Graph API扩展detectedApps的managedDevices字段无返回数据问题

问题解决:Graph API调用detectedApps时$expand=managedDevices返回空

可能原因及对应解决方案

1. 权限不足导致关联数据无法返回

虽然API调用无报错,但如果你的身份(用户/应用)仅拥有DeviceManagementApps.Read.All权限,缺少DeviceManagementManagedDevices.Read.All权限,会导致无法拉取关联的设备数据。

  • 解决:确保已授予这两个权限,应用权限需管理员同意,用户权限需重新登录以生效。

2. Graph API不支持直接通过$expand关联managedDevices

detectedApps与managedDevices是多对多关联,当前Graph API的1.0和beta版本都不支持在查询detectedApps列表时通过$expand直接展开managedDevices。

  • 解决:采用反向查询方式:
    1. 先获取目标应用的detectedApp ID:
      GET /deviceManagement/detectedApps?$filter=contains(displayName, '$($appDisplayName)')&$select=id
      
    2. 用获取到的ID查询关联设备:
      GET /deviceManagement/managedDevices?$filter=detectedApps/any(d:d/id eq '{detectedAppId}')&$select=id,deviceName,emailAddress
      

3. 验证目标detectedApp是否真有关联设备

先单独查询某个detectedApp的关联设备,确认数据是否存在:

GET /deviceManagement/detectedApps/{detectedAppId}/managedDevices?$select=id,deviceName,emailAddress

如果这个请求也返回空,说明该detectedApp确实没有关联设备,需要检查应用检测配置或设备数据。

脚本速度优化建议

  • 多租户场景下,使用并行请求处理不同租户的查询,减少串行等待时间。
  • 批量获取detectedApp ID后,利用Graph API的批量请求功能,一次发送多个设备查询,提升效率。

内容的提问来源于stack exchange,提问作者Roel van der Wegen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 19:42:05