如何在C#中启用Windows Defender

时间:2015-06-03 09:30:45

标签: c# windows msdn

我正在寻找一种在C#中启用(不禁用)Windows Defender的方法。

我在msdn上找到了这个功能

HRESULT WDEnable(
  _In_  BOOL fEnable
);

我可以使用它但它的部分MpClient.dll,我在我的系统上找不到,所以我不能使用LoadLibrary / GetProcAddress / GetDelegateForFunctionPointer

有谁知道另一种方法吗?

我应该指出,对于需要检查Windows Defender是否已启用(已经编码并正常工作)以及是否启用它的合法软件。

由于

3 个答案:

答案 0 :(得分:0)

注册表项具有一些访问限制,可防止在用户上下文中运行的任何进程将其关闭。对于病毒来说,很容易阻止它被检测到。要启用它,您必须在管理员上下文中运行。尝试以管理员身份运行您的流程,看看您是否可以通过这种方式更改注册表项。

来自msdn文档: 备注

  

调用此函数的应用程序必须与管理员一起运行   本地计算机上的权限。 Windows Defender也验证(1)   正确签署调用进程和所有已加载的模块和   (2)IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY标志设置为on   允许调用之前调用进程和所有已加载的模块   申请改变状态。如果调用过程图像(或任何   已加载的模块)未被Windows签名或被标记为威胁   后卫签名,然后调用失败并带有相应的错误   代码。

答案 1 :(得分:0)

没有简单的方法可以通过您的程序打开或关闭Windows Defender。如果它如此简单,Windows Defender将无法保护您的计算机,因为任何恶意软件都会将其关闭。

有一些注册表项可以定义是否启用了Windows Defender的实时保护。您可以读取这些值以了解它是否处于活动状态。但是你不能修改这些密钥,甚至不能在SYSTEM用户的服务中运行。这些注册表项受Windows保护,禁止篡改。

打开或关闭Windows Defender的唯一方法:

  • 通过Windows Defender配置面板(MsAscUi.exe)手动
  • 安装另一个自动禁用Windows Defender的防病毒软件。

如果您对注册表项感兴趣,请在另一个主题中阅读我的答案: Find out if Windows Defender disc scan is running?

答案 2 :(得分:0)

第一步是通过按“ Windows”键和“ R”键打开“运行”对话框 然后在“打开”对话框中键入“ services.msc” 按Enter键或单击“确定”按钮 在服务列表中检查“安全中心” 右键单击“安全中心” 点击重启