作为多操作系统挑战(测试计算机完整性)的一部分,我需要找到在 Windows 机器上重现真正的蓝屏死机 (BSOD) 的最快方法。任何 XP 或更高版本都可以。
作为新雷说:
所以基本上你是想尽可能快地让一台机器 BSOD,但只能一次,并且在时钟启动之前你不能触摸这台机器?
是的,这正是我想做的。
我想知道是否有简单的命令或操作会导致 Windows 失控并出现蓝屏。任何指示都会非常有帮助。
限制:
- 无法编写脚本/程序
- 不能弄乱硬件
- 必须能够在 Windows 内完成
- 不可能是假的
我需要能够干净地启动 Windows,然后我必须即时重现 BSOD。因此,硬件和必需启动解决方案很好,但它们不符合这些规则。
结论
我来到比赛现场,准备实施 Shinrai 的 BSOD 方法。结果发现,没有关于打开和关闭计算机的具体规则,只是不能弄乱硬件。我检查了我的键盘——它是 USB 键盘,所以我知道要编辑哪个键。我们被告知要启动,我很快找到并编辑了该键,然后重新启动。幸运的是,这些是基本计算机,不需要启动很多服务——因此重新启动相当快。环顾四周,我看到人们在乱搞注册表,但没有其他人在重新启动计算机。我按了键盘组合键,然后 BOOM windows 喷出了一个漂亮的 BSOD(操作系统实际上很擅长这个)。
我最终赢了,我只想说一句话:“我很高兴能回家玩我的 Linux 机器”。
感谢 Shinrai 提供的成功解决方案!
答案1
事实上,大多数 Windows 版本都内置有开发工具,可以根据命令生成 BSOD。 以下是在 Windows 7 中使用 USB 或 PS/2 键盘导致此问题的方法(我相信在 XP/Vista 中使用 USB 也会出现同样的问题,尽管本文没有这么说,但我可能是弄错了):
您必须确保以下三个设置,以免键盘导致系统崩溃:
如果希望写入崩溃转储文件,则必须启用此类转储文件,选择路径和文件名,并选择转储文件的大小。有关更多信息,请参阅启用内核模式转储文件。
和PS/2键盘,您必须在注册表中启用键盘引发的崩溃。在注册表项 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\i8042prt\Parameters 中,创建一个名为 CrashOnCtrlScroll 的值,并将其设置为 REG_DWORD 值 0x01。
和USB键盘,您必须在注册表中启用键盘引发的崩溃。在注册表项 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\kbdhid\Parameters 中,创建一个名为 CrashOnCtrlScroll 的值,并将其设置为 REG_DWORD 值 0x01。
您必须重新启动系统才能使这些设置生效。
完成后,可以使用以下热键序列启动键盘崩溃:按住最右边的 CTRL 键,然后按两次 SCROLL LOCK 键。
然后系统调用 KeBugCheck 并发出错误检查 0xE2 (MANUALLY_INITIATED_CRASH)。除非已禁用崩溃转储,否则此时会写入崩溃转储文件。
如果崩溃的机器上连接了内核调试器,则崩溃转储文件写入后,机器将进入内核调试器。
答案2
这是一项古老的技术。至少在 Vista 之前应该有效:
在 regedit 中查找:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\i8042prt\Parameters\
创建一个名为的 DWORD 键CrashOnCtrlScroll
并将其值设置为 1。
...
要生成 BSOD,请按住右 CTRL 并按两次 ScrollLock。
答案3
您可以启用手动启动崩溃通过执行这些注册表更改。
如果您的 BIOS 可以将系统的硬盘适配器在原生 SATA 和传统 ATA 模式(可能还有 IRRT)之间切换,则切换到 Windows 安装时的其他模式通常会产生 BOOT_VOLUME_INACCESSIBLE 错误。我非常确定,在启用 ACPI 的情况下安装 Windows 时禁用 ACPI(如果 BIOS 上可能的话)也会导致启动时出现蓝屏。
使用 Sysinternal 的 Process Explorer终止winlogon.exe
会产生蓝屏,但它不是传统的“已检测到问题并且 Windows 已关闭以保护您的计算机...”屏幕。
您可能也对此感兴趣 -Sysinternals 的 BlueScreen 屏幕保护程序。
答案4
你可以这样做:
TASKKILL /IM svchost.exe /F
在 Windows 10 的命令提示符中。
它将结束一个关键进程并使窗口崩溃。