Windows 错误日志(WerFault)导致无法终止的挂起进程

Windows 错误日志(WerFault)导致无法终止的挂起进程

这种症状与这个问题。但是,我没有安装 SN-DBS 服务,它似乎影响机器上运行的所有可执行文件,而不仅仅是几个编译的文件。

通常,当应用程序遇到错误(无论是异常、由于死锁、无响应的 UI 或其他许多原因导致的挂起,Windows 认为该进程有问题)时,WerFault.exe就会产生并控制有问题的进程并将其挂起。一旦WerFault.exe在事件查看器的应用程序日志中记录了应用程序错误,它就会通过关闭自身并终止挂起的进程来清理进程。日志条目示例:

Faulting application name: exceptiontest.exe, version: 1.0.0.0, time stamp: 0x65fc7138
Faulting module name: KERNELBASE.dll, version: 10.0.22621.3447, time stamp: 0x3d876852
Exception code: 0xe0434352
Fault offset: 0x00000000000653ac
Faulting process id: 0x0xF74
Faulting application start time: 0x0x1DA969431684D42
Faulting application path: D:\Test\bin\Debug\net6.0\exceptiontest.exe
Faulting module path: C:\WINDOWS\System32\KERNELBASE.dll
Report Id: b97a61b6-eef2-4070-8616-2eb88e9ee82b
Faulting package full name: 
Faulting package-relative application ID: 

但是,在这种情况下,情况并非如此。WerFault.exe确实暂停了进程,写入了日志,并继续终止自身,但在暂停进程时,它将所有者从用户更改为,SYSTEM并将权限提升Integrity Level为,System Mandatory Level使其无法终止。最初,有问题的程序在上运行,Medium Mandatory Level因为它不是从具有管理权限的命令行运行的。

我可以使用以下 .Net 程序在我的计算机(Windows 11 23H2 Build 22631.3447)上可靠地重现该问题:

class Program
{
    static void Main(string[] args)
    {
        throw new Exception();
    }
}

我尝试运行,sfc scannow然后dism /online /cleanup-image /scanhealth发现没有任何错误。sfc显示“Windows 资源保护未发现任何完整性违规”并且显示dism“未检测到组件存储损坏”。

这是一个奇怪的问题,我最近才意识到,当时我好奇地看了看任务管理器正在运行的进程列表。我不确定它是什么时候开始出现这种情况的。

我确实想知道是什么导致了这个问题?

退出后我如何知道还有谁在持有该进程WerFault.exe

鉴于我只有 Windows Defender 作为防病毒程序,新的 Windows Defender DevDrive 保护是罪魁祸首吗?那是新东西,我还没有在任何驱动器上启用它。我试图禁用它,但我仍然能够可靠地重现僵尸进程。

我怎样才能杀死这些即使以管理员身份运行 Process Explorer 也无法杀死的僵尸进程?

是否可以降低进程的级别Integrity Level并可能终止它?我已尝试通过 Process Explorer 将所有可能的权限分配给我的帐户,但仍然无法摆脱僵尸进程。

相关内容