0

관리되는 EWS 2.0을 사용하여 Exchange 2010에서 공용 폴더를 만들고 삭제하고 메일을 사용하도록 설정하는 코드를 작성하려고합니다. 그러나 Exchange MVP Glen Scales에 따르면 폴더에서 메일 사용 가능 내 C# 코드에서 호출 할 수있는 PowerShell cmdlet을 사용해야 만 가능합니다. 여태까지는 그런대로 잘됐다.EWS에서 Exchange Cmdlet의 ID로 변환

그러나 EWS Folder 개체 (FolderId가 있음)와 PowerShell의 Enable-MailPublicFolder cmdlet (GUID 또는 폴더 경로가 ID 매개 변수로 필요함) 사이를 매핑 할 때 약간 혼란 스럽습니다. 둘 사이의 매핑 방법을 잘 모르겠습니다.

EWS에는 ConvertIDs 메서드가 있지만 PowerShell과 관련이없는 다양한 형식 (EwsId, EntryId, OwaId)을 생성 할 수있는 것 같습니다.

주어진 폴더에서 폴더 경로를 수동으로 생성하는 것 외에도 폴더에 대한 명시적인 식별자가있어 쉽지만 다소 부담 스럽지만 폴더 ID를 Exchange Cmdlet에서 사용할 수있는 형식으로 변환하는 방법이 있습니까? ?

답변

0

좋아, Glen Scales 덕분에 나는이 일을 얻었다. PowerShell의 PublicFolderIdParameter 형식 (Identity 매개 변수 형식)은 EntryID를 나타내는 16 진수 시퀀스를 허용하는 것으로 보입니다. 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; 
관련 문제