2015-09-04 71 views
0

我想編寫一些代碼來查詢Exchange Server以查找一組用戶的日曆項。這可能嗎?如何使用Exchange Web Services爲其他用戶查找日曆項目

我是使用EWS的新手。我發現很難找到任何好的概述文檔來指導我如何使用它。

無論如何,我想代碼是迄今爲止這樣的:

    DateTime startDate = new DateTime(2015, 8, 1); 
        DateTime endDate = new DateTime(2015, 11, 1); 
        CalendarView calView = new CalendarView(startDate, endDate); 

        Mailbox mb = new Mailbox(@"[email protected]"); 

        FolderId fid = new FolderId(WellKnownFolderName.Calendar, mb); 

        FindItemsResults<Item> instanceResults = service.FindItems(fid, calView); 

最後一行拋出一個ServiceResponseException:「指定的文件夾不能在商店中找到」

上述方法是否接近正確?無論如何,也許有完全不同的更好的方法來做到這一點?

請注意,我上面的服務對象是一個ExchangeService對象,我使用[email protected]的憑據進行設置。我希望管理員用戶有權查看其他用戶的日曆,但也許這也必須在Exchange的某個地方進行設置?

回答

1

你的代碼沒問題。您收到的錯誤可能與目標郵箱的訪問權限有關。默認情況下,管理員不能訪問其他用戶郵箱。

爲了使用戶能夠訪問其他用戶的郵箱,您可以使用PowerShell或Exchange管理控制檯:

通過PowerShell的:

打開Exchange命令行管理程序並運行以下命令:

Add-MailboxPermission -Identity「User1」-User「User2」-AccessRights FullAccess -InheritanceType全部

這將使User2訪問User1的郵箱。

查看this瞭解更多詳情。

通過Exchange管理控制檯:

打開Exchange管理控制檯中,轉到收件人配置 - >信箱,然後選擇目標用戶。用鼠標右鍵單擊該用戶,然後單擊管理完全訪問權限。

從那裏,添加您想要訪問郵箱的用戶,然後單擊「管理」。

請注意這是基於Exchange 2010.在不同的交換版本上,這可能會有所不同。我猜想powershell命令會是一樣的,但基於GUI的配置可能會有所不同。

+0

非常感謝。那差不多。使用Exchange 2013,我打開了Exchange管理中心;收件人;郵箱;點擊列表中的一個用戶;編輯;選擇郵箱代表團;向下滾動到「完全訪問」;將原始用戶添加爲此目標用戶的delagate。這就是說,我不認爲增加所有用戶的代表是我需要的。看來,我應該使用Exchange模擬instead.I'll有將審查所有用戶的郵箱再次得到一些日曆information.Thanks的幫助服務帳戶。 – kev

相關問題