已禁用的自动启动程序存储在哪里?注册表中的某个地方?

已禁用的自动启动程序存储在哪里?注册表中的某个地方?

我知道与 Windows 一起运行的程序存储在注册表中(和HKEY_LOCAL_MACHINEHKEY_CURRENT_USER

- /Software/Microsoft/Windows/CurrentVersion/Run
- /Software/Microsoft/Windows/CurrentVersion/RunOnce

但是当我在这里删除它们的条目(或使用 msconfig 禁用自动启动程序)时,有关禁用程序的信息存储在哪里?

我的意思是不要不再与 Windows 一起运行,但在 msconfig->autorun 下它们被标记为“已禁用”

答案1

请参阅以下内容:

\Software\Microsoft\Windows\CurrentVersion\Explorer\StartupApproved\Run

每个条目应该有一个对应的条目:

\Software\Microsoft\Windows\CurrentVersion\Run

它是一个二进制值,“02 00 00 00...”表示启用,任何其他值似乎表示禁用。

我在 Windows 8.1 下调查了这个问题,但假设注册表项与 Windows 7 相同。但是在 8.x 中,您可以在“任务管理器”而不是 msconfig 中禁用自动启动程序。

答案2

如果您通过以下方式手动删除它们注册表编辑器,除非您先进行备份,否则它们将永远消失。

如果您使用以下方式禁用它们微软配置,你可以找到残疾人註冊項目

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg

和残疾人启动项1

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupfolder

那里的子项包含恢复已禁用项所需的信息。您可以安全地删除那里的项,但之后无法通过 MSConfig 恢复它们。

笔记:MSConfig 不包含组策略或 Windows 7 任务计划程序的项目!


1来自用户启动文件夹的条目(开始 → 程序 → 启动)。

答案3

@Peter Hahndorf,这是不正确的。

Win7 没有 StartupApproved 键。它改用 msconfig:

HKLM\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupreg HKLM\SOFTWARE\Microsoft\Shared Tools\MSConfig\startupfolder

Win 8/10 StartupApproved 还可以包含二进制值“06 00 00 00”,这也意味着“已启用”!我不知道这些标志的完整枚举,但检查它是否已启用似乎是一种可靠的方法 - 检查代表 FILETIME 结构的接下来的 8 个字节。如果所有字节都是零 - 记录已启用。

相关内容