我用埃默特保护我电脑上的许多应用程序 - Web 浏览器、Office 套件应用程序、PDF 阅读器以及 Adobe Flash。总体来说,它运行良好,只是 Flash 可执行文件的文件名中包含版本号,因此每次更新时,文件名都会更改,我必须记住手动将它们重新添加到 EMET。
有没有办法简化这个过程?EMET 确实支持通配符,但仅限于路径本身,而不是文件名,因此类似的方法%windir%\system32\Macromed\Flash\*.exe
不起作用。
还有其他方法可以将整个文件夹添加到 EMET 以便该文件夹中的任何新可执行文件都自动受到保护吗?
答案1
EMET 包含一个命令行工具EMET_Conf.exe
。它几乎可以用于配置 EMET 中的任何设置,包括添加和删除应用程序。
以下代码将所有与 Flash 相关的可执行文件添加到 EMET:
cd %windir%\system32\Macromed\Flash
for %f in (*.exe) do EMET_Conf --set %f
cd %windir%\SysWOW64\Macromed\Flash
for %f in (*.exe) do EMET_Conf --set %f
(最后两行仅在 64 位 Windows 上才需要。有关更多信息,请参阅安装目录中的 EMET 用户指南。)
这必须从提升的命令提示符运行,并假设您的PATH
环境变量包含 EMET 的安装位置。如果没有,并且您不能或不想添加它,请将EMET_Conf
上面的代码替换为完整路径,例如:
for %f in (*.exe) do "C:\Program Files (x86)\EMET\EMET_Conf.exe" --set %f
上述代码可以保存为 .bat 文件,然后配置为按计划任务运行。选择您想要的时间表(每天一次似乎是个不错的选择,因为这是检查 Flash 更新的频率),并确保选中“以最高权限运行”选项,因为 EMET 需要管理员权限。
这种方法的唯一缺点是旧条目不会被清除,因此一段时间后,您的 EMET 配置中会出现许多不存在的可执行文件,必须手动清除这些文件。不过,只需稍加调整,就可以修改代码,将其添加的每个可执行文件记录到文本文件中,然后在下次运行时调用EMET_Conf --delete
每个文件,然后再添加新文件:
for /F "tokens=1" %%f in (log.txt) do EMET_Conf --delete %%f
type nul > log.txt
for %%f in (%windir%\system32\Macromed\Flash\*.exe) do EMET_Conf --set %%f && echo %%f >> log.txt
for %%f in (%windir%\SysWOW64\Macromed\Flash\*.exe) do EMET_Conf --set %%f && echo %%f >> log.txt