What i have noticed is when trying to migrate i have an error message that say i don't have cross-tenant migration license and i can't find it anywhere to purchase it any tips?
Please, maybe you can help me. I have 1 case where the user deleted the email and then deleted items from the folder and also from the recovery using Outlook (he did this on a whim), when I go to the console using the path you explained, I can't find the e-mail. -mail. I created this scenario using my account and this actually happens, if the user deliberately deletes the email, deletes it from the trash and also from Recovery Items, I cannot recover it via the Exchange Admin console, do you know any way I can recover and/or inhibit it? Can the user delete Recovery Items from Outlook?
Tunde, Hi you are a life saver 😀 . It seems that when I enabled Legacy Hold, it messed up our Encrypted Email Solution deleting the emails. I had to disable Legacy Hold, then the Recover Deleted Items was then Greyed Out on all users. Your instructions above worked a dream I can now recover deleted emails 😁👍
You mean after you've completed migration ? There shouldn't be any impact as long as you've licensed the account with mailbox license like E1, E3,F3 or E5
You can't go back one year in O365. Microsoft only keeps deleted emails for 30-60days . Anything more than that will require a third part backup option or if the user is on retention or litigation hold
Thanks for the video. One question, the Microsoft documentation says you need the Cross Tenant Migration addon, so is it that you can do this without the addon?
Microsoft still hasn't properly clarified this statement. All they say is you need to assign the license and it is only available for customers with Enterprise Agreement in place. It seems they are still working on this because it is still not listed in the add-on page even for enterprise customers. I did this migration just last week for about 130 users and only assigned E3 license to the users and it worked just fine. So, I would contact Microsoft directly for more clarification on this. It's quite appalling that Microsoft is trying to charge for this though even though regular onprem to O365 which uses the same MRS engine is being used for cross-tenant migration and you only need standard O365 licenses for those.
@@TundeT Thanks Tunde, it had me really confused. and yes, it really is appalling, especially at the proposed price which is almost the same as established 3rd party tools.
Found Error as below WARNING: An unexpected error has occurred and a Watson dump is being generated: ASSERT: The resource tenant and the accessing tenant can not be equal. ASSERT: The resource tenant and the accessing tenant cannot be equal.
$sourceTenantId="[tenant id of your trusted partner, where the source mailboxes are]" $orgrels=Get-OrganizationRelationship $existingOrgRel = $orgrels | ?{$_.DomainNames -like $sourceTenantId} If ($null -ne $existingOrgRel) { Set-OrganizationRelationship $existingOrgRel.Name -Enabled:$true -MailboxMoveEnabled:$true -MailboxMoveCapability Inbound } If ($null -eq $existingOrgRel) { New-OrganizationRelationship "[name of the new organization relationship]" -Enabled:$true -MailboxMoveEnabled:$true -MailboxMoveCapability Inbound -DomainNames $sourceTenantId }
It should run based on the date and time you specified in the first step. It should at least run even if it fails for other reasons. So, you want to double check the date and time you picked
Thank you very much for the easy to follow. Greatly appreciated your time doing this. Just a suggestion, hoping if possible to use a mic or speak a bit louder as I couldn't hear properly. Thank you so much
Thanks for the suggestion. Sometimes my videos are made and edited in less than 30min as I barely have the time to do them properly 😀. But my newer vIdeos quality are better
Great Also, check out this guide to perform Office 365 Cross-Tenant Migration Manually for free. ru-vid.com/video/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE-x0etGrlWjzE.html
learn.microsoft.com/en-us/microsoft-365/enterprise/cross-tenant-mailbox-migration That’s the official Microsoft document if you want to read it. The primary advantage of this is that it is more secure than some third party because it is end-to-end . Data is not being staged at some other external servers during the move. Also, it is free…that alone is enough for most companies to go with it. Although 3rd party tools offer more flexibility and features such as filters, email domain rewrite , etc.
I believe one batch can take up to 2000 mailboxes . However, it is recommended to break them up for performance reasons. Usually to around 150 to 200 mailboxes per batch. This also gives you flexibility to schedule mailboxes in different days and time in order to properly support the migrations
@@TundeT # Connect -AzureAD Get the list of subscribed SKUs $skus = Get-AzureADSubscribedSku # Initialize a string to store the HTML output $htmlOutput = "<style>table {border-collapse: collapse;} td, th {border: 1px solid black; padding: 5px;}</style>" $htmlOutput += "<table><tr><th>SKU</th><th>Available</th><th>Assigned</th><th>Unused</th></tr>" # Iterate through the SKUs and get the license counts foreach ($sku in $skus) { # Get the count of available licenses $available = $sku.CapabilityStatus.Where({$_.Name -eq 'ActiveUnits'}).Value # Get the count of assigned licenses $assigned = $sku.CapabilityStatus.Where({$_.Name -eq 'ConsumedUnits'}).Value # Calculate the count of unused licenses $unused = $available - $assigned # Add the license counts to the HTML output $htmlOutput += "<tr><td>$($sku.SkuId)</td><td>$available</td><td>$assigned</td><td>$unused</td></tr>" } $htmlOutput += "</table>" # Save the HTML output to a file $htmlOutput | Out-File -FilePath "c:\output\Office365LicenseCounts.html"
Based on your pasted script, I modified a bit and now it displays the results #Connect -AzureAD #Get the list of subscribed SKUs $skus = Get-AzureADSubscribedSku # Initialize a string to store the HTML output $htmlOutput = "<style>table {border-collapse: collapse;} td, th {border: 1px solid black; padding: 5px;}</style>" $htmlOutput += "<table><tr><th>SKU</th><th>Available</th><th>Assigned</th><th>Unused</th></tr>" # Iterate through the SKUs and get the license counts foreach ($sku in $skus) { # Get the count of available licenses $available = $sku.PrepaidUnits.Enabled # Get the count of assigned licenses $assigned = $sku.ConsumedUnits # Calculate the count of unused licenses $unused = $available - $assigned # Add the license counts to the HTML output $htmlOutput += "<tr><td>$($sku.SkuPartNumber)</td><td>$available</td><td>$assigned</td><td>$unused</td></tr>" } $htmlOutput += "</table>" # Save the HTML output to a file $htmlOutput | Out-File -FilePath "c:\temp\Office365LicenseCounts.html" Invoke-item "c:\temp\Office365LicenseCounts.html"