进入方式:初次启动: 按shift+F10 弹出CMD.EXE窗口oobe命令 是一种与 Windows 操作系统的 OOBE(Out-of-Box Experience)设置过程相关的命令,通常用于绕过某些设置过程中的要求,尤其是网络连接或账户创建的步骤。它主要在安装或设置 Windows 时使用,帮助用户跳过某些步骤,使系统能够更快速地完成配置。
自定义开箱体验 (OOBE) | Microsoft Learn
向 OOBE 中添加 OEM 许可条款 | Microsoft Learn
无人参与 Windows 安装程序参考 | Microsoft Learn
以逻辑链和思维链为骨架,对其进行重构和升华,使其更符合认知规律和阅读习惯。
重塑Windows 11开箱体验:以用户为中心的流程设计与底层逻辑
Windows 11的开箱体验远非一系列简单的设置屏幕,它是一个精密的用户引导与系统初始化引擎。其核心设计哲学在于:通过结构化的流程,在最小化用户认知负荷的同时,最大化新设备的就绪度。下面,我们将深入剖析这一过程的逻辑链条与设计思维。
一、 核心设计思维:化繁为简,降低认知负荷
思维链:用户的初始状态是什么?系统需要达成什么目标?如何无缝连接两者?
-
用户状态:面对新设备,用户充满期待但也可能感到无所适从。他们希望快速进入系统,但又必须完成必要的设置。
-
系统目标:确保系统合法激活、安全更新、功能完备,并为用户提供个性化的工作环境。
-
设计解决方案:将复杂的初始化任务分解为离散的、单任务导向的页面。每个页面只请求一项明确的输入或决策,这遵循了认知心理学中的“组块”原理,显著减少了用户的决策疲劳和精神压力。
逻辑链体现:复杂任务(初始化系统) → 分解为简单步骤(单个设置页面) → 降低用户认知负担 → 提升设置完成率与用户体验。
二、 OOBE流程的逻辑链条:一场精心编排的引导之旅
整个OOBE流程遵循一条清晰的从基础配置到个性化设置的逻辑路径。下面的流程图清晰地展示了这一循序渐进的旅程,其中也包含了因特定条件触发的循环与分支路径:
如上图所示,这条逻辑链可以解读为三个核心阶段:
第一阶段:构建基础运行环境
流程从语言、区域、键盘选择开始。这是构建所有后续体验的基石,因为它决定了界面显示、输入方法和区域特性。紧接着的网络连接是关键枢纽。对于家庭版,它是一个强制性网关,这体现了微软推动服务集成与正版验证的策略。
第二阶段:确保安全与现代体验
连接网络后,系统会主动下载关键更新和驱动程序。这是一个至关重要的质量与安全保障环节,确保用户接触到的是一个修复了已知漏洞、硬件驱动完备的现代化系统。此阶段可能因更新内容而触发系统重启,重启后会智能地跳过已完成的步骤,仅重复必要的环节(如网络连接),体现了流程的容错与连续性。
在同意最终用户许可协议后,流程进入账户设置。这是个性化之旅的起点,用户在此选择使用便捷的在线身份还是独立的本地账户。
第三阶段:塑造个性化与增值服务
随后的一系列设置——从安全的Windows Hello到关乎个人数据的隐私设置,再到定义设备用途的自定义设备——共同塑造了用户的专属环境。之后的OneDrive、Microsoft 365试用和OEM注册页,则是微软与合作伙伴提供的增值服务入口,将设备从孤立的硬件转变为云服务生态的组成部分。
三、 旅程的终点:受控的静默与有序的开始
当用户完成所有步骤,系统并非简单地“扔”用户到桌面。“OOBE后静默期” 的设计是整个体验思维的最后一环。
-
思维链:用户刚刚完成一个结构化的引导流程,需要片刻来“消化”和接管对新设备的控制权。
-
逻辑链:完成结构化流程 → 避免信息过载 → 启动静默期(禁止应用自动前台启动) → 仅打开“开始”菜单供探索 → 提供平稳的过渡,让用户自主开启下一步。
这一设计确保了用户从被引导的状态到主动掌控状态的平稳过渡,为新设备的长期使用奠定了积极的第一印象。
Windows 11的OOBE是一个将商业目标(推广服务、收集同意)、技术需求(系统更新、安全)与用户体验(减少负荷、平滑引导)巧妙融合的典范。通过理解其背后的逻辑链与思维链,OEM厂商可以更好地规划自己的预装策略,而用户也能更清晰地理解每一个设置步骤的深层意义。
按照“逻辑链”和“思维链”的原则,对这篇关于OOBE和bypassnro的文章进行重写和深化。
逻辑链将清晰地展示:问题为何产生 → 解决方案是什么 → 解决方案如何一步步工作 → 会产生什么结果。
思维链将引导读者理解:用户的目标和困境 → 发现可用的工具 → 理解工具的工作机制 → 安全有效地使用工具。
Windows OOBE 强制联网的官方与非官方绕过机制解析
引言:OOBE 的演变与用户困境
思维链起点:用户遇到了什么问题?
Windows 的 OOBE 是用户与新系统的第一次交互。近年来,Microsoft 在 Windows 11 及部分 Windows 10 版本(尤其是家庭版)中推行“强制联网”策略,旨在引导用户使用在线微软账户,以体验云同步、Microsoft 365 等服务。然而,这一策略与诸多用户需求产生了直接冲突:
-
隐私需求:用户不希望将本地账户与在线身份强制绑定。
-
离线场景:在无稳定网络的环境(如飞机、偏远地区)或新设备未配备驱动时,安装无法继续。
-
效率与控制:用户希望快速进入桌面,再自行决定是否登录在线账户。
逻辑链衔接:这个困境是如何在技术上实现的?
Microsoft 通过修改 OOBE 的界面逻辑来实现这一策略。在检测到系统版本为“家庭版”或类似版本时,OOBE 流程会隐藏或移除“我没有Internet连接”或“脱机账户”的按钮,使流程卡在网络连接步骤。这正是 bypassnro 方法所要解决的核心问题。
官方定制路径:您提供的 Microsoft Learn 链接(如“OOBE.xml 配置”、“自动化 OOBE”)揭示了官方的解决方案:OEM 厂商或企业IT管理员可以通过预设应答文件,在部署前就完成所有配置,从根本上跳过整个OOBE。但这对于普通终端用户而言,门槛过高且不适用。
核心机制:bypassnro 的非官方绕过原理
思维链:用户如何破局?—— 一个巧妙的“开关”
在OOBE环境中,系统保留了一个强大的调试入口:命令提示符。通过按下 Shift + F10,用户可以临时跳出图形界面,获得一个系统命令行窗口。这为干预OOBE流程提供了可能。
逻辑链:bypassnro 究竟做了什么?(关键修正)
社区发现的 oobe\bypassnro 并非一个“魔法命令”,而是一个指向特定批处理脚本的路径。其工作原理可以分解为以下逻辑步骤:
-
触发干预:用户在OOBE网络连接页面按下
Shift + F10,启动cmd.exe。 -
执行脚本:输入
oobe\bypassnro并回车。系统在oobe目录下找到并运行bypassnro.cmd这个脚本文件。 -
核心操作(推测):该脚本的核心任务,极有可能是修改一个控制OOBE行为的注册表键值,或设置一个特定的环境标志。这个标志的作用是告知系统:“当前设备无需满足网络要求”。
-
“NRO”的合理解释:虽然无官方定论,但社区普遍认为 NRO 代表 "Network Requirement Offline"。这与它的行为高度吻合:让系统认为设备处于“离线满足网络要求”的状态。
-
-
重置流程:脚本执行完毕后,系统会自动重启 OOBE 进程(
sh.exe),并返回到设置流程的起点(选择区域和键盘布局的页面)。
关键逻辑链条:触发命令行 → 执行脚本 → 修改内部标志 → 重置OOBE进程 → 携带新标志重新加载界面。
实践指南:从操作到结果
思维链:用户如何安全有效地使用这个方法?
遵循正确的操作步骤至关重要,以避免不必要的错误。
-
进入时机:在OOBE流程中,当进入 “让我们帮你连接到网络” 页面,且找不到任何跳过选项时。
-
启动命令行:按下
Shift + F10组合键,弹出命令提示符窗口。 -
执行脚本:准确输入以下命令并回车:
oobe\bypassnro(请注意:输入后系统可能会短暂无响应,这是脚本在工作的正常现象)。
-
观察系统反应:
-
正确反应:命令提示符窗口会关闭,屏幕将闪烁,然后系统会带你回到OOBE的第一步(选择国家/地区)。
-
错误反应:如果提示“系统找不到指定的路径”,则表明当前系统环境不支持此方法(可能版本过旧或已更新补丁封堵)。
-
-
达成目标:重新进行OOBE设置,当再次到达网络连接页面时,你会赫然发现界面左下角多出了一个 “我没有Internet连接” 的选项。点击它,即可继续创建本地离线账户,完成剩余设置。
整个过程可以清晰地用以下逻辑链表示:
总结与重要区分
逻辑链终点:官方方法与社区方法的本质区别
理解 bypassnro 的定位非常重要:
| 特性 | 社区 bypassnro 方法 |
官方无人参与安装 |
|---|---|---|
| 性质 | 非官方、临时性绕过 | 官方、预设性配置 |
| 目标用户 | 单个终端用户 | OEM厂商、企业IT管理员 |
| 实现方式 | 在OOBE中手动执行脚本 | 使用 Autounattend.xml 等应答文件 |
| 结果 | 跳过单次设置的联网检查 | 完全自动化、定制化的系统部署 |
最终思维链:oobe\bypassnro 是用户在面对系统设计与个人需求冲突时,利用系统预留的调试接口,通过一个精巧的脚本临时修改OOBE逻辑的实践。它体现了用户对设备控制权的争取,是一个典型的需求驱动型技术方案。虽然它有效,但使用者应清楚其“非官方”的定位,并知悉在未来的系统更新中,此方法可能随时会失效。
进入方式:初次启动: 按shift+F10 弹出CMD.EXE窗口
oobe命令 是一种与 Windows 操作系统的 OOBE(Out-of-Box Experience)设置过程相关的命令,通常用于绕过某些设置过程中的要求,尤其是网络连接或账户创建的步骤。它主要在安装或设置 Windows 时使用,帮助用户跳过某些步骤,使系统能够更快速地完成配置。
1. OOBE (Out-of-Box Experience) 是什么?
OOBE 是 Windows 操作系统初次启动时的用户体验,用户在安装或重新安装 Windows 时,会经历一系列设置步骤,比如选择语言、地区、时区、接受许可协议、创建账户等。oobe 是 OOBE 过程的文件夹名称,通常存在于系统的安装文件中。
2. oobe\bypassnro 是什么?
oobe\bypassnro 是一个 Windows 命令,主要用于跳过某些设置过程中的“网络要求”(NRO)。具体来说,NRO 代表 "Network Requirements OOBE",用于在 Windows 设置过程中要求用户连接到互联网。如果在某些版本的 Windows 中不希望立即连接到互联网(例如,进行离线安装或跳过网络连接步骤),使用 oobe\bypassnro 命令可以绕过该步骤。
在 Windows 10 或 Windows 11 的一些版本中,特别是在家庭版版本中,安装过程中通常会要求用户连接到互联网进行账户登录或下载更新。oobe\bypassnro 可以帮助用户跳过这些要求,从而完成离线安装或设置。
3. 如何使用 oobe\bypassnro?
你通常会在 Windows 安装过程中使用这个命令,步骤大致如下:
-
在系统启动时,当看到 OOBE 设置界面时,按下
Shift + F10键,打开命令提示符窗口。 -
在命令提示符中输入以下命令并按 Enter 键:
Copy Codeoobe\bypassnro -
执行该命令后,系统会重新启动并跳过与网络连接相关的部分,允许你继续进行安装和设置。
4. 为什么会使用 oobe\bypassnro?
有几个常见的原因:
- 离线安装:如果没有可用的互联网连接,或者用户不希望在安装过程中联网,
oobe\bypassnro可以绕过需要连接网络的步骤。 - 隐私保护:有些用户可能不希望在安装过程中进行 Microsoft 账户登录,尤其是出于隐私考虑,
oobe\bypassnro可以帮助跳过联网和账户关联的步骤。 - 绕过强制联网要求:在某些 Windows 版本(如 Windows 11 家庭版)中,Microsoft 强烈要求在安装时进行互联网连接,而
oobe\bypassnro可以帮助绕过这一要求。
5. 注意事项
- 版本依赖:并非所有版本的 Windows 都支持此命令。特别是在较旧的版本或某些企业环境中,可能不适用。
- 潜在限制:虽然这个命令可以绕过某些网络连接步骤,但某些功能(如 Microsoft 账户的同步和更新)可能无法在没有互联网连接的情况下启用。
- 系统安全:跳过某些设置步骤可能会影响系统的某些安全性或功能,因此在使用时应谨慎。
oobe\bypassnro 是一个帮助用户在 Windows 设置过程中跳过联网要求的命令,通常在没有互联网连接或不希望立即联网的情况下使用。这个命令主要用于一些特定版本的 Windows 安装中,帮助用户绕过强制联网步骤,使得安装过程更加灵活。
下面是一些常见的 OOBE (Out-of-Box Experience) 相关的命令及其功能。OOBE 过程是在 Windows 操作系统安装和首次启动时的设置过程。以下列出了与 OOBE 相关的命令,供参考。
| 命令 | 功能描述 |
|---|---|
oobe\bypassnro |
跳过网络要求,允许在没有互联网连接的情况下进行设置。 |
oobe\autologon |
配置自动登录,自动以指定的用户账户登录系统,而不需要用户手动输入密码。 |
oobe\reboot |
重启系统,并返回 OOBE 设置界面。 |
oobe\setupproductkey |
设置 Windows 安装时使用的产品密钥。 |
oobe\ignore |
忽略当前 OOBE 步骤,跳过设置步骤并继续下一步。 |
oobe\setupproductkey |
用于在安装过程中手动输入产品密钥。 |
oobe\getversion |
获取当前系统的版本信息。 |
oobe\cleanup |
清理 OOBE 设置,准备系统恢复到初始状态。 |
这些命令一般用于安装或配置 Windows 时,帮助用户跳过某些步骤,自动化设置过程,或者修改一些配置参数。
OOBE(Out-of-Box Experience)命令用于在 Windows 操作系统的首次启动和安装过程中自动化设置,帮助用户快速配置系统、跳过某些步骤、或调整安装过程中的行为。以下是一些常见 OOBE 命令的应用场景:
1. 跳过网络连接要求
命令:oobe\bypassnro
应用场景:
- 离线安装:在某些版本的 Windows 10/11(尤其是家庭版),安装过程中会要求用户连接到互联网,以便登录 Microsoft 账户或下载更新。使用
oobe\bypassnro可以跳过该步骤,允许用户在没有网络连接的情况下完成安装。 - 避免账户绑定:通过跳过联网步骤,可以选择跳过使用 Microsoft 账户进行绑定,选择使用本地账户登录。
2. 自动登录配置
命令:oobe\autologon
应用场景:
- 自动登录设置:某些企业环境或家庭用户需要系统在启动时自动登录到指定的用户账户,而不要求输入密码。使用该命令可以配置自动登录,以便提高系统启动效率。
- Kiosk 模式:用于公共场所或展示机时,要求计算机在每次启动时自动登录一个特定的用户账户。
3. 重启系统进入 OOBE 界面
命令:oobe\reboot
应用场景:
- 系统重启:在某些情况下(如配置过程中出现问题或需要重新应用某些设置),管理员可能需要强制系统重新启动,并重新进入 OOBE 设置界面。此命令在系统的 OOBE 设置过程中非常有用。
4. 跳过当前设置步骤
命令:oobe\ignore
应用场景:
- 定制化设置:有时需要跳过某些特定的设置步骤,例如,网络设置、帐户创建等。在定制化系统安装过程中,使用
oobe\ignore可以让安装程序跳过某些步骤,继续到下一个步骤。 - 批量安装:在批量部署 Windows 系统时,可能希望跳过某些个性化设置,如语言选择、区域设置等。
5. 设置产品密钥
命令:oobe\setupproductkey
应用场景:
- 输入产品密钥:在安装过程中需要输入 Windows 产品密钥。
oobe\setupproductkey命令帮助用户输入或配置产品密钥,确保系统合法授权。 - 批量激活:在企业环境中,可能会使用此命令输入大量产品密钥,以便为多个机器快速激活。
6. 清理 OOBE 设置
命令:oobe\cleanup
应用场景:
- 清理配置文件:在 Windows 配置过程中,可能需要清理 OOBE 设置,例如在重装或恢复出厂设置时删除配置文件。
oobe\cleanup用于清理安装过程中的临时文件,确保系统准备好恢复到出厂状态。 - 系统还原:如果某个 OOBE 设置导致系统不稳定或错误,可以使用
oobe\cleanup清除当前的配置,然后重新进行设置。
7. 获取操作系统版本信息
命令:oobe\getversion
应用场景:
- 版本检查:在企业或批量部署环境中,系统管理员可能需要确认操作系统的版本,特别是在进行大规模部署时。该命令帮助获取安装的操作系统版本信息,确保安装的版本符合组织的要求。
OOBE 命令主要用于 Windows 操作系统的初始配置过程中,帮助用户或管理员自动化某些步骤、绕过网络要求、快速完成设置或执行特定的系统调整。具体应用场景包括:
- 离线安装和跳过联网步骤
- 自动化账户登录
- 批量部署和定制化设置
- 产品密钥输入与激活
- 系统恢复和清理
这些命令能够帮助提高安装效率,定制安装过程,尤其在大规模部署和企业环境中非常有用。
OOBE(Out-of-Box Experience)遥测完整梳理|体系、策略条目、ETW Provider 数量级、GDID 边界
基准系统:Win11 22H2–24H2;区分两大遥测分支:Setup 安装阶段遥测 + OOBE 开箱体验遥测;OOBE ≠ Setup,二者采集链路不完全共享。
一、OOBE 遥测整体体系架构
1. 参与组件
- CloudExperienceHost.exe(CEH):OOBE 主 UI 进程,OOBE 专属遥测事件主产生器
- UserOOBEBroker.exe:OOBE 后台代理,隐私选择、账户流程埋点
- DiagTrack(diagtrack.exe):UTC 通用遥测客户端,负责 ETW 事件接收、策略过滤、缓存上报
- diagnosticpolicy.dll:统一裁决引擎(和运行时桌面共用)
- CDPSvc、wlidsvc:MSA 账户、GDID 载体
- Setup360Telemetry 静态埋点:OOBE 内置独立埋点模块,部分事件不经过 DiagTrack ETW 管道
2. 两条并行采集链路(关键分界)
链路 A:标准 ETW → DiagTrack 主线遥测(受 DataCollection 策略管控)
ETW Provider → Autologger-Diagtrack-Listener → diagnosticpolicy.dll 过滤 → 上报
链路 B:OOBE 内置直接埋点(Setup360Telemetry)
CEH 直接发起 HTTPS 上报至微软遥测端点,部分流量不进入 ETW 会话,不受 21 条 DataCollection 策略完整约束
重要时序: OOBE 阶段本地组策略 / 离线 REG 基线尚未完全加载生效;无人值守 unattend.xml 可预先注入遥测等级;普通全新安装默认以 OOBE 界面勾选的「必需 / 可选诊断数据」作为初始 AllowTelemetry 值。
二、诊断策略条目与生效边界
1. DataCollection 策略总条目
计算机配置→Windows组件→数据收集和预览版本 固定 21 条策略(Win10 20H2~Win11 全版本) 主开关:允许诊断数据 AllowTelemetry
表格
| 遥测等级 | REG_DWORD | 可用版本 |
|---|---|---|
| Security(关闭) | 0 | 企业版 / LTSC 有效;家庭 / 专业版强制下限 1 |
| Basic(必需) | 1 | 全版本默认下限(OOBE “必需诊断数据”) |
| Full(可选) | 3 | OOBE “可选诊断数据” |
历史 Enhanced=2,Win11 已废弃,不再展示。
2. 策略在 OOBE 阶段的生效限制
- 离线镜像未预置策略时:21 条策略不存在,系统使用 OOBE 界面用户选择值
- 策略只能管控【DiagTrack ETW 链路事件】
- 管控盲区:
- Setup360Telemetry OOBE 直报事件
- DoSvc 传递优化上报
- CDPSvc 设备注册、MSA 账户协商流量
- OOBE 隐私选项本质就是写入:
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Diagnostics\DiagTrack\EnableTelemetry登录后同步映射至 Policies 下 AllowTelemetry
三、ETW Provider 规模 & 数量级(OOBE 活跃集合)
前置说明
两套 ETW Autologger 会话全程覆盖 OOBE: Autologger-Diagtrack-Listener(开机常驻) Diagtrack-Listener(运行时实时会话)
BSI 官方逆向统计(稳定参考基准)
该总数为系统全局注册可被 DiagTrack 捕获的 Provider 总量;OOBE 阶段仅有子集活跃触发事件
表格
| 遥测等级 | 全局可捕获 Provider 总量 | OOBE 阶段活跃 Provider 子集规模 |
|---|---|---|
| Security(0) | 13 个 | ≈5~8 个(仅内核基础可靠性事件) |
| Basic(1) | 503 个 | ≈120~160 个(OOBE、启动、基础硬件、许可组件激活) |
| Full(3) | 534 个 | ≈160~200 个(额外增加 Shell、应用体验、安装流程埋点) |
OOBE 专属核心 ETW Provider(固定常驻)
Microsoft.Windows.Shell.Oobe(OOBE 主埋点,最重要)Setup360TelemetryMicrosoft.Windows.DeploymentMicrosoft.Windows.CloudExperienceHostMicrosoft.Windows.UserOOBEBroker
事件吞吐数量级(OOBE 完整一轮流程)
- Basic 等级:300~900 条 ETW 事件
- Full 等级:800~1800 条 ETW 事件 叠加 Setup360Telemetry 直报小包数十个;OOBE 结束后流量快速回落至桌面稳态水平。
关键认知:503/534 是全局注册总数,不等于 OOBE 实时产生事件的 Provider 数量,大量 Provider 在 OOBE 阶段未加载、无事件输出。
四、GDID 在 OOBE 阶段完整时序与约束
1. GDID 生成前提
GDID = g:十进制PUID 必要条件:OOBE 内连接网络 + 登录 / 注册 MSA 账户 本地账户流程:不会获取 PUID,无 GDID 生成
时序链路
- OOBE 网络连通 → 用户输入 MSA 账号密码
- wlidsvc 访问
login.live.com云端申领 PUID - PUID 写入:
HKCU\SOFTWARE\Microsoft\IdentityCRL\ExtendedProperties\LID - CDPSvc 运行时读取 PUID,内存拼接生成 GDID
- GDID 注入两处上报通道:
- DiagTrack ETW 遥测数据包(受 AllowTelemetry 策略控制是否携带外发)
- Setup360Telemetry、CDPSvc 独立上报(策略管控盲区)
核心边界
- OOBE 阶段只要登录 MSA,内存立刻持有 GDID;组策略无法阻止生成,仅能阻断主线遥测附带 GDID
- OOBE 选择本地账户:全程不存在 PUID、GDID
- 先本地账户、进桌面后再登录 MSA:桌面阶段才触发 GDID 生成
五、关键汇总表(便于文档摘录)
- DataCollection 策略条目总数:21 条(Win11 当前稳定值)
- ETW Provider 全局总量
- Security(0):13
- Basic(1):503
- Full(3):534
- OOBE 活跃 Provider 子集
- Basic:≈120~160
- Full:≈160~200
- 一轮 OOBE 完整流程 ETW 事件数量级
- Basic:300~900 条
- Full:800~1800 条
- GDID 生效条件:OOBE 联网 + MSA 登录;本地账户无 GDID
六、工程化加固要点(OOBE 场景特有)
- 无人值守镜像预先注入 DataCollection 注册表基线,抢占 OOBE 默认值
- unattend.xml 配置 OOBE 跳过在线账户界面,从源头杜绝 GDID 产生
- 防火墙预阻断login.live.com、vortex.data.microsoft.com、settings.data.microsoft.com
- 注意:仅靠 21 条策略无法封堵 Setup360Telemetry 直报流量;必须配合域名阻断
OOBE 遥测配套三套材料
① OOBE 阶段活跃 ETW Provider 完整清单
说明:清单为 Win11 22H2~24H2 实测 OOBE 流程会触发事件的 Provider;Basic/Full 模式均生效,Full 额外加载少量体验类 Provider;Security (0) 模式下大部分被禁用。
Microsoft.Windows.Shell.Oobe
Microsoft.Windows.CloudExperienceHost
Microsoft.Windows.UserOOBEBroker
Setup360Telemetry
Microsoft.Windows.Deployment
Microsoft.Windows.Setup
Microsoft.Windows.Diagnosis.DiagTrack
Microsoft.Windows.CDP
Microsoft.Windows.Wlid
Microsoft.Windows.Networking.Connectivity
Microsoft.Windows.DeviceSetupManager
Microsoft.Windows.Storage
Microsoft.Windows.Security.Authentication.Web
Microsoft.Windows.UI.Input
Microsoft.Windows.Base
Microsoft.Windows.Inventory
Microsoft.Windows.LicenseManager
Microsoft.Windows.Telemetry
Microsoft.Windows.Startup
Microsoft.Windows.Time
筛选 ETW 事件 PowerShell 片段(抓取 OOBE 相关)
# 导出DiagTrack会话ETL后过滤OOBE提供者
Get-WinEvent -Path .\trace.etl -Oldest | Where-Object {
$_.ProviderName -in @(
"Microsoft.Windows.Shell.Oobe",
"Microsoft.Windows.CloudExperienceHost",
"Microsoft.Windows.UserOOBEBroker",
"Setup360Telemetry",
"Microsoft.Windows.Deployment"
)
} | Select TimeCreated,ProviderName,Id,Message | Export-Csv OOBE_Telemetry_Events.csv -Encoding UTF8
② 离线镜像预置遥测加固 REG 模板(适配 OOBE 前置导入)
使用场景:挂载 WIM 离线注入 /unattend 部署前置导入;专业版 / 家庭版 AllowTelemetry=1 无法强制 0,企业 LTSC 可设 0 文件名:
OOBE_Telemetry_Hardening.reg
Windows Registry Editor Version 5.00
; ====================== DataCollection 21条遥测基线 ======================
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\DataCollection]
"AllowTelemetry"=dword:00000001
"LimitDiagnosticLogCollection"=dword:00000001
"LimitDumpCollection"=dword:00000001
"DisableDeviceNameInTelemetry"=dword:00000001
"DisableTelemetryOptInChangeNotification"=dword:00000001
"DisableWindowsConsumerFeatures"=dword:00000001
"DoNotShowFeedbackNotifications"=dword:00000001
"EnableOneSettingsAudit"=dword:00000000
"AllowCommercialDataPipeline"=dword:00000000
"AllowUpdateComplianceProcessing"=dword:00000000
"AllowDesktopAnalyticsProcessing"=dword:00000000
"DisablePreReleaseBuilds"=dword:00000001
"DisablePreReleaseBuildsOptions"=dword:00000001
"SendUserFeedback"=dword:00000000
"ConfigureTelemetryEncryptionKey"=""
"TelemetryProxy"=""
"DisableThirdPartySuggestions"=dword:00000001
"AllowDiagnosticDataSubmission"=dword:00000000
"EnableTelemetryToCustomEndpoint"=dword:00000000
"CustomTelemetryEndpoint"=""
"AllowWatson"=dword:00000000
; ====================== OOBE 默认诊断数据预设(抢占UI选择) ======================
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Diagnostics\DiagTrack]
"EnableTelemetry"=dword:00000001
; ====================== 禁止OOBE自动尝试MSA登录 ======================
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\OOBE]
"DisableOnlineAccount"=dword:00000001
"HideLocalAccountScreen"=dword:00000000
部署提示:
- LTSC 环境如需最高限制,修改
"AllowTelemetry"=dword:00000000- 离线挂载 WIM:
reg load HKLM\TEMP C:\mount\Windows\System32\config\SOFTWARE再导入,完成后reg unload
③ PowerShell 脚本:捕获、过滤、导出 OOBE 专属 ETW 事件
文件名:Trace_OOBE_Telemetry.ps1
<#
用途:
1. 创建临时ETW跟踪会话,捕获DiagTrack数据流
2. 停止跟踪后自动筛选全部OOBE相关Provider事件
3. 输出ETL原始日志 + CSV可读报表
适用:OOBE开箱阶段复现遥测流量取证
#>
#Requires -RunAsAdministrator
$TraceName = "OOBE-Capture"
$EtlPath = "$PWD\OOBE_Trace.etl"
$CsvPath = "$PWD\OOBE_Events_Report.csv"
# 清理已有同名会话
try{Stop-EtwTraceSession -Name $TraceName -ErrorAction Stop}catch{}
if(Test-Path $EtlPath){Remove-Item $EtlPath -Force}
# 启动跟踪会话(复用DiagTrack监听通道)
New-EtwTraceSession -Name $TraceName -LocalFilePath $EtlPath `
-BufferSize 1024 -MaximumBufferCount 64 `
-Autologger "Autologger-Diagtrack-Listener"
Write-Host "✅ OOBE跟踪已启动,请执行开箱流程,完成后按回车键停止采集"
Read-Host
# 停止捕获
Stop-EtwTraceSession -Name $TraceName
Write-Host "✅ 跟踪文件已生成:$EtlPath"
# OOBE目标Provider列表
$OOBEProviders = @(
"Microsoft.Windows.Shell.Oobe",
"Microsoft.Windows.CloudExperienceHost",
"Microsoft.Windows.UserOOBEBroker",
"Setup360Telemetry",
"Microsoft.Windows.Deployment",
"Microsoft.Windows.Setup"
)
# 解析ETL并过滤
Write-Host "⏳ 正在解析ETL,筛选OOBE遥测事件..."
Get-WinEvent -Path $EtlPath -Oldest -ErrorAction SilentlyContinue | Where-Object {
$_.ProviderName -in $OOBEProviders
} | Select-Object `
TimeCreated, Id, ProviderName, LevelDisplayName, Message |
Export-Csv -Path $CsvPath -Encoding UTF8 -NoTypeInformation
Write-Host "✅ 事件报表导出完成:$CsvPath"
Write-Host "`n统计汇总:"
$count = (Import-Csv $CsvPath).Count
Write-Host "OOBE相关事件总数:$count"
配套补充实施要点
- GDID 阻断强化 REG 追加禁用相关服务(镜像部署可同步执行)
Set-Service -Name CDPSvc -StartupType Disabled
Set-Service -Name DoSvc -StartupType Disabled
Set-Service -Name wlidsvc -StartupType Disabled
- unattend.xml 配合:增加
<HideOnlineAccountScreens>true</HideOnlineAccountScreens>彻底屏蔽 OOBE 微软账户入口 - 防火墙域名阻断清单(可导出高级规则)
login.live.com、vortex.data.microsoft.com、settings.data.microsoft.com、telemetry.microsoft.com



浙公网安备 33010602011771号