如何检索Intune (MEM)指定时段内所有已删除/移除的设备列表
指定时间范围Intune全量已删除设备(含用户侧主动移除)查询方案
你提到的原生Intune审计日志的局限性是准确的:默认审计日志仅会记录IT管理员通过门户、API发起的设备删除操作,用户在本地卸载公司门户、移除管理配置文件、主动退管触发的设备移除,不会被计入该类审计事件,直接查审计日志必然会漏数。
目前有三种可落地的方案能拿到完整的已移除设备列表:
- 方案1:通过Microsoft Graph API直接拉取已移除设备清单(覆盖最全,适合临时查询)
所有设备无论通过什么路径从Intune移除,最终都会在托管设备列表中被标记为retired(已淘汰/已移除)状态,接口会留存这类记录最长30天,同时会标注删除触发源。
操作步骤:- 使用持有Intune设备只读权限的账号获取Graph接口访问令牌
- 调用beta版本接口查询,核心请求示例如下,替换方括号内的时间参数为你需要的查询范围即可:
GET https://graph.microsoft.com/beta/deviceManagement/managedDevices ?$filter=managementState eq 'retired' and lastSyncDateTime ge [查询起始时间,ISO8601格式] and lastSyncDateTime le [查询结束时间,ISO8601格式] - 返回结果中可直接提取设备名、关联用户、最后同步时间字段,判断删除来源时只要看操作关联的主体字段:如果没有绑定管理员账号ID、操作触发源标记为设备端,就属于用户主动发起的移除。
注意:必须使用beta版本接口,v1.0版本对已移除设备的字段留存不全,会出现数据丢失。
- 方案2:合并Azure AD审计日志补全漏记事件(适合没有Graph调用权限的场景)
用户侧主动移除Intune管理时,会同步在Azure AD侧触发对应的设备对象变更事件,这部分日志不受Intune审计日志的采集范围限制。
操作步骤:- 进入Azure AD审计日志页面,筛选类别为「设备」
- 活动类型勾选
删除设备、用户从组织注销设备两项,选定需要的时间范围 - 导出该部分日志后,和你之前拿到的Intune管理员删除审计记录做去重合并,就能得到完整的已移除设备清单
注意:Azure AD默认审计日志留存期为30天,查询超30天的记录需要提前配置日志归档。
- 方案3:Log Analytics常态化查询(适合长期运维场景)
如果需要经常查询不同时间范围的设备移除记录,提前将Intune设备日志、Azure AD设备日志接入Log Analytics工作区,配置好日志留存策略后,直接用KQL语句就能一键拉取全量数据,不需要手动合并多份日志,示例查询语句如下:
该方式默认留存的日志可以覆盖1-2年的查询需求,且可以自定义告警规则,出现大规模用户主动退管时可以自动触发通知。IntuneDevices | where TimeGenerated between (startofday(datetime("填入查询起始日期")) .. endofday(datetime("填入查询结束日期"))) | where ManagementState == "Retired" or IsDeleted == true | project DeviceName, UserPrincipalName, LastSyncDateTime, ManagementState, DeviceId
内容的提问来源于stack exchange,提问作者Floris
相关产品推荐
相关产品推荐

