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

批量将所有资源会议室日历同步至所有Office 365用户Outlook的方法咨询

批量将所有资源会议室日历同步至所有Office 365用户Outlook的方法咨询

嗨,太懂你这种手动操作的痛苦了——200多个用户一个个加会议室日历,简直是重复劳动天花板!既然权限已经配置好了,咱们直接用PowerShell批量搞定日历挂载的事儿就行,不用再耗时间手动操作啦。

下面是亲测有效的操作步骤和脚本:

  1. 先连接Exchange Online PowerShell
    打开PowerShell(推荐用Windows PowerShell 5.1或PowerShell 7),执行命令登录管理员账号:

    Connect-ExchangeOnline
    

    弹出登录窗口后,输入你的Office 365管理员账号密码完成授权。

  2. 获取目标会议室和用户列表
    先把所有需要挂载的会议室邮箱,以及要添加日历的用户邮箱都提取出来:

    # 获取所有资源会议室邮箱
    $roomCalendars = Get-Mailbox -RecipientTypeDetails RoomMailbox
    
    # 获取所有普通用户邮箱(如果要过滤特定用户,可在这里加条件,比如按部门筛选)
    $allUsers = Get-Mailbox -RecipientTypeDetails UserMailbox
    
  3. 批量为用户订阅会议室日历
    核心用New-MailboxFolderSubscription命令,这个命令会让用户自动订阅指定日历,打开Outlook后就能直接看到,不用手动添加「来自会议室列表」的日历。完整循环脚本如下:

    # 遍历每个用户,为其订阅所有会议室日历
    foreach ($user in $allUsers) {
        Write-Host "正在处理用户: $($user.DisplayName) ($($user.PrimarySmtpAddress))"
        foreach ($room in $roomCalendars) {
            try {
                # 订阅会议室的日历文件夹
                New-MailboxFolderSubscription -Mailbox $room.PrimarySmtpAddress -Folder "\Calendar" -Subscriber $user.PrimarySmtpAddress -ErrorAction Stop
                Write-Host "✅ 成功添加会议室: $($room.DisplayName) 到用户 $($user.DisplayName)"
            }
            catch {
                # 处理已订阅或其他异常情况
                Write-Warning "⚠️ 用户 $($user.DisplayName) 操作会议室 $($room.DisplayName) 时出错: $_"
            }
        }
    }
    
    Write-Host "🎉 所有批量订阅操作完成!"
    

额外提示:

  • 执行脚本需要Exchange Online管理员权限,确保你的账号权限足够。
  • 用户量较大时,脚本运行可能需要几分钟,别中途中断。
  • 如果要排除特定用户/会议室,可在获取列表时加过滤条件,比如排除某个用户:
    $allUsers = Get-Mailbox -RecipientTypeDetails UserMailbox | Where-Object {$_.PrimarySmtpAddress -ne "不需要的用户@你的域名.com"}
    
  • 用户打开Outlook后,可能需要等待几分钟同步,会议室日历才会显示在「其他日历」或「共享日历」分组里。

备注:内容来源于stack exchange,提问作者user23458504

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.20 08:05:34