不久前有一个问题,在登录屏幕出现之前运行程序,我以为他的意思是根据图片他想在启动时运行 chkdsk,但他实际上想运行另一个程序。
好吧,我专门针对 chkdsk 进行了回答,我认为有些人可能会对我的“如何在每次重启时运行 chkdsk?”的解决方案感兴趣。
答案1
基本上,如果您只是想在每次启动时运行 chkdsk /f 或 chkdsk /r,您可以将其设置为在关机时运行,而不是尝试让它在 中工作HKLM\SYSTEM\CurrentControlSet\Control\Session Manager
。
方法如下:
创建一个文件 C:\WINDOWS\system32\confirm.txt,y
其中包含 JUST。
然后创建 C:\WINDOWS\system32\Chkdsk_Reboot.bat,其中包含以下代码:
echo y > confirm.txt
chkdsk c: /f /x < confirm.txt
现在,如果您拥有 XP Pro 或其他专业级操作系统,请打开 gpedit.msc>计算机配置>Windows 设置>脚本>关机,然后添加 Chkdsk_Reboot.bat 作为关机脚本。
下次重启后您将运行 chkdsk 命令。
我不确定这是否适用于 XP home,因为它没有 gpedit.msc。您可以创建此目录结构并在那里添加批处理文件,但我不确定它是否有效,因为 Home 不使用组策略:C:\WINDOWS\System32\GroupPolicy\Machine\Scripts\Shutdown
答案2
chkdsk
已经设置为在每次启动时运行。
查看HKLM\SYSTEM\CurrentControlSet\Control\Session Manager
并找到名为 的多字符串 ( REG_MULTI_SZ
) 条目BootExecute
。值“ autocheck autochk *
”表示chkdsk
将在启动时运行,但是您将看不到它,因为它在后台运行,搜索磁盘错误。
如果chkdsk
检测到某些磁盘问题,那么您将看到带有全磁盘扫描的蓝屏。
编辑:
自动检查选项示例,根据这里(部分:“脏位与注册表“Autochk”条目”):
Sample command Resulting registry entry
============== ========================
Chkdsk C: /F Autocheck autochk /p \??\C:
Chkdsk C:\mountpoint /F Autocheck autochk /p \??\VOLUME{GUID}
Chkntfs D: E: /X Autocheck autochk /k:D /k:E *
Chkntfs G: /C Autocheck autochk /m \??\G: