Windows Defender - 以编程方式添加排除文件夹
Windows Defender - Add exclusion folder programmatically
我出于研究目的检查了不同的键盘记录器,偶然发现了 Refog:
https://www.refog.com/keylogger/
这个程序可以捕获很多系统事件,但真正引起我注意的是别的东西。该程序创建了一个名为 Mpk 的隐藏文件夹,路径为 C:\Windows\SysWOW64\Mpk。它被标记为操作系统文件夹,因为在我取消标记 Hide protected operating system files (recommended)
之前它是不可见的。我想这可以通过这样的 attrib 命令来完成 attrib +s +h "C:\Windows\SysWOW64\Mpk"
所以没什么革命性的。
但是,他们还为此文件夹向 Windows Defender 添加了一个排除项。他们如何以编程方式执行此操作?我是 运行 Windows 10 Pro x64。
经过一番挖掘,我发现了以下文件夹:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender\Exclusions\Paths
我无法为我的用户添加密钥。我收到以下错误:Cannot create key: You do not have the requisite permissions to create a new key under Paths
但是 SYSTEM、WinDefend 和 TrustedInstaller 都具有 完全控制。最好的猜测是他们使用了 DevxExec devxexec.exe /user:TrustedInstaller cmd
之类的东西并将密钥写入注册表。
执行此操作的正确方法是使用 Add-MpPreference PowerShell cmdlet。使用此 cmdlet 为文件扩展名、路径和进程添加排除项,并为高、中和低威胁添加默认操作。
您可以使用以下命令行从 Windows 10 中提升的 cmd shell 轻松执行此操作:
powershell -inputformat none -outputformat none -NonInteractive -Command Add-MpPreference -ExclusionPath "C:\Windows\SysWOW64\Mpk"
最简单的方法是在 CMD 中使用具有提升权限的 PowerShell(如 ),但您也可以使用 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 变量。除了您提到的子文件夹之外,他们还可以使用它。
转到 powershell
添加-MpPreference -ExclusionPath "C:\Temp"
参考:
https://docs.microsoft.com/en-us/powershell/module/defender/add-mppreference?view=win10-ps
运行 在提升的 shell 中(在“开始”菜单中搜索 cmd 并按 Ctrl+Shift+Enter)。
powershell -Command Add-MpPreference -ExclusionPath "C:\tmp"
powershell -Command Add-MpPreference -ExclusionProcess "java.exe"
powershell -Command Add-MpPreference -ExclusionExtension ".java"
powershell -Command Remove-MpPreference -ExclusionExtension ".java"
只是觉得我会 post 因为它确实花了我几秒钟的时间来弄清楚如何在 C# 中执行此操作,但这是适合我的代码:
var elevated = new ProcessStartInfo("powershell")
{
UseShellExecute = false,
CreateNoWindow = true,
Verb = "runas",
Arguments = " -Command Add-MpPreference -ExclusionPath '" + directory + "'"
};
Process.Start(elevated);
我出于研究目的检查了不同的键盘记录器,偶然发现了 Refog:
https://www.refog.com/keylogger/
这个程序可以捕获很多系统事件,但真正引起我注意的是别的东西。该程序创建了一个名为 Mpk 的隐藏文件夹,路径为 C:\Windows\SysWOW64\Mpk。它被标记为操作系统文件夹,因为在我取消标记 Hide protected operating system files (recommended)
之前它是不可见的。我想这可以通过这样的 attrib 命令来完成 attrib +s +h "C:\Windows\SysWOW64\Mpk"
所以没什么革命性的。
但是,他们还为此文件夹向 Windows Defender 添加了一个排除项。他们如何以编程方式执行此操作?我是 运行 Windows 10 Pro x64。
经过一番挖掘,我发现了以下文件夹:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender\Exclusions\Paths
我无法为我的用户添加密钥。我收到以下错误:Cannot create key: You do not have the requisite permissions to create a new key under Paths
但是 SYSTEM、WinDefend 和 TrustedInstaller 都具有 完全控制。最好的猜测是他们使用了 DevxExec devxexec.exe /user:TrustedInstaller cmd
之类的东西并将密钥写入注册表。
执行此操作的正确方法是使用 Add-MpPreference PowerShell cmdlet。使用此 cmdlet 为文件扩展名、路径和进程添加排除项,并为高、中和低威胁添加默认操作。
您可以使用以下命令行从 Windows 10 中提升的 cmd shell 轻松执行此操作:
powershell -inputformat none -outputformat none -NonInteractive -Command Add-MpPreference -ExclusionPath "C:\Windows\SysWOW64\Mpk"
最简单的方法是在 CMD 中使用具有提升权限的 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 变量。除了您提到的子文件夹之外,他们还可以使用它。
转到 powershell
添加-MpPreference -ExclusionPath "C:\Temp"
参考: https://docs.microsoft.com/en-us/powershell/module/defender/add-mppreference?view=win10-ps
运行 在提升的 shell 中(在“开始”菜单中搜索 cmd 并按 Ctrl+Shift+Enter)。
powershell -Command Add-MpPreference -ExclusionPath "C:\tmp"
powershell -Command Add-MpPreference -ExclusionProcess "java.exe"
powershell -Command Add-MpPreference -ExclusionExtension ".java"
powershell -Command Remove-MpPreference -ExclusionExtension ".java"
只是觉得我会 post 因为它确实花了我几秒钟的时间来弄清楚如何在 C# 中执行此操作,但这是适合我的代码:
var elevated = new ProcessStartInfo("powershell")
{
UseShellExecute = false,
CreateNoWindow = true,
Verb = "runas",
Arguments = " -Command Add-MpPreference -ExclusionPath '" + directory + "'"
};
Process.Start(elevated);