0

使用托管EWS 2.0,我试图编写一些代码以在Exchange 2010上创建,删除和启用公用文件夹的邮件启用功能。但是,根据Exchange MVP Glen Scales,启用邮件启用文件夹只能使用PowerShell cmdlet,它可以从我的C#代码中调用。到现在为止还挺好。将文件夹ID从EWS转换为Exchange Cmdlet的标识

但是,在我的EWS Folder对象(具有FolderId)和PowerShell的Enable-MailPublicFolder cmdlet(需要GUID或Folder Path作为标识参数)之间进行映射时,我有点困惑。我不知道如何在两者之间进行映射。

EWS有ConvertIDs方法,但似乎能够生成各种格式(EwsId,ENTRYID,OwaId),这似乎不相关的PowerShell的。

除了手动生成从我的指定文件夹,这是容易的,但因为我有一个明确的标识文件夹的感觉笨重的文件夹路径,有没有办法到我的文件夹ID转换成外汇的cmdlet使用的格式?

回答

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;