在Windows 10下进行VBA项目的数字签名

11
昨天我从win 8.1升级到win 10。在win 8.1下的Outlook 2013中,我有一个VBA脚本(宏),可以自动将密送抄送添加到每个发送的邮件中。这个脚本是数字签名的,所以我可以像这样设置宏设置:“数字签名宏的通知,所有其他宏都禁用”,而不必每次启动Outlook时都要求我启用此宏。现在它不再起作用了。如果我将此宏安全设置为“启用所有宏”,则脚本可以正常工作-但出于安全原因,我不想使用此设置。

所以问题显然出现在VBA脚本的数字签名中。我从头开始做了所有事情:我删除了以前的证书,使用SELFCERT.EXE创建了新证书,并像在win 8.1中一样执行了所有过程,并且一切都进行得很顺利,就像here中描述的那样,除了应该只在第一次询问我是否信任发布者并且我应该检查“始终信任此发布者的宏”的部分。我无法调用此窗口。也许这指出了一些问题或不一致性:它应该向我显示此窗口以供我检查,但由于我之前在win 8.1下已经检查过它,所以它没有显示...?

有人有解决这个问题的想法吗? 谢谢!


如果发布者不可信,则签名的效果确实很小。 - Maarten Bodewes
3个回答

7

我终于明白了!

唯一需要做的就是以管理员身份运行Outlook。我这样做后,窗口上出现了“信任来自此发布者的所有文档”的选项,我点击后,之后的一切都像以前一样正常运行。


那么您每次都必须以管理员身份运行Outlook吗? - Caltor
我只需要第一次以管理员身份运行。之后,我可以正常运行Outlook(不作为管理员),宏继续工作而无需提示或其他花招。 - RSW

1
我在从Windows 7 x32升级到Windows 10后遇到了同样的问题,但使用的是Outlook 2010而不是2013。尝试了各种方法都没有成功。
最终对我有用的是进入“信任中心”,选择“宏设置”,勾选“将宏安全设置应用于已安装的加载项”以及“数字签名宏的通知”选项。
“禁用所有宏”选项会变灰。
点击确定并退出Outlook。
下次打开Outlook时,您将被要求接受每个已安装的加载项以及您自己认证的VBA项目 - 但这只需要一次。作为保险起见,我允许自动安装证书。至少在我的情况下,从那时起,所有的宏都正常运行 :-)
希望这可以帮助你!

非常感谢您的努力。不幸的是,这对我没有用。我按照您说的做了,但什么也没发生。当我关闭并重新打开Outlook时,它没有要求我接受安装的插件(它什么也没问)。我唯一注意到的是,启用此选项后,我无法从Outlook内部打开Visual Basic编辑器。 - Mario

1
我知道这个帖子已经过时了,但我发现Bzek的解决方案有效。我不想以管理员身份运行Outlook,但我也希望我的宏能像在W7中那样工作。Kopweb提供的潜在解决方案对我没有用。
好消息是,在“客户端身份验证”的证书属性高级部分中简单地勾选一个复选框就可以解决问题。正常重启Outlook,宏应该可以正常工作。请参见下面的图片: 证书-高级选项

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