私は最初の Orchard CMS モジュールを開発中です。このモジュールは、Exchange タスク機能を Orchard に追加する (基本的には個人タスクの Web 管理を提供する) 目的で Exchange Server と連携します。残念ながら、Office 365 は必要な認証の種類をサポートしていないと思います。このMicrosoft ドキュメントでは、Exchange Web サービスを使用するために、偽装権限を持つサービス アカウントを設定する手順について概説しています。
残念ながら、偽装権限を割り当てるには、"New-ManagementRoleAssignment" コマンドレットを実行できる必要があります。このコマンドレットを実行しようとすると、次のエラーが表示されます。
The term 'New-ManagementRoleAssignment' is not recognized as the name of a cmdlet, function, script file, or operable program.
その前の URL で指示されているように、私は間違いなく正しく接続されています。私が読んでいることはすべて、このコマンドが利用可能であることを示唆しています。何か不足していますか?問題が発生した場合に備えて、Office 365 の Enterprise バージョンを使用しています。PowerShell でのログインに使用しているアカウントは、グローバル管理者アカウントです。
どんな助けや洞察も大歓迎です! Microsoft のサポートも受けているので、Microsoft から得た情報を投稿します。
ヴィート
[編集] Exchange Server を持っていて、これを試すことに興味がある人のために、いくつかのコードを追加することにしました。名前空間 Microsoft.Exchange.WebServices を利用するには、Exchange Web サービス dll をダウンロードする必要があります。
using Microsoft.Exchange.WebServices.Data;
using Microsoft.Exchange.WebServices.Autodiscover;
private static ExchangeService _service;
private static void ConnectToExchangeService()
{
_service = new ExchangeService(ExchangeVersion.Exchange2010_SP1);
_service.TraceEnabled = true;
_service.Credentials = new System.Net.NetworkCredential("me@domain.com", "password");
AutodiscoverService ads = new AutodiscoverService();
ads.EnableScpLookup = false;
ads.RedirectionUrlValidationCallback = delegate { return true; };
GetUserSettingsResponse grResp = ads.GetUserSettings("me@domain.com", UserSettingName.ExternalEwsUrl);
Uri casURI = new Uri(grResp.Settings[UserSettingName.ExternalEwsUrl].ToString());
_service.Url = casURI;
ControllerContext ctx = new ControllerContext();
ctx.HttpContext.Response.Write("Server Info: " + _service.ServerInfo.VersionString);
ctx.HttpContext.Response.Flush();
}