1

我正在开发我的第一个 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();
}
4

1 回答 1

1

AFAIK,该 cmdletNew-ManagementRoleAssignment不适用于 Office 365 上的小型企业计划 (P1)。但是,默认情况下会为管理员分配模拟权限,因此您必须使用管理员凭据进行连接。

于 2011-07-11T16:10:16.983 回答