尝试从RecoverableItemsSubstrateHolds获取IPM.SkypeTeams.Message遇EWS权限错误求助
使用Exchange Web Service(EWS)时,通过FindItem请求可成功从RecoverableItemsSubstrateHolds文件夹获取到IPM.SkypeTeams.Message类型的条目信息,但调用GetItem请求时收到「Not allowed to access Non IPM item」的ErrorAccessDenied错误,咨询是否有方法从该保留文件夹中获取此类项目。
请求与响应示例
FindItem 请求
<m:FindItem Traversal="Shallow"> <m:ItemShape> <t:BaseShape>IdOnly</t:BaseShape> <t:AdditionalProperties /> <t:FieldURI FieldURI="item:ItemClass" /> <t:FieldURI FieldURI="item:LastModifiedTime" /> <t:FieldURI FieldURI="item:Size" /> </t:AdditionalProperties> </m:ItemShape> <m:IndexedPageItemView MaxEntriesReturned="1000" Offset="0" BasePoint="Beginning" /> <m:ParentFolderIds> <t:DistinguishedFolderId Id="recoverableitemssubstrateholds" /> </m:ParentFolderIds> </m:FindItem>
FindItem 响应
<t:Message> <t:ItemId Id="AA...+CrAAA=" /> <t:ItemClass>IPM.SkypeTeams.Message</t:ItemClass> <t:Size>30922</t:Size> <t:LastModifiedTime>2024-04-24T04:12:17Z</t:LastModifiedTime> </t:Message>
GetItem 请求
<m:GetItem> <m:ItemShape> <t:BaseShape>IdOnly</t:BaseShape> </m:ItemShape> <m:ItemIds> <t:ItemId Id="AA...+CrAAA=" /> </m:ItemIds> </m:GetItem>
GetItem 响应
<m:GetItemResponse> <m:ResponseMessages> <m:GetItemResponseMessage ResponseClass="Error"> <m:MessageText>Not allowed to access Non IPM item.</m:MessageText> <m:ResponseCode>ErrorAccessDenied</m:ResponseCode> <m:DescriptiveLinkKey>0</m:DescriptiveLinkKey> <m:Items /> </m:GetItemResponseMessage> </m:ResponseMessages> </m:GetItemResponse>
针对这个权限拦截问题,可尝试以下几种方案:
扩展FindItem的附加属性范围:既然FindItem已经能返回部分基础字段,若你的需求仅需这些信息,可直接使用该请求的结果。如果需要更多字段,可在FindItem的
AdditionalProperties节点中添加所需的字段URI,只要这些字段允许通过FindItem获取,就能绕过GetItem的权限限制直接拿到数据。验证账号合规权限:确认当前EWS账号是否被分配了
Discovery Management等与诉讼保留、内容搜索相关的角色组。部分非IPM项目的GetItem访问需要特定合规权限,即使FindItem能列出条目,也会因权限不足拦截GetItem请求。切换到Microsoft Graph API:EWS对Skype Teams保留项目的支持有限,而Microsoft Graph的合规性接口(如电子取证相关端点)或
messages端点对这类协作内容的访问支持更完善,能适配现代保留策略的权限控制逻辑。检查Exchange环境配置:确保使用的是Exchange 2019或Office 365等较新版本,旧版本对Teams集成的保留项目支持不足。同时确认组织的邮箱保留策略是否允许通过EWS访问此类非IPM项目。
内容的提问来源于stack exchange,提问作者Aleksey

