Thomas Stensitzki is a leading technology consultant focusing on the Microsoft messaging and collaboration technologies and the owner of Granikos GmbH & Co. KG.
He is an MVP for Office Apps & Services since 2018.
Thomas is an MCT Regional Lead for Germany and delivers Microsoft Learning training courses for Office 365, Microsoft Teams, and Exchange Server.
He holds Master certifications as Microsoft Certified Solutions Master Messaging and as Microsoft Certified Master for Exchange Server 2010. These certifications make him a subject matter expert for any messaging topic related to Microsoft Exchange, Exchange Online, Microsoft 365, and hybrid configurations.
Follow Thomas: LinkedIn, Twitter
His sessions: https://sessionize.com/thomas-stensitzki
MVP Blog: https://blogs.msmvps.com/thomastechtalk
Personal blog: http://justcantgetenough.granikos.eu
Personal website: http://www.stensitzki.de
Thomas' Tech Talk: youtube.com/ThomasStensitzki
Contact Thomas at firstname.lastname@example.org
Office 365 supports the upload of PST files to Azure storage for a direct import to mailboxes hosted in Exchange Online. The steps are described in detail in the online documentation at Microsoft Docs.
Import CSV using an email address
But you might encounter the following error after starting the import job using the Security & Compliance dashboard.
X-Psws-Exception: Microsoft.Exchange.Configuration.Tasks.ManagementObjectAmbiguousException,The operation couldn't be performed because 'TeamMailbox-Sales@varunagroup.de' matches multiple entries.
X-Psws-Warning: When an item can't be read from the source database or it can't be written to the destination database, it will be considered corrupted. By specifying a non-zero BadItemLimit, you are requesting Exchange not copy such items to the destination mailbox. At move completion, these corrupted items will not be available at the destination mailbox.
Before you were able to start the import job the job configuration, the CSV file, and the content of the PST file were analyzed successfully. There was no hint of multiple entries for the target mailbox.
The detailed error message can be retrieved using the View log link. A clear text message is stated in the Status detail column, but you need to expand the width of the column.
The hint provided in the status detail column states that there are multiple identities for the primary email. At this point in time, I do not know, how this possible when the target account is synchronized with AAD Connect.
Use the target mailbox GUID instead of the target email address as the target address in the CSV configuration file.
Connect to Exchange Online Remote PowerShell session and query the mailbox GUID for the target mailbox(es).
# Query target mailbox GUID for a single mailbox
Get-Mailbox TeamMailbox-Sales@varunagroup.de] | FL Guid
Create a new import job referencing the same PST file already copied to the Azure storage.
Import CSV example using the mailbox GUID
The import job will now be executed as expected.
Do you need assistance with your Exchange Server platform? You have questions about your Exchange Server organization and implementing a hybrid configuration with Office 365? You are interested in what Exchange Server 2019 has to offer for your company?
Contact me at email@example.com
Follow at https://twitter.com/stensitzki
In Legacy Public Folder World with Exchange Server 2010 it was pretty easy to find the parent path of email enabled public folder:
(Get-MailPublicFolder MAILADRESS | Get-PublicFolder).ParentPath
When you try the same approach with modern public folders using Exchange Server 2013+ EMS, you receive an error.
Get-MailPublicFolder MSTeamsPF@varunagroup.de | Get-PublicFolder
Cannot process argument transformation on parameter 'Identity'. Cannot convert the "varunagroup.de/Microsoft
Exchange System Objects/MSTeamsPF" value of type "Microsoft.Exchange.Data.Directory.ADObjectId" to type
+ CategoryInfo : InvalidData: (MSTEamsPF:PSObject) [Get-PublicFolder], ParameterBindinmationException
+ FullyQualifiedErrorId : ParameterArgumentTransformationError,Get-PublicFolder
+ PSComputerName : P01.varunagroup.de
You need to use the EntryId paramater of the Get-MailPublicFolder result.
$pf = Get-MailPublicFolder MSTeamsPF@varunagroup.de
Get-PublicFolder -Identity $pf.EntryId
Name Parent Path
MSTeamsPF \Modern Collaboration
Get-PublicFolder does not take pipeline inputs.
Enjoy modern public folders :-)
When you install a Cumulative Update for Exchange Server 2016 you might receive the following informational message:
MAPI over HTTP, the preferred Outlook desktop client connectivity with Exchange server, is currently not enabled.
Consider enabling it using: Set-OrganizationConfig -MapiHttpEnabled $true
For more information, visit: http://technet.microsoft.com/library(EXCHG.150)/ms.exch.setupreadiness.WarnMapiHttpNotEnabl
This modern protocol for Outlook has been introduced to Exchange Server with Exchange Server 2013 SP1. The protocol removes the dependency to the Windows Server RPC over HTTP component. The reduced complexity enhances the reliability of the client access protocoll. It's available for quite some time now.
You can enable MAPI over HTTP on the organization level using the following Exchange cmdlet:
Set-OrganizationConfig -MapiHttpEnabled $true
You can still controll the protocol setting at the user level by deactiviting MAPI of HTTP for certain users, if required:
Set-CASMailbox -Identity [USER] -MapiHttpEnabled:$false
If your IT infrastructue is still not ready for MAPI of HTTP, your IT components pretty outdated. It's time to move forward and to modernize the infrastructure.
What are you reasons to not enable MAPI over HTTP? Let me know.
Enjoy Exchange Server 2016!
The script can be used to assign an application account (e.g. CRM, ERP) send-as permission to user mailboxes to send emails AS the user and not as the application.
This script loops through a membership list of an Active Directory security group. A single mailbox (CRM/ERP service account mailbox) is added to each mailbox (CRM/ERP user mailbox) of the security group members to provide send-as permission.
The script has been developed as a solution to enable proper functionality with Dynamics NAV 2016.
# Assign Send-As permission to firstname.lastname@example.org for all members
# of 'CRM-FrontLine' security group. The mailboxes as hosted On-Premises!
.\Set-SendAsPermission.ps1 -SendAsGroup 'CRM-FrontLine' -SendAsUserUpn 'email@example.com'
# Assign Send-As permission to firstname.lastname@example.org for all members of 'AX-Sales'
# security group. All mailboxes are hosted in Exchange Online!
.\Set-SendAsPermission.ps1 -SendAsGroup 'AX-Sales' -SendAsUserUpn 'email@example.com' -ExchangeOnline
The Excel workbook Public-Folder-Migration-Actionplan-EN.xlsx spreadsheet is supposed to support you during a migration of Legacy Public Folders (Exchange Server 2010) to Modern Public Folders in Exchange Online.
The workbook consists of three spreadsheets:
If you encounter any issues while preparing for migration or during migration of public folder, I recommend to check the Exchange Server Techcommunity Forum.
Enjoy Exchange Public Folders!