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

如何通过Microsoft API(含Graph API)无基础认证为他人设置OOO消息

可以用Microsoft Graph API替代基础认证设置OOO消息

完全可以用Microsoft Graph API实现无基础认证的外出消息设置,这也是微软官方推荐的替代传统基础认证的方案,下面是具体实现思路和步骤:

一、权限配置

要替他人设置OOO,需要配置对应的Graph API权限:

  • 如果是应用权限(适合后台服务、无人值守脚本):需要MailboxSettings.ReadWrite.All权限,需由全局管理员在Azure AD中为应用授予该权限。
  • 如果是委派权限(适合交互式操作):需要MailboxSettings.ReadWrite权限,同样需要管理员同意该权限,这样你就能以自己的身份替其他用户操作。

二、PowerShell实现步骤

  1. 安装Microsoft Graph PowerShell模块
Install-Module Microsoft.Graph -Force -AllowClobber
  1. 连接Graph API(无基础认证)
  • 应用权限方式(后台脚本):
Connect-MgGraph -ClientId "你的应用ID" -TenantId "你的租户ID" -ClientSecret "你的应用密钥"
  • 委派权限方式(交互式登录,适合手动操作):
Connect-MgGraph -Scopes "MailboxSettings.ReadWrite.All"

登录时会弹出浏览器窗口,用有权限的账号登录即可,全程无基础认证。

  1. 设置目标用户的OOO消息
# 设置定时OOO
Set-MgUserMailboxSetting -UserId "targetuser@contoso.com" -AutomaticRepliesSetting @{
    Status = "Scheduled"
    ScheduledStartDateTime = @{
        DateTime = "2024-05-20T09:00:00"
        TimeZone = "China Standard Time"
    }
    ScheduledEndDateTime = @{
        DateTime = "2024-05-25T18:00:00"
        TimeZone = "China Standard Time"
    }
    ExternalReplyMessage = "您好,我目前正在外出,将在5月26日恢复工作并回复您的邮件。"
    InternalReplyMessage = "同事你好,我当前不在办公室,会尽快处理你的消息。"
}

# 如果是立即启用OOO(无时间限制),把Status改成"Enabled",去掉ScheduledStart/EndDateTime参数
Set-MgUserMailboxSetting -UserId "targetuser@contoso.com" -AutomaticRepliesSetting @{
    Status = "Enabled"
    ExternalReplyMessage = "您好,我正在外出,稍后回复您。"
    InternalReplyMessage = "我现在不在,回来后马上处理。"
}

三、其他说明

  • 避免使用旧版Exchange Online PowerShell模块(依赖基础认证),微软已逐步淘汰基础认证,建议全面迁移到Graph API方案。
  • 操作前确保执行脚本的账号或应用拥有足够的权限,否则会返回权限不足的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 05:45:37