【问题标题】:Excel: Signing Excel Macro's to prevent "Enable Macros" popupExcel:签署 Excel 宏以防止弹出“启用宏”
【发布时间】:2021-02-14 02:00:20
【问题描述】:

我想知道如何实现以下目标:

  1. 在没有请求“启用宏”的情况下打开 Excel 以获取作为模板分发并由许多人填写的 Excel 工作表,然后返回到我想要读取内容的脚本Excel 工作表(宏仅供用户使用)。

  2. 任何需要我对自己安装的 Excel 进行更改的操作(例如将文件添加到受信任的文档)都不起作用,因为运行脚本的计算机可以是任何包含自动化脚本的 1000 台计算机。

  3. 在 Excel 表上签名(我在这里读过的东西,可以解决问题),很好,但我想知道如何处理他的问题,在大型企业内进行操作时,受很多安全法规。

我无权更改信任中心设置,也无法每次都单击“启用宏”按钮...

欢迎所有帮助。

【问题讨论】:

  • 如果您在 “大型企业” 工作,应该有一些管理员设置此安全设置,他们应该能够告诉您宏的使用是如何在公司以及您必须签署或信任宏代码的可能性。 • 如果他们不允许运行您想要的宏,那么您应该遵循公司的安全准则,而不是试图绕过它们。
  • PEH,问题不在于如何绕过已实施的安全措施。我只是在询问我提到的方法之外的其他方法。我的目标是找出我可以如何与安全团队合作,确保这个特定文件可以安全使用,因为它会流入和流出公司网络。应该以某种方式检查完整性,这意味着信任此文件不是解决方案。
  • 如果 "Integrity should be checks" 你的意思是 VBA 代码的完整性(不是工作表中的数据),那么只需 sign that code 并锁定你的 VBA带密码的代码。如果公司以外的人更改了代码,则证书签名将变为无效并且宏将无法运行。您的安全管理员应该为您提供您公司的代码签名证书。
  • 嗨,PEH,这正是我想要的。我想知道 IT 如何提供此功能。我试图找到这样做的说明,但找不到任何东西。您可以分享任何有用的链接吗?
  • 这太宽泛了,无法回答贵公司如何为您提供代码签名证书,这取决于公司的安全性和证书处理方式是如何建立的。所以这取决于你公司自己的规则。告诉他们您需要一个在公司内受信任的证书来签署您的 VBA 代码。他们会知道该做什么(这是他们的职业)并为您提供证书或将为您签署代码(如果出于安全原因他们无法提供)。安全团队的任务是向您提供证书,而不是告诉他们如何(他们知道如何)。

标签: excel vba security automation


【解决方案1】:

最简单的解决方案是将模板存储在“受信任的位置”中 - 即网络上允许使用宏的文件夹。您可以将模板的当前位置设置为受信任,或者将模板移动到现有的受信任位置。如果您的 IT 部门尚未在人们的个人资料中启用一个位置,他们应该能够设置这样的位置。您必须与您的 IT 部门联系,因为您的用户不太可能自行更改此设置。

【讨论】:

  • 一旦我有了可行的解决方案,与 IT 部门交谈就是目标。再加上文件流入和流出公司网络的事实,因此一些机制,如宏上的签名会很好。
【解决方案2】:

幸运的是,没有人能做到这一点。如果允许自动阻止“启用宏”安全警告弹出窗口,这将是一个巨大的安全问题:

但是,您可以联系使用该模板的人员并要求他们启用信任中心的所有宏:

这是在 Excel 中导航到信任中心的方法:

  • Microsoft Office 按钮
  • Excel 选项
  • 信任中心
  • 信任中心设置
  • 宏设置

Enable or disable macros in Office files

【讨论】:

  • 我的要求将其排除在解决方案之外,因为文件不会相同,而且我无法信任文件的每个副本...
【解决方案3】:

Vityata 的解决方案仅在您的企业安全策略允许信任网络驱动器时才有效。它在我们的环境中不起作用,因为我们的安全策略禁用了信任网络驱动器。

我通过对宏进行自签名并在客户的计算机上安装我的证书,以小得多的规模处理了这个问题。我只有几个客户使用我编写的脚本,所以这对我来说没什么大不了的。

但是,要大规模执行此操作,您的 IT 部门需要通过其 Windows 更新机制分发您的证书。您必须拥有对您机器的管理员访问权限,并拥有第二个作为测试平台才能使其正常工作。

您将采取的步骤是:

  1. 创建您的自签名证书。
  2. 签署宏。
  3. 通过在另一台机器上安装您的证书并运行宏来测试它是否可以在另一台机器上运行。
  4. 将证书发送给您的 IT 部门以供他们分发。
  5. 将电子表格发送给您的客户。

我正在研究另一种方法,将我们的部门设置为证书颁发机构,并在内部颁发正确签名的证书供我们自己使用。我们有大量没有分配完全限定域名的设备,因为网络组不想处理维护数千个证书的开销。正如您可能想象的那样,这是一个让所有部分都发挥作用以便一个人可以处理的项目。

【讨论】:

    猜你喜欢
    • 2021-10-18
    • 2012-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-12
    相关资源
    最近更新 更多