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