调用所有邮箱的 FindAppointments 需要在邮箱数据库上具有什么权限?

调用所有邮箱的 FindAppointments 需要在邮箱数据库上具有什么权限?

我有一个小应用程序,它从 Exchange 2010 检索所有约会并将其放入时间表管理应用程序中。检索约会的代码如下(它使用 Exchange Web 服务):

var mailbox = service.ResolveName("smtp:" + emailAddress).FirstOrDefault(o => o.Mailbox.MailboxType == MailboxType.Mailbox);
var folderId = new FolderId(WellKnownFolderName.Calendar, mailbox.Mailbox.Address);
var res = service.FindAppointments(folderId, new CalendarView(thisDay, nextDay.AddSeconds(-1)));

GenericAll如果我在 EMS 中使用此行授予服务帐户权限,则此方法可以正常工作:

Get-MailboxDatabase | Add-ADPermission -user "DOMAIN\User" -InheritanceType All -AccessRights GenericAll

但是,GenericAll这给了帐户太多的权力,我想将这些权力减少到只与阅读相关的权限。我尝试了可用权限的不同排列,但似乎没有任何效果(我在测试之间重新启动了 IIS,以确保权限没有被缓存)。例如,这行不是工作:

Get-MailboxDatabase | Add-ADPermission -user "DOMAIN\User" -InheritanceType All -AccessRights GenericRead,ListChildren,ListObject

我在网上看到过一些脚本,它们只授予读取日历的权限,但不幸的是,这些脚本似乎都枚举了现有的邮箱。我需要的是一个只运行一次并适用于将来创建的所有邮箱的解决方案。

相关内容