PowerShell-EWS-Scripts icon indicating copy to clipboard operation
PowerShell-EWS-Scripts copied to clipboard

Merge-MailboxFolder script | Folder hierarchy copied but not the content

Open bertrandpons opened this issue 3 years ago • 2 comments

Hello @David-Barrett-MS,

Thank you for your great scripts!

I have run the following command: .\[Merge-MailboxFolder.ps1 -SourceMailbox <SOURCE_MAILBOX> -TargetMailbox <TARGET_MAILBOX> -TargetArchive -MergeFolderList @{"Inbox"= "WellKnownFolderName.Inbox"; "Sent Items"= "WellKnownFolderName.SentItems"} -ProcessSubfolders -CreateTargetFolder -Office365 -Impersonate -OAuth -OAuthClientId <OAUTH_CLIENT_ID> -OAuthTenantId <OAUTH_TENANT_ID> -OAuthSecretKey <OAUTH_SECRET_KEY> -Copy -LogFile ./test_mailboxmerge2.log

If I check the target, I notice that the folders are created, but, although logs show that items are copied:

"2 items found; attempting to copy No results returned - assuming all items processed"

I don't see the contents in the folders.

Do you have any idea?

Thank you and best regards,

Bertrand Pons

bertrandpons avatar Oct 31 '22 14:10 bertrandpons

That message can only be shown if there was no response to the batch copy request, though I'd have expected a more useful error too. It's odd that the script would reach that point, especially for only two items.

Can you try with a batch size of 1 and see if that works? -BatchSize 1

Would also be worth enabling the trace file (-TraceFile c:\temp\trace.txt) to see what is being sent to/received from Exchange.

David-Barrett-MS avatar Oct 31 '22 15:10 David-Barrett-MS

@David-Barrett-MS I get the same result. image

I did not mention, but I want to move items from one shared mailbox to another one. I don't think there is any impact.

bertrandpons avatar Nov 01 '22 09:11 bertrandpons

@David-Barrett-MS do you have any idea on the cause of this behavior? Thank you.

bertrandpons avatar Nov 14 '22 13:11 bertrandpons

This won't work. You are using application permissions (impersonation), which means that the script impersonates the source mailbox (shared1). When it attempts to copy, it is still impersonating shared1, and the shared1 does not have permission to access shared2 (so the folder not found error is returned).

You can't copy or move items between shared mailboxes using impersonation. The source mailbox would need to be converted to a user mailbox, and then that user granted FullAccess rights to the second shared mailbox.

Alternatively, you could try using delegate flow and logging in as a user with permission to both mailboxes (I haven't tested that, but in theory I think it will work).

David-Barrett-MS avatar Nov 30 '22 16:11 David-Barrett-MS