上午,
我正在尝试确定一种使用VBA更新Outlook 2010收件箱及其所有子文件夹的权限的方法。
我们拥有一个帐户,其中包含一些新用户需要访问的大量子文件夹。手动分配每个都需要几个小时,我正在寻找一个自动化过程,因为这将是一个重新安置的任务。
由于管理员的限制,我只能使用原生VBA。
这是可能的,还是我注定了几个小时的平凡重复指点和点击?
非常感谢
皮特
答案 0 :(得分:0)
Outlook对象模型(在VBA中使用)不提供任何更改文件夹权限的功能。
您可以使用低级API - 扩展MAPI来访问权限。文件夹级别权限存储在文件夹中。您需要使用IMAPIFolder :: OpenProperty方法获取PR_ACL_TABLE属性值。或者您可以考虑使用该API的任何第三方包装器来简化开发过程。有关详细信息,请参阅Changes in Outlook 2010 folder permissions not shown in Active Directory。
答案 1 :(得分:0)
由于您使用的是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