如何使用 EWS 和 Powershell 将 ICS 导入 Exchange

问题描述 投票:0回答:1

因此,我正在尝试将与与会者的约会/会议导入 Exchange,但我非常挣扎。 这里给出了一些没有与会者的约会示例,但是如果您确实需要与会者,您应该怎么做? 重要的是,我正在尝试从 ICS / MIMEContent 文件导入。

我遵循的主要指南基于此 microsoft 页面

示例代码片段:

$enc = [System.Text.Encoding]::UTF8 
$mimeBytes = $enc.GetBytes($mime)
#$mime here is the mimecontent file, loaded in as a string.

$mimeContent = New-Object Microsoft.Exchange.WebServices.Data.MimeContent 
$mimeContent.CharacterSet = "UTF8" #also tried 'UTF-8' and a few other things
$mimeContent.Content = $mimeBytes

#$ExchangeService is my service connection to EWS
#$impersonateAddress is the meeting recipient email address 
$ExchangeService.ImpersonatedUserId = New-Object Microsoft.Exchange.WebServices.Data.ImpersonatedUserId([Microsoft.Exchange.WebServices.Data.ConnectingIdType]::SmtpAddress, $impersonateAddress)

$ImpersonatedFolder = New-Object Microsoft.Exchange.WebServices.Data.FolderID([Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Calendar, $impersonateAddress)

$Appointment = New-Object Microsoft.Exchange.WebServices.Data.Appointment($ExchangeService) 
$Appointment.MimeContent = $mimeContent

$Appointment.Save($ImpersonatedFolder)
#also tried:
#$Appointment.Save([Microsoft.Exchange.Webservices.Data.SendInvitationsMode]::SendToNone)
#$Appointment.Save($ImpersonatedFolder, [Microsoft.Exchange.Webservices.Data.SendInvitationsMode]::SendToNone)

我知道很多指南都说不建议导入与与会者的约会,因为各个与会者副本之间存在关系。不过肯定有办法做到这一点!

此外,我还没有给出示例 MimeContent 文件,但这是一个标准的 ics 文件,已提前加载到该文件中 - 这就是我将其转换为字节的原因。

powershell exchangewebservices icalendar
1个回答
0
投票

您的 ics 文件来自哪个源系统?如果是交换,那么您可以在源上使用 ExportItem,在目标上使用 UploadItem,这将为您提供完全保真度的导入。

您是否正在尝试将会议导入到原来的组织者邮箱中? Exchange 使用的 EWS/存储解析器不会导入与会者,因此在 EWS 中,您唯一的选择是重新创建或重新接受会议。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.