【问题标题】:Delete the meeting from User calendar从用户日历中删除会议
【发布时间】:2014-11-06 13:19:35
【问题描述】:
我们使用的是 Exchange Server 2010。我可以使用 search-mailbox cmdlet 从用户邮箱中删除会议,如下所述
search-mailbox -searchquery "kind:meetings from:$recipient" -targetmailbox $mailid -targetfolder "REPORT" -deletecontent -force
我的问题是从组织者邮箱中删除会议后如何向与会者发送取消邮件?
问候,
桑卡尔 M
【问题讨论】:
标签:
powershell
outlook
exchange-server
exchangewebservices
【解决方案1】:
你不能。搜索邮箱是一个服务器端/管理功能。取消会议是客户端/用户功能。如果要发送取消通知,则需要使用 EWS 进行普通用户会议取消。
【解决方案2】:
这是一个示例,如何使用 Outlook 作为 com 对象从今天开始取消会议。
$outlookApplication = New-Object -ComObject 'Outlook.Application'
$namespace = $outlookApplication.GetNamespace("MAPI")
print("Define Start/End time for filtering existing meetings..")
$Start = (Get-Date).AddDays(-1).ToShortDateString() + " 11:59 PM"
$End = (Get-Date).AddDays(+1).ToShortDateString() + " 12:01 AM"
print("Start time: " + $Start)
print("End time: " + $End)
print("Create meeting filter..")
$Filter = "[MessageClass]='IPM.Appointment' AND [Start] > '$Start' AND [End] < '$End'
AND [IsRecurring] = '$False'"
print("Extract all meetings...")
$olFolderCalendar = 9
$Appointments = $namespace.GetDefaultFolder($olFolderCalendar).Items
$Appointments.Sort("[Start]")
$Appointments.IncludeRecurrences = $false
print("Process all meeting from today..")
foreach ($Appointment in $Appointments.Restrict($Filter) ) {
print("Process meeeting.. Subject: " + $Appointment.Subject)
print("Required resources: " + $Appointment.Resources)
print("Meeting start time: " + $Appointment.Start)
print("Meeting end time: " + $Appointment.End)
print("Cancell meeting..")
$Appointment.meetingstatus = 5
# olMeeting 1 The meeting has been scheduled.
# olMeetingCanceled 5 The scheduled meeting has been cancelled.
# olMeetingReceived 3 The meeting request has been received.
# olMeetingReceivedAndCanceled 7 The scheduled meeting has been cancelled but
still appears on the user's calendar.
# olNonMeeting 0 An Appointment item without attendees has been scheduled. This
status can be used to set up holidays on a calendar.
$Appointment.Send()
print("Delete meeting..")
$Appointment.Delete()
}