【问题标题】:Assign folder permissions in Outlook 2010 with VBA使用 VBA 在 Outlook 2010 中分配文件夹权限
【发布时间】:2022-04-03 14:34:04
【问题描述】:

早上,

我正在尝试确定一种使用 VBA 更新 Outlook 2010 收件箱及其所有子文件夹权限的方法。

我们有一个包含大量子文件夹的帐户,几个新用户需要访问这些子文件夹。手动分配这些都需要几个小时,我正在寻找一个自动化的过程,因为这将是一个重复的任务。

由于管理员限制,我只能使用本机 VBA。

这可能吗,还是我注定要花费数小时的平凡重复指向和点击?

非常感谢

皮特

【问题讨论】:

  • 您好 Niton,我在一家大型组织工作,管理员几乎锁定了一些东西,不允许额外访问。说实话很痛苦,但我明白原因......
  • 如果您可以更新痛苦的方式,则不会锁定其他访问权限。这些链接描述了当您为新人请求访问权限时管理员如何授予访问权限。
  • 谢谢 Niton,我查看了链接,但我没有下载和安装任何其他软件的权限,而且由于公司政策,我的管理员不会这样做。所以我必须手动执行此操作,这确实是件苦差事。再次感谢您的帮助,但我认为没有解决此问题的方法。公司政策意味着我只能使用 VBA,这无法解决问题。
  • 查看superuser thread 中描述的解决方法。

标签: vba outlook


【解决方案1】:

Outlook 对象模型(在 VBA 中使用)不提供更改文件夹权限的任何内容。

您可以使用低级 API - 扩展 MAPI 来访问权限。文件夹级权限存储在文件夹中。您需要使用 IMAPIFolder::OpenProperty 方法获取 PR_ACL_TABLE 属性值。或者,您可以考虑使用围绕该 API 的任何第三方包装器来简化开发过程。请参阅Changes in Outlook 2010 folder permissions not shown in Active Directory 了解更多信息。

【讨论】:

  • 大家好,感谢您的回复。看起来我需要 Reemption 或 C++/Delphi 来解决这个问题。不幸的是,这个权限只允许访问 VBA,所以看起来我将来会做很多重复的指向和点击!
  • 注意:我确实尝试创建一个 DL 并将此访问权分配给一个文件夹,但这也不起作用。再次感谢您的帮助。
【解决方案2】:

由于您使用的是 VBA,扩展 MAPI 是不可能的(您需要 C++ 或 Delphi)。

如果使用Redemption 是一个选项(我是它的作者),您可以使用它的RDOACL 对象(由RDOFolder.ACL 属性返回)来管理任何Exchange 文件夹权限:

 set Session = CreateObject("Redemption.RDOSession")
 Session.MAPIOBJECT = Application.Session.MAPIOBJECT
 set Folder = Session.GetDefaultFolder(olFolderCalendar)

'make sure we get back an Exchange user
 set AddressEntry = Session.AddressBook.GAL.ResolveName("Pete")
 set ACE = Folder.ACL.Add(AddressEntry)
 ACE.Rights = ROLE_PUBLISH_EDITOR

【讨论】:

  • 您好 Dimitry,感谢您的代码。不幸的是,我的管理员不允许访问 Redemption,所以我被卡住了,必须手动进行。
猜你喜欢
  • 1970-01-01
  • 2014-02-15
  • 1970-01-01
  • 2016-11-02
  • 2016-11-28
  • 2018-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多