必须手动重启diagtrack服务以恢复windows update和遥测功能:先查状态并安全停止,再删除c:\programdata\microsoft\diagnosis下的.lock文件,最后重配启动类型并启动服务,验证status为running且能连通微软遥测端点。

当你在Windows系统中发现“更新联机状态服务”(Connected User Experiences and Telemetry,即DiagTrack服务)长时间无响应、状态卡在“启动中”或显示“已停止但依赖项仍在运行”,导致Windows Update检查失败、遥测数据无法上报、甚至组策略刷新异常时,必须手动重启该服务才能恢复系统更新链路和诊断功能。
确认服务当前状态并停止它
以管理员身份打开命令提示符或 PowerShell,执行:
sc query diagtrack
观察 STATE 字段:若显示 4 RUNNING 或 1 STOPPED,可继续;若为 2 START_PENDING 或 3 STOP_PENDING,【必须等待其状态稳定后再操作,强行终止可能损坏服务配置】。
执行停止命令:
net stop diagtrack
如果返回“拒绝访问”或“服务没有响应”,说明有进程正占用该服务句柄。此时不要反复重试,改用任务管理器 → 详细信息 → 找到 svchost.exe(对应 PID 与服务列表中 DiagTrack 的 Host Process 一致)→ 右键 → “转到服务”,右键 DiagTrack → “停止”。
清理服务残留锁文件
该服务在异常退出后,常在 C:\ProgramData\Microsoft\Diagnosis 下遗留 .lock 文件,导致下次启动卡死。需手动删除:
进入路径:
C:\ProgramData\Microsoft\Diagnosis
删除所有以 .lock 结尾的文件(如 telemetry.lock、settings.lock),【注意:不要删除 .dat 或 .xml 文件,否则将丢失本地诊断缓存,需重新采集数小时】。
若提示“权限不足”,右键文件夹 → 属性 → 安全 → 编辑 → 添加当前用户 → 勾选“完全控制” → 确定 → 再删除。
重启服务并验证连通性
第一步:重载服务配置
sc config diagtrack start= demand
第二步:启动服务
net start diagtrack
第三步:验证是否真正就绪
使用 PowerShell 运行:
Get-Service diagtrack | Select-Object Status,StartType,Name
输出中 Status 必须为 Running,且 30 秒内无自动停止。再执行:
curl -Uri "https://fe2.update.microsoft.com/v6/ClientWebService/client.asmx" -Method POST -Headers @{"Content-Type"="text/xml"} -Body "
若返回 HTTP 200 或 401(未授权属正常),说明服务已能成功连接微软遥测端点。











