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

使用PowerShell+EWS Managed API创建Exchange重复会议遇阻求助

PowerShell结合EWS Managed API创建重复会议解决方案

错误原因说明

  1. Microsoft.Exchange.WebServices.Data.Recurrence是抽象基类,无法直接通过New-Object实例化,必须使用其具体子类(如WeeklyPattern、RelativeMonthlyPattern等)。
  2. 调用WeeklyPattern构造函数时,需传入完整参数(开始日期、重复周几、间隔周数),参数缺失会导致匹配失败。

前置准备

确保已正确加载EWS Managed API DLL并初始化Exchange服务:

# 加载EWS DLL
Add-Type -Path "C:\路径\到\Microsoft.Exchange.WebServices.dll"

# 初始化Exchange服务
$exchangeService = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService([Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2016)
$exchangeService.Credentials = New-Object Microsoft.Exchange.WebServices.Data.WebCredentials("邮箱账号", "密码")
$exchangeService.Url = New-Object Uri("https://outlook.office365.com/EWS/Exchange.asmx") # 根据Exchange环境调整URL

各类型重复会议代码示例

每周重复会议

# 创建基础预约对象
$weeklyAppt = New-Object Microsoft.Exchange.WebServices.Data.Appointment($exchangeService)
$weeklyAppt.Subject = "每周团队例会"
$weeklyAppt.Body = "每周三下午14点的同步会议"
$weeklyAppt.Start = [DateTime]"2024-05-22 14:00:00"
$weeklyAppt.End = $weeklyAppt.Start.AddHours(1)
$weeklyAppt.Location = "一号会议室"

# 设置每周重复规则:每周三、每1周重复一次,持续到2024年底
$weeklyRecurrence = New-Object Microsoft.Exchange.WebServices.Data.Recurrence.WeeklyPattern(
    $weeklyAppt.Start.Date,
    [Microsoft.Exchange.WebServices.Data.DayOfTheWeek]::Wednesday,
    1
)
$weeklyRecurrence.EndDate = [DateTime]"2024-12-31"
$weeklyAppt.Recurrence = $weeklyRecurrence

# 保存并发送邀请
$weeklyAppt.Save([Microsoft.Exchange.WebServices.Data.SendInvitationsMode]::SendToAllAndSaveCopy)

每月重复会议(每月第2个周二)

$monthlyAppt = New-Object Microsoft.Exchange.WebServices.Data.Appointment($exchangeService)
$monthlyAppt.Subject = "月度工作汇报"
$monthlyAppt.Body = "每月第二个周二的进度汇报"
$monthlyAppt.Start = [DateTime]"2024-05-14 10:00:00"
$monthlyAppt.End = $monthlyAppt.Start.AddHours(2)
$monthlyAppt.Location = "二号会议室"

# 设置每月重复规则:每月第2个周二、每1个月重复一次,共10次
$monthlyRecurrence = New-Object Microsoft.Exchange.WebServices.Data.Recurrence.RelativeMonthlyPattern(
    $monthlyAppt.Start.Date,
    2,
    [Microsoft.Exchange.WebServices.Data.DayOfTheWeek]::Tuesday,
    1
)
$monthlyRecurrence.NumberOfOccurrences = 10
$monthlyAppt.Recurrence = $monthlyRecurrence

$monthlyAppt.Save([Microsoft.Exchange.WebServices.Data.SendInvitationsMode]::SendToAllAndSaveCopy)

每年重复会议(每年5月20日)

$yearlyAppt = New-Object Microsoft.Exchange.WebServices.Data.Appointment($exchangeService)
$yearlyAppt.Subject = "年度客户答谢会"
$yearlyAppt.Body = "每年5月20日的客户答谢活动"
$yearlyAppt.Start = [DateTime]"2024-05-20 15:00:00"
$yearlyAppt.End = $yearlyAppt.Start.AddHours(3)
$yearlyAppt.Location = "宴会厅"

# 设置每年重复规则:每年5月20日、每1年重复一次,永久生效
$yearlyRecurrence = New-Object Microsoft.Exchange.WebServices.Data.Recurrence.AbsoluteYearlyPattern(
    $yearlyAppt.Start.Date,
    5,
    20
)
$yearlyRecurrence.NeverEnds = $true
$yearlyAppt.Recurrence = $yearlyRecurrence

$yearlyAppt.Save([Microsoft.Exchange.WebServices.Data.SendInvitationsMode]::SendToAllAndSaveCopy)

内容的提问来源于stack exchange,提问作者siddique ur rehman

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 16:05:19