我喜欢微软如何利用 Defender 取代第三方防病毒保护 - 它就是有效。
不幸的是,对于我这个开发人员来说,这有时意味着它运行得有点太好,并减慢了我所知道的安全进程的速度——例如 Android Studio 中的 Gradle 构建。我知道我可以从扫描中排除一些文件和进程——但我实际上不知道要排除哪些。Android Studio 的 UI?OpenJDK?我的 Android 模拟器?
其他一些防病毒产品(例如 Avira)提供了其扫描的文件和程序的视图,甚至提供了直接的“从扫描中排除”按钮。
有没有办法监控实时保护正在扫描的内容、哪些文件或进程导致其加速并占用最大 CPU 容量?
答案1
您可以使用 SysInternals 的 ProcMon 执行此操作:https://docs.microsoft.com/en-us/sysinternals/downloads/procmon
- 以管理员身份运行 ProcMon。
- 打开过滤器(过滤器 > 过滤器...)。
- 创建过滤器,其中进程名称-是-微软MpEng然后包括。
- 单击“添加”并“确定”。
您的列表现在应该被过滤,并且您可以查看和记录引擎接触的文件。
另一个可以向此进程添加信息的工具是 Process Explorer,同样来自 SysInternals:https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer
在运行 ProcMon 时运行 ProcExp,当您在 ProcMon 日志中找到您怀疑可能导致速度缓慢的条目时,请在 ProcExp 的进程列表中找到它们。
ProcExp 以层次结构视图(“树形视图”)显示应用程序,其中将进程列为父进程和子进程。它还允许您搜索单个线程和正在使用的文件,并识别正在使用它们的进程。
然而我认为你让问题复杂化了。
您首先要做的不是识别和列入白名单的 SDK 和模拟器中运行的每个单独文件,而是识别和列入白名单的 SDK 中的可执行文件和运行这些文件的模拟器本身。
首先执行此操作,如果第一步不能解决问题,则仅将单个文件列入白名单。
答案2
为此,微软现在提供了 Microsoft Defender 防病毒性能分析器:
PowerShell 命令行工具可帮助您确定在防病毒扫描期间可能导致各个端点出现性能问题的文件、文件扩展名和进程。
需要分析的一些选项包括:
- 影响扫描时间的主要路径
- 影响扫描时间的主要文件
- 影响扫描时间的主要进程
- 影响扫描时间的主要文件扩展名
- 组合——例如:
- 每个扩展名的热门文件
- 每个扩展的顶级路径
- 每条路径的顶级进程
- 每个文件最常扫描的次数
- 每个进程每个文件的最高扫描次数
答案3
进程黑客还可用于查看正在扫描的文件。安装后,以管理员身份运行该程序,或单击Show details for all processes
Hacker 下拉菜单。
从那里,转到“磁盘”选项卡。将显示正在读取或写入的所有文件;列表中显示正在由 MsMpEng.exe(Defender 的主要可执行文件)读取的任何文件都将被扫描。如果您将内容粘贴MsMpEng.exe
到窗口右上角的搜索栏中,然后单击“文件”列按字母顺序排序,则可以更轻松地查看正在扫描的内容,因为这会过滤列表,以便仅显示由 Defender 扫描的文件。
答案4
需要说明的是,微软实际上有一篇关于为 Android 开发人员创建排除项的文章 https://docs.microsoft.com/en-us/windows/android/defender-settings