为什么Windows Defender正在扫描我的代码?

4

我正在使用 Visual Studio 2019 编译 C++ 代码。这些代码从简单的项目学习 C++ 特性到游戏开发都有涉及。但无论项目范围如何,都会出现以下消息:

需要进行安全扫描 您的管理员要求对此项目进行安全扫描。扫描可能需要最多 10 秒钟。

这会使 Visual C++ 编译器停滞,并最终减慢我的工作流程。每次尝试编译代码时都会出现这个问题。奇怪的是,在同一台机器上,我曾经编译过没有这个问题的代码。我不确定是什么原因导致了这种变化,想要恢复以前的状态,但不知道该怎么做。


2
你问过管理员了吗? - 463035818_is_not_a_number
1
在我看来,你似乎在使用一台不适用于运行Visual Studio或进行开发的工作或学校电脑。这实际上是你所在机构的问题,而不是我们可以解决的事情。 - Some programmer dude
@Someprogrammerdude,就像我之前所说的一样,这是我个人的机器,不属于任何组织。 - AbdelRahman Mahmoud
即使是Windows的OEM安装,您也应该有权更新被防病毒软件扫描的目录。这个问题在Stack Overflow以及Stack Exchange网络的其他网站上都有很多重复。更不用说整个互联网上有大量的信息了。您搜索了什么?找到了什么? - Some programmer dude
@Someprogrammerdude 我特意在使用Visual Studio编译代码时搜索了Windows Defender扫描,我找到的唯一解决方案是关闭受控文件夹访问,但我的计算机上已经关闭了。 - AbdelRahman Mahmoud
显示剩余3条评论
5个回答

7

请前往

Start > Settings > Update & Security > Windows Security > Virus & threat protection 

在“病毒和威胁防护设置”中,选择“管理设置”,然后在“排除项”下选择“添加或删除排除项”。选择“添加一个排除项”,然后从文件、文件夹、文件类型或进程中选择文件类型“.cpp”。 向Windows安全性添加排除项

5
这里的问题是由于Windows Defender实时保护引起的,该功能非常重要以确保系统安全。我找到的解决方案基于以下文章: Microsoft对问题的描述和简单修复 如何创建和运行Windows Powershell脚本 Powershell脚本,用于排除Visual Studio 2019的所有必要目录和进程 解决方案是将Windows Defender排除在您用于开发环境的所有进程和目录中,这在自己完成时会变得相当复杂,并且因您选择的开发环境而异。在这里,我正在使用Visual Studio 2019,并将使用Powershell脚本快速添加这些排除项。
只需下载Powershell脚本,打开Windows Powershell,然后键入 Set-ExecutionPolicy Unrestricted

然后导航到脚本的目录。为了简单起见,将脚本放在根C:中并导航到该位置,然后键入./{脚本名称},"./"对于从非默认目录运行脚本很重要。

脚本会询问您存储项目文件夹的位置,这对于排除Windows Defender非常重要。运行脚本后,您基本上已经完成了。

最后一步是Set-ExecutionPolicy Restricted,然后Get-ExecutionPolicy以验证其是否受限制,不要忽视Powershell Execution Policy,因为它是一个非常强大的攻击向量。

我已经完成了这些确切的步骤,并可以验证使用Visual Studio 2019构建代码时Windows Defender不再停顿。这可能意味着使用不同目录结构的较旧或更新版本的Visual Studio需要另一个脚本,或者Microsoft可以采取行动并创建一个通用解决方案来排除自己的开发环境免受Windows Defender扫描。


尽管这里的大多数答案都提到了创建排除项,但对我们来说,最安全的方法是在高权限账户下运行VS。在削弱Defender安全设置或任何防火墙保护之前,使用正确的账户运行程序更为安全。对我来说,添加排除项就像打开给陌生人的大门。 - undefined

1

好的,当我在VSCode中使用CodeRunner扩展时,也遇到了这个消息。每次我使用CodeRunner运行代码时,都会收到此通知。

对我有效的解决方案很简单:

  1. 进入病毒和威胁防护。
  2. 关闭这两个选项:云交付保护、自动样本提交。就像这样:

enter image description here


1

OP已标记为接受的答案有效。但是,他提到的脚本必须是有代码的,因此我创建了一个新的脚本(请参见上面帖子中提到的第二个链接以创建脚本),并将代码从Github https://gist.github.com/dknoodle/5a66b8b8a3f2243f4ca5c855b323cb7b复制并粘贴到我的脚本中,在PowerShell中运行命令./{您的脚本名称}。确保以管理员模式打开PowerShell。此外,如果您要将脚本粘贴在C:的根目录中并希望打开您的脚本,则请确保您的命令引用C:的根文件夹。您可以键入cd..来退出目录。


这并没有回答问题。一旦您拥有足够的声望,您将能够评论任何帖子;相反,提供不需要询问者澄清的答案。- 来自审核 - VainMan

0

已解决

我也遇到了同样的问题。为了简化操作,创建一个仅保存C ++和支持文件的新文件夹。我创建了一个在Downloads / VSCode下。

  1. 打开Windows开始菜单(Windows按钮)
  2. 键入Windows安全
  3. 选择它。
  4. 点击左侧列中的“病毒和威胁防护”
  5. 在“病毒和威胁防护设置”下,单击:“管理设置”
  6. 向下滚动到排除项
  7. 单击“添加或删除排除项”,然后选择+添加排除项
  8. 选择“文件夹”作为类型,然后浏览到您创建的VSCode文件夹(例如,“Downloads / VSCode”),并将其选中。
  9. 重新启动VSCode,虽然可能不需要,但问题已解决。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接