0

使用托管 EWS 2.0,我正在尝试编写一些代码来创建、删除和启用 Exchange 2010 上的公用文件夹。但是,根据Exchange MVP Glen Scales的说法,只有使用 PowerShell cmdlet 才能为文件夹启用邮件,它可以从我的 C# 代码中调用。到目前为止,一切都很好。

但是,在我的 EWS 文件夹对象(具有 FolderId)和 PowerShell 的 Enable-MailPublicFolder cmdlet(它需要 GUID 或文件夹路径作为标识参数)之间进行映射时,我有点困惑。我不确定如何在两者之间进行映射。

EWS 有一个 ConvertIDs 方法,但它似乎能够生成似乎与 PowerShell 无关的各种格式(EwsId、EntryId、OwaId)。

除了从我的给定文件夹手动生成文件夹路径(这很容易但鉴于我有一个明确的文件夹标识符而感觉很笨拙)之外,有没有办法将我的文件夹 ID 转换为 Exchange Cmdlet 可用的格式?

4

1 回答 1

0

好的,在Glen Scales的帮助下,我完成了这项工作。似乎 PowerShell 的PublicFolderIdParameter类型(Identity参数的类型)接受表示 EntryID 的十六进制字符序列。因此,要将 EWS ID 转换为 PowerShell 接受的 ID,我们可以使用以下代码:

Folder myFolder = Folder.Bind("whatever");
var ewsId = new AlternatePublicFolderId(IdFormat.EwsId, myFolder.Id.UniqueId);
var hexId = _service.ConvertId(ewsId, IdFormat.HexEntryId) as AlternatePublicFolderId;
string idForPowerShell = hexId.FolderId;
于 2013-10-16T07:06:55.020 回答