如何在C#中启用Windows Defender

问题描述 投票:2回答:3

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

我在msdn上找到了这个功能

HRESULT WDEnable(
  _In_  BOOL fEnable
);

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

有谁知道另一种方法吗?

我应该指出,对于需要检查Windows Defender是否已启用(已编码且正在运行)且未启用它的合法软件。

谢谢

c# windows msdn
3个回答
0
投票

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

来自msdn文档:备注

调用此函数的应用程序必须在本地计算机上以管理员权限运行。 Windows Defender还验证(1)正确签署调用进程和所有已加载的模块,以及(2)在允许调用应用程序更改状态之前,在调用进程和所有已加载的模块上设置IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY标志。如果调用过程映像(或任何已加载的模块)未签名或被Windows Defender签名标记为威胁,则调用将失败并显示相应的错误代码。


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?


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.