我正在开发我的第一个 Orchard CMS 模块,该模块将与 Exchange Server 交互,以便将 Exchange 任务功能添加到 Orchard(基本上提供个人任务的 Web 管理)。不幸的是,我认为 Office 365 不支持所需的身份验证类型。此Microsoft 文档概述了有关设置具有模拟权限的服务帐户以使用 Exchange Web 服务的一些说明。
不幸的是,我需要能够运行“New-ManagementRoleAssignment”cmdlet,以便分配模拟权限。尝试此 cmdlet 时收到的错误是:
The term 'New-ManagementRoleAssignment' is not recognized as the name of a cmdlet, function, script file, or operable program.
按照之前的 URL 中的说明,我已经正确连接。我正在阅读的所有内容都表明该命令应该可用。我错过了什么吗?我正在使用 Office 365 的企业版,以防万一。我用来登录 PowerShell 的帐户是我的全局管理员帐户。
任何帮助和/或见解将不胜感激!我也有微软的支持,所以我会发布我从他们那里得到的任何东西。
维托
[编辑] 我决定为那些拥有 Exchange Server 并有兴趣尝试的人添加一些代码。您必须下载 Exchange Web Services dll,才能使用命名空间 Microsoft.Exchange.WebServices。
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();
}