可通过PowerShell四种方法导出Windows 11开机启动项:一、CIM实例导出基础启动项;二、注册表Run键枚举导出隐式启动项;三、结合WMI与资源占用筛选高影响启动项;四、导出自动服务及其依赖关系拓扑。

如果您希望获取 Windows 11 中所有开机启动项的完整清单以便审查或归档,则可通过 PowerShell 快速导出结构化数据。以下是多种可靠且可复用的导出方法:
一、使用 CIM 实例命令导出基础启动项列表
该方法调用 Win32_StartupCommand 类,直接读取注册表中用户与系统级启动项的原始注册信息,输出名称、执行命令及注册位置,适用于快速识别可疑或冗余项。
1、按下 Win + X 组合键,选择 Windows Terminal(管理员) 或 PowerShell(管理员)。
2、输入以下命令并回车执行:Get-CimInstance Win32_StartupCommand | Select-Object Name, Command, Location | Export-Csv -Path "$env:USERPROFILE\Desktop\StartupItems.csv" -Encoding UTF8 -NoTypeInformation。
3、执行完成后,桌面上将生成 StartupItems.csv 文件,可用 Excel 或记事本打开查看。
二、通过注册表路径枚举全部 Run 键值并导出
此方法覆盖 HKLM 和 HKCU 下所有标准启动注册表路径(包括 Run、RunOnce、RunOnceEx 等),能捕获被 CIM 接口遗漏的隐式启动项,尤其适用于排查静默加载的第三方程序。
1、以管理员身份运行 PowerShell。
2、依次执行以下四条命令(每条单独回车):
reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\Run" /s > "$env:USERPROFILE\Desktop\HKLM_Run.txt"
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /s > "$env:USERPROFILE\Desktop\HKCU_Run.txt"
reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\RunOnce" /s > "$env:USERPROFILE\Desktop\HKLM_RunOnce.txt"
reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\RunOnce" /s > "$env:USERPROFILE\Desktop\HKCU_RunOnce.txt"
3、桌面将生成四个纯文本文件,分别对应不同注册表启动路径下的完整键值对。
三、结合 WMI 与自定义筛选导出高影响启动项
该方法利用任务管理器“启动影响”逻辑的底层依据,通过查询 Win32_StartupCommand 并附加进程资源占用估算,筛选出可能拖慢登录体验的启动项,便于优先处理。
1、以管理员身份运行 PowerShell。
2、执行以下命令:Get-CimInstance Win32_StartupCommand | ForEach-Object { $proc = Get-Process -Name $_.Name.Split('\')[0].Split('.')[0] -ErrorAction SilentlyContinue; [PSCustomObject]@{Name=$_.Name; Command=$_.Command; Location=$_.Location; CPUUsage=if($proc){$proc.CPU} else {'N/A'}; MemoryMB=if($proc){[math]::Round($proc.WorkingSet64/1MB,1)} else {'N/A'}} } | Where-Object {$_.CPUUsage -ne 'N/A' -and $_.CPUUsage -gt 100} | Export-Csv -Path "$env:USERPROFILE\Desktop\HighImpactStartups.csv" -Encoding UTF8 -NoTypeInformation
3、导出的 CSV 文件仅包含当前正在运行且 CPU 使用超 100ms 的启动项,字段含名称、命令、位置及实时资源消耗。
四、导出含服务依赖关系的启动项拓扑
部分启动行为由 Windows 服务触发,而非直接注册在 Run 键下。该方法提取所有标记为“自动启动”的服务及其依赖服务,并关联其启动类型与描述,用于识别深层启动链路。
1、以管理员身份运行 PowerShell。
2、执行以下命令:Get-Service | Where-Object {$_.StartType -eq 'Automatic'} | ForEach-Object { $deps = $_.DependentServices.Name -join '; '; [PSCustomObject]@{Name=$_.Name; DisplayName=$_.DisplayName; Status=$_.Status; DependentServices=$deps; Description=$_.Description} } | Export-Csv -Path "$env:USERPROFILE\Desktop\AutoServicesWithDeps.csv" -Encoding UTF8 -NoTypeInformation
3、生成的 CSV 文件提供服务级启动项的上下文信息,有助于判断是否应禁用某服务以间接抑制其触发的启动行为。










