gpt4 book ai didi

powershell - 单个 session 中多个邮箱的Powershell EWS SubscribetoPullNotifications

转载 作者:行者123 更新时间:2023-12-03 00:19:37 25 4
gpt4 key购买 nike

此Powershell脚本的目标是监视Exchange Online(Office 365)中所有邮箱的特定文件夹,如果创建了一个项目,它将将该项目作为电子邮件发送到另一个smtp地址。我可以使用模拟功能仅用一个邮箱就可以实现这一目标,而不会出现任何错误。

但是,我试图为每个邮箱创建一个Folderid数组的列表,例如:

foreach ($usermailbox in $mboxlist) {
$farray += Get-TargetF($usermailbox)
}

$ farray包含以下类型的对象:
Microsoft.Exchange.WebServices.Data.FolderId($tfTargetFolder.Id)

然后,我在以下位置查找事件:
$service.SubscribeToPullNotifications($farray,60,$null,[Microsoft.Exchange.WebServices.Data.EventType]::Created)

请注意,Get-TargetF函数通过自动发现为每个邮箱获取服务器名称。
它还使用 $service.FindFolders查找正确的文件夹。

像我上面显示的那样运行脚本会导致少数邮箱但不是全部邮箱出现错误(我已经筛选出5个邮箱进行测试)。
New-Object : Constructor not found. Cannot find an appropriate constructor for type Microsoft.Exchange.WebServices.Data.FolderId.
At C:\Documents\mysc.ps1:63 char:22
+ $InboxId = new-object <<<< Microsoft.Exchange.WebServices.Data.FolderId($tfTargetFolder.Id)
+ CategoryInfo : ObjectNotFound: (:) [New-Object], PSArgumentException
+ FullyQualifiedErrorId : CannotFindAppropriateCtor,Microsoft.PowerShell.Commands.NewObjectCommand

当我开始收听事件时,出现以下错误:
Cannot find an overload for "SubscribeToPullNotifications" and the argument count: "4".
At C:\Documents\mysc.ps1:79 char:59
+ $pullSubscription = $service.SubscribeToPullNotifications <<<< ($farray,60,$null,[Microsoft.Exchange.WebServices.Data.EventType]::Created)
+ CategoryInfo : NotSpecified: (:) [], MethodException
+ FullyQualifiedErrorId : MethodCountCouldNotFindBest

我还没有弄清楚如何使用 here在Exchange Online上处理EWS的限制问题。我怀疑上述订阅默认情况下会在一小时后超时。

在单个pssession中实现此目标的正确方法是什么?

最佳答案

我认为这里唯一的选择是为每个邮箱创建单独的订阅,然后一个接一个地遍历它们,以调用GetEvents来查看是否有任何新的Create事件。

据我了解,由于模拟更多的是与其他用户进行通话,因此无法从不同的邮箱指定文件夹ID。如果该其他用户不具有对请求中提到的文件夹ID的委派特权,则它肯定会失败。可能是您应该先尝试使用控制台应用程序而不是Powershell来快速了解真正的功能。那是为了避免任何PS特定的错误妨碍对实际问题的研究。

使用“流订阅”方法,您可以根据邮箱的服务器亲缘关系对邮箱进行分组,如MSDN上的here所述。在做出决定之前,您应该先看一下Pull与Streaming之间的权衡。

关于powershell - 单个 session 中多个邮箱的Powershell EWS SubscribetoPullNotifications,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17222308/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com