You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Add-MailboxFolderPermission共享日历遇ObjectNotFoundException求助

问题分析与解决方案

是不是微软侧的Bug?

是的,这属于Exchange Online/Outlook的已知异常场景,本质是日历对象的元数据或索引出现损坏/不一致。重命名日历的操作会触发Exchange后台对该日历对象的元数据刷新与索引重建,从而修复了导致共享失败的底层问题——哪怕改回原名,修复后的元数据已经正常,所以后续共享操作能顺利执行。

PowerShell脚本中的解决方法

可以在脚本中自动执行「临时重命名→改回原名」的修复流程,再执行共享操作,具体步骤如下:

1. 确认日历的正确标识

先通过以下命令确认目标日历的准确Identity(避免名称拼写/隐藏字符导致的解析错误):

Get-MailboxFolderStatistics -Identity "目标邮箱地址" | Where-Object {$_.FolderType -eq "Calendar"} | Select-Object Name, FolderId, Identity

输出结果中,Identity字段的格式通常为邮箱地址:\日历名称,这是后续命令需要使用的标准标识。

2. 自动修复并添加权限

将以下脚本中的变量替换为实际值,执行即可自动修复异常日历并完成共享:

# 配置参数
$targetMailbox = "user@contoso.com"
$problemCalendar = "异常日历名称"
$tempCalendarName = "$problemCalendar-Temp"
$sharedUser = "shareduser@contoso.com"
$accessLevel = "Reviewer"

# 临时重命名日历,触发元数据刷新
Set-MailboxFolder -Identity "$targetMailbox`:$problemCalendar" -Name $tempCalendarName

# 改回原日历名称
Set-MailboxFolder -Identity "$targetMailbox`:$tempCalendarName" -Name $problemCalendar

# 执行共享操作
Add-MailboxFolderPermission -Identity "$targetMailbox`:$problemCalendar" -User $sharedUser -AccessRights $accessLevel -SendNotificationToUser $true

注意事项

  • 执行脚本的账号需要具备Exchange Online的「Mailbox Folder Permissions」管理权限
  • 如果同一邮箱下多个日历频繁出现该问题,建议提交微软支持工单,提供邮箱ID和日历的FolderID,请求后台修复元数据索引
  • 部分情况下,日历名称包含特殊字符(如全角空格、非ASCII符号)也会触发该异常,重命名时可顺便清理这类字符

内容的提问来源于stack exchange,提问作者Jakob

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 12:42:41