首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查看Windows Defender磁盘扫描是否正在运行

查看Windows Defender磁盘扫描是否正在运行
EN

Stack Overflow用户
提问于 2009-05-14 11:16:03
回答 2查看 2.9K关注 0票数 2

Windows Defender磁盘扫描会占用系统的大量性能。有没有办法让C#应用程序找出磁盘扫描当前是否正在运行?

EN

回答 2

Stack Overflow用户

发布于 2015-07-09 09:08:33

您可以检查MsMpEng.exe (反恶意软件服务可执行文件)当前正在生成的处理器负载。在我的电脑上,它以50%的CPU运行(一个CPU核心被完全占用),同时观察安装情况。

它阻止EXE或DLL文件,我的安装程序写入磁盘的时间长达25秒!(显然,安装程序挂起了。)

请注意,在控制面板中完全关闭WindowsDefender后,MsMpEng.exe仍在运行。因此,仅仅检查服务是否正在运行是不够的。您必须检查其当前的CPU负载。

Windows Defender扫描每个可执行文件和动态链接库文件,当你启动一个应用程序时,每次重新-尽管它已经扫描了所有这些文件,当应用程序已经安装!所以每次你启动一个应用程序时,你会有一个巨大的延迟:你的应用程序加载的DLL文件越多,速度就越慢。

特别是当你的应用程序使用像Themida或WinLicense这样的反盗版保护时,Windows Defender需要极长的时间来检查这些文件。

Windows Defender扫描每个可执行文件(EXE,DLL),当您的应用程序只打开文件而没有从文件中读取或写入一个字节时,这会导致CreateFile()延迟长达25秒!

很明显,微软不具备编写快速高效的反恶意软件的知识。(我从未见过任何杀毒软件运行25秒来扫描单个文件!)建议安装另一个防病毒程序,这将导致Windows Defender被自动禁用。

当用户打开/关闭Windows Defender时,以下注册表项会更改:

Windows 8关闭:

代码语言:javascript
复制
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WdBoot
"Group"= "_Early-Launch"
"Start"= 3   // SERVICE_DEMAND_START
"ImagePath"= "\SystemRoot\system32\drivers\WdBoot.sys"

Windows 8 On:

代码语言:javascript
复制
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\WdBoot
"Group"= "Early-Launch"
"Start"= 0   // SERVICE_BOOT_START
"ImagePath"= "system32\drivers\WdBoot.sys"

请注意,当您检查WdBoot服务的状态时,它通常不会运行,即使它已启用。它似乎只在启动Windows(?)时运行。

Windows 7、Windows 8和Windows 10关闭:

代码语言:javascript
复制
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender\Real-Time Protection
"DisableRealtimeMonitoring"=1

Windows 7、Windows 8和Windows 10:

代码语言:javascript
复制
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender\Real-Time Protection
"DisableRealtimeMonitoring"=0
// or the entry does not exist

管理员用户无法更改此密钥。写入权限仅授予用户SYSTEM和组WinDefend和TrustedInstaller。

从Windows10开始,不再可以从以"System/NT AUTHORITY“用户(拒绝->访问)运行的服务中写入此值。Microsoft可能会检查尝试写入此值的应用程序的数字签名。

而在Windows10上真正让吸的是,你可以关闭Windows Defender,重新启动电脑,然后它就会重新启用!

还有一个影响Windows Defender的密钥(默认情况下不存在,但可以作为普通管理员创建):

代码语言:javascript
复制
HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows Defender
"DisableAntiSpyware" = 1

此密钥的作用是,您单击控制面板中的"Windows Defender“,您将看到一个消息框,告诉您:”此应用程序已被组策略关闭……要允许此应用程序运行,请联系您的安全管理员,通过组策略启用此程序。“

请注意,此键不关闭 Windows Defender。它只禁止用户打开Windows Defender配置面板(MsAscUi.exe)。

票数 3
EN

Stack Overflow用户

发布于 2009-05-14 11:29:27

使用Internet Explorer的示例:

代码语言:javascript
复制
Process[] ProcInfo = System.Diagnostics.Process.GetProcessesByName("iexplore");
票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/862776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档