邮箱数据库需要什么权限才能为所有邮箱调用FindAppointments?

我有一个小应用程序,从Exchange 2010中检索所有约会,并将其放入时间表pipe理应用程序中。 检索约会的代码如下(它使用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给帐户太多的权力,我想减less这些权限有关的阅读。 我已经尝试了可用的权限不同的排列,但似乎没有任何工作(我正在重新testing之间的IIS以确保权限不被caching)。 例如,这一行不起作用:

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

我已经看到在线脚本将授予只读日历的权限,但不幸的是,这些脚本似乎都列举了现有的邮箱。 我需要的是一个只运行一次的解决scheme,它可以用于将来创build的所有邮箱。