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 firstname.lastname@example.org
Follow at https://twitter.com/stensitzki
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 email@example.com for all members
# of 'CRM-FrontLine' security group. The mailboxes as hosted On-Premises!
.\Set-SendAsPermission.ps1 -SendAsGroup 'CRM-FrontLine' -SendAsUserUpn 'firstname.lastname@example.org'
# Assign Send-As permission to email@example.com for all members of 'AX-Sales'
# security group. All mailboxes are hosted in Exchange Online!
.\Set-SendAsPermission.ps1 -SendAsGroup 'AX-Sales' -SendAsUserUpn 'firstname.lastname@example.org' -ExchangeOnline
The Category List Manager is a C# Visual Studio Solution that allows you to connect to a source mailbox which is either hosted on an on-premises Exchange Server or in Exchange Online using Exchange Web Services (EWS).
You can use AutoDiscover or a static Url to connect to the Exchange Server or Office 365. By default the solution uses the credentials of the user executing the program. These credentials are referred to as default credentials. You can use the Settings form to set dedicated credentials of an user with appropriate access rights to the mailbox(es).
The program helps you to
The supported target mailbox types are:
The GUI comes with an easy-to-use UI. The execuable works a command line tool as well and can be used for automation purposes.
Use CategoryManager.exe -help to get the most recent command line help information.
Watch the presentation held at the Exchange User Group Berlin Meetup on May 31st 2018.
Additional credits go to Henning Krause
When you want to migrate your legacy public folders from Exchange 2010 to modern public folders in Exchange Online you must prepare the public folder names for migration.
Public folder names are not allowd to contain the following:
The script Fix-PublicFolderNames.ps1 fixes the public folder names in preparation for migration to modern public folders.
# Rename and trim public folders found on Server MYPFSERVER
.\Fix-PublicFolderNames -PublicFolderServer MYPFSERVER
The following PowerShell snippet helps to create room lists for the Room Finder functionality in Outlook or Outllok on the Web.
This snippet creates a new room list named All Video Conference Rooms. The display name is shown in the Room Finder combo box. The room list members are a mixture of physical rooms (where you actually go to) and virtual rooms which you just dial into.
# General Properties
$DisplayName = 'All Video Conference Rooms'
$Name = 'DEP_IT_AllVideoConfRooms'
$Alias = 'IT_AllVideoConfRooms'
$Notes = 'Room List for Outlook Roomfinder | All Video Conference Rooms'
$OU = 'MCSMLABS.de/Exchange/Groups/RoomLists'
$EmailAddress = 'ITAllVideoConfRooms@mcsmemail.de'
# Romm List Members
$Members = @('Conference Room 1','Conference Rooms 2','Virtual Dial-In Room 4711')
# Create Distribution Group as Room List
New-DistributionGroup -DisplayName $DisplayName -Name $Name -Alias $Alias -Notes $Notes -Type Distribution -OrganizationalUnit $OU -PrimarySmtpAddress $EmailAddress -Members $Members -RoomList
Use this snippet to start developing your own Exchange PowerShall code for creating and managing rooms and room lists.
If you want to create new rooms and security groups for managing full-access and send-as permissions, use my PowerShell script Create a new Room Mailbox with Security Groups.