Powershell Outlook Interop Folder.CopyTo方法-合并收件箱

Powershell Outlook Interop Folder.CopyTo方法-合并收件箱,powershell,outlook,com-interop,comobject,Powershell,Outlook,Com Interop,Comobject,我正在尝试将邮件从一个邮箱复制到另一个邮箱,但当我使用Folder.copy方法将一个邮箱的收件箱文件夹复制到另一个邮箱时,不是合并数据,而是创建名为Inbox1的文件夹 这是我的密码: $outlook = New-Object -ComObject outlook.application $namespace = $Outlook.GetNameSpace("mapi") $namespace.Logon("Outlook") $LocalStore = $Namespace.Store

我正在尝试将邮件从一个邮箱复制到另一个邮箱,但当我使用Folder.copy方法将一个邮箱的收件箱文件夹复制到另一个邮箱时,不是合并数据,而是创建名为Inbox1的文件夹

这是我的密码:

$outlook = New-Object -ComObject outlook.application
$namespace  = $Outlook.GetNameSpace("mapi")
$namespace.Logon("Outlook")

$LocalStore = $Namespace.Stores[3]
$RemoteStore = $Namespace.Stores[1]

$LocalFolders = $LocalStore.GetRootFolder().folders
$RemoteFolders = $RemoteStore.GetRootFolder().folders

$RemoteInbox = $RemoteFolders | ? {$_.Name -eq "Inbox"}
$LocalInbox = $LocalFolders | ? {$_.Name -eq "Inbox"}

$RemoteInbox.CopyTo($LocalInbox.Parent)
要解决此问题,我可以使用项目副本:

Foreach ($Item in $RemoteInbox.Items)
{
$Copy = $Item.Copy()
[void]$Copy.Move($TargetFolder)
}
但速度要慢得多,如果我有子文件夹,它需要特别注意额外的代码

搜索未找到解决方案的web
非常感谢您的帮助

这是意料之中的-如果已有同名文件夹,MAPI将返回MAPI\u E\u冲突-请参阅

Outlook检测到该错误并创建具有唯一名称的文件夹


可以使用批处理复制项目,但扩展的MAPI需要C++或Delphi。如果使用是一个选项,则可以使用其方法。可以使用RDOItems从源文件夹创建条目ID数组。并将其传递给RDOItems.CopyMultiple。

这是意料之中的-如果已有同名文件夹,MAPI将返回MAPI\u E\u冲突-请参阅

Outlook检测到该错误并创建具有唯一名称的文件夹


可以使用批处理复制项目,但扩展的MAPI需要C++或Delphi。如果使用是一个选项,则可以使用其方法。可以使用RDOItems从源文件夹创建条目ID数组。并将其传递给RDOItems.CopyMultiple。

您的意思是如何将其转换为使用赎回的脚本?EWS和MAPI是两种不同的API,您不能通过另一种API进行工作。其中一种方法,因为我不熟悉MAPI,您的意思是如何将其转换为使用REPENDE的脚本?EWS和MAPI是两种不同的API,您无法通过另一种API进行工作。其中一种方法,因为我不熟悉MAPI