Windows Defender - 程序化添加排除文件夹

28

我为了研究目的检查了不同的键盘记录器,并偶然发现了Refog:

https://www.refog.com/keylogger/

这个程序可以捕获许多系统事件,但引起我的注意的是其他事情。该程序创建了一个名为Mpk的隐藏文件夹,路径为C:\Windows\SysWOW64\Mpk。它被标记为操作系统文件夹,因为它在未取消选中“隐藏受保护的操作系统文件(推荐)”之前是不可见的。我猜,可以通过attrib命令像这样attrib +s +h "C:\Windows\SysWOW64\Mpk"来完成这个操作,所以并没有什么特别的。

Hide

然而,他们还为这个文件夹添加了Windows Defender的排除设置。他们如何在程序上实现这一点呢?我正在运行Windows 10 Pro x64。

Exclusion

6个回答

33

使用Add-MpPreference PowerShell命令是正确的方法。使用此命令添加文件名扩展名、路径和进程的排除,并添加高、中、低威胁的默认操作。

您可以在Windows 10上使用以下命令行从升级的cmd shell轻松执行此操作:

powershell -inputformat none -outputformat none -NonInteractive -Command Add-MpPreference -ExclusionPath "C:\Windows\SysWOW64\Mpk"

3
运行得非常完美,但是如果您的文件路径中有空格,则需要转义该命令,例如:powershell -inputformat none -outputformat none -NonInteractive -Command "Add-MpPreference -ExclusionPath 'C:\Program Files (x86)\sysconfig'" - Ogglas
1
请问我如何使用多个路径来完成这个任务呢?@balrob - JumpingJacks
1
一个逗号分隔的列表(逗号周围没有空格)就可以了,例如 -ExclusionPath 'path1','path2' - balrob
1
请使用以下命令确认更改:powershell -inputformat none -outputformat text -NonInteractive -Command Get-MpPreference - balrob
或者检查其中的Windows Defender设置配置以查看更改。 - WesternGun

22

请考虑可能带来的风险:如果您真的排除了所有“Temp”文件夹,则每个应用程序都可以下载可疑文件,您将不再收到通知。 - WesternGun
1
你是正确的。只要它不是系统临时文件夹,那就没问题。 - WesternGun
添加java.exe排除是一个严重的安全威胁! - Tomasz
1
我喜欢你展示如何添加和删除排除项,并指向正确的文档。我已经使用它从Chocolatey安装了NirLauncher,暂时排除了Chocolatey目录(该目录位于当前用户的%TEMP%下:不是永久允许的位置)。排除:powershell -Command Add-MpPreference -ExclusionPath "%TEMP%\chocolatey\NuGetScratch" 安装:choco update --yes nirlauncher 删除排除项:powershell -Command Remove-MpPreference -ExclusionPath "%TEMP%\chocolatey\NuGetScratch"` - Jeroen Wiert Pluimers
1
对于那些抱怨安全风险的人:这些只是例子!它们很有用,因为它们报告了三种情况和删除案例。 - Zac

11

经过一番查找,我找到了以下文件夹:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender\Exclusions\Paths

我无法使用我的用户在那里添加一个键。我收到以下错误消息:无法创建键:您没有在路径下创建新键所需的权限

然而,SYSTEM、WinDefend和TrustedInstaller都具有完全控制权限。最好的猜测是他们使用了类似DevxExec的工具 devxexec.exe /user:TrustedInstaller cmd 并将键写入了注册表。

输入图像描述


每个用户都有自己的注册表。 - RCECoder
1
如果您投反对票,请说明原因。否则很难改进答案。 - Ogglas

3

请考虑可能带来的风险:如果您真的排除了所有“Temp”文件夹,每个应用程序都可以下载可疑文件,而您将不再收到通知。 - WesternGun

1

最简单的方法是使用具有提升权限的CMD中的PowerShell(例如balrob的回答),但您还可以使用PowerShell环境变量使生活更轻松;例如:

powershell -inputformat none -outputformat none -NonInteractive -Command Add-MpPreference -ExclusionPath $ENV:USERPROFILE\Downloads

这将会添加当前用户的下载文件夹,例如:C:\Users\Susana\Downloads.

要获取PowerShell提供的环境变量列表,您可以使用以下PowerShell命令:

Get-ChildItem Env: | Sort Name

正如您所见,这里有一个名为 windir 的变量。除了您提到的子文件夹,他们可以使用它。

0

我觉得我应该把这个发出来,因为在C#中我确实花了几秒钟才弄清楚如何做到这一点,但这是对我有效的代码:

        var elevated = new ProcessStartInfo("powershell")
        {
            UseShellExecute = false,
            CreateNoWindow = true,
            Verb = "runas",
            Arguments = " -Command Add-MpPreference -ExclusionPath '" + directory + "'"
        };
        Process.Start(elevated);

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