Outlook 显然在某处有一个设置,用于控制是否可以直接打开给定文件类型的电子邮件附件,或者用户是否必须经过“您只应打开来自可靠来源的附件”对话框。此对话框中的一个选项是“打开此类文件前始终询问”。
要取消选中“始终询问”设置,您必须关闭 Outlook,以管理员身份重新打开,然后尝试打开要更改此设置的每种文件类型,然后取消“始终询问”设置...然后关闭 Outlook 并以普通用户身份重新打开。我正在尝试找到一种方法来自动执行此过程,但我似乎无法弄清楚此设置存储在哪里。我猜想它隐藏在注册表的某个地方,但 Outlook 也有存储大量内容的习惯(咳嗽自动完成列表咳嗽) 位于随机数据库文件中。
有人知道 Outlook 在哪里/如何存储附件文件类型的“安全状态”吗?
答案1
从技术上讲,在 Outlook 中取消选中信任中心(来自 Excel 或 Word)下的“为 Outlook 附件启用受保护视图”后,会出现此提示。请记住,Outlook 信任中心不会显示此选项以禁用/启用受保护视图设置,您必须转到相关的 Office Suite 程序。如果启用此设置,您将不会再收到提示,但是现在将在您打开 Excel/Word 时显示受保护视图设置警报。我最终执行了 Roady 在 MS 论坛上提供的修复:右键单击 Outlook 快捷方式并以管理员身份运行它,然后在打开附件时按 Ctrl + Shift,这将允许您取消选中“打开此类文件前始终询问”复选框。
答案2
讽刺的是,在我提出这个问题的第二天,Adam Fowler 发表了这篇博文: https://www.adamfowlerit.com/2017/09/disabling-outlook-opening-mail-attachment-prompt/。
总结一下(以防有一天他的帖子消失了):
在注册表中,此分支下每个“受信任”文件类型都有一个类:HKLM\SOFTWARE\Microsoft\Office\ClickToRun\REGISTRY\MACHINE\Software\Classes
例如,Excel 文件可能是HKLM\SOFTWARE\Microsoft\Office\ClickToRun\REGISTRY\MACHINE\Software\Classes\Excel.Sheet.8
或(对于较新版本的 Excel...)HKLM\SOFTWARE\Microsoft\Office\ClickToRun\REGISTRY\MACHINE\Software\Classes\Excel.Sheet.12
设置/添加EditFlags
具有十六进制值的键00,00,01,00
将删除“始终先询问...”弹出窗口并允许文件打开。
因此,如果您想允许打开 Visio 文件版本 15,您需要添加/编辑如下所示的注册表项:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\REGISTRY\MACHINE\Software\Classes\Visio.Drawing.15]
"EditFlags"=hex:00,00,01,00
Adam 的文章真正要表达的是,你可以使用普罗克蒙(来自 sysinternals)解码您感兴趣的文件类型。为此,请打开 procmon 并设置类似Process name contains outlook.exe
和 的过滤器Operation is SetRegValue
。这将向您显示 Outlook 设置注册表值的事件,更重要的是,它是什么值。文件类型到“类名”的映射是棘手的部分 - 它的工作方式并不总是很明显,我认为每个应用程序都可以获取其中的一些(在我的情况下,IrfanView 是一个与 .gif 和 .jpg 扩展名关联的图像查看器)
接下来,以管理员身份打开 Outlook,并打开您不想被打扰的每种文件类型的示例。在浏览这些文件时,取消选中打开对话框中的“始终询问...”选项,当您打开文件时,相应的注册表项将被编辑。Procmon 将向您显示更改的确切条目,将它们保存到 .reg 文件中以供日后使用,您可以一次性重新设置它们。
就我而言,有足够多的需要定期重置的文件,我编写了一个小型 python 脚本来生成 .reg 文件...只需将您需要的任何叶子添加/删除到列表中,就可以了。
header_row = 'Windows Registry Editor Version 5.00'
reg_branch = 'HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\ClickToRun\REGISTRY\MACHINE\Software\Classes'
leafs = [
'Excel.Sheet.12',
'Word.Document.12',
'PowerPoint.Show.12',
'Excel.Sheet.8',
'Word.Document.8',
'PowerPoint.Show.8',
'Visio.Drawing.15',
'IrfanView.png',
'IrfanView.gif',
'IrfanView.jpg',
]
key_name = '"EditFlags"'
key_value = 'hex:00,00,01,00'
print(f"{header_row}\n\n")
for leaf in leafs:
print(f"[{reg_branch}\{leaf}]")
print(f"{key_name}={key_value}\n")