Getty Images/iStockphoto

Tip

What's new with the EXO v3 module for Exchange admins?

Microsoft made several significant improvements in the Exchange Online PowerShell v3 module for added reliability and performance when managing the hosted email platform.

Admins got an upgrade recently when Microsoft pushed out a new version of the PowerShell module used to manage the Exchange Online hosted email platform.

In September 2022, Microsoft released the Exchange Online PowerShell v3 module, also called the EXO v3 module. It gives a direct connection to Exchange Online to perform various administrative tasks, such as exporting a list of mailboxes on the tenant, rather than use the admin portal. This module also provides PowerShell access to other areas in Office 365/Microsoft 365, such as security and compliance and Exchange Online Protection.

How is the Exchange Online PowerShell v3 module used?

Administrators have several options to handle the different jobs that come their way. While most of this work can be done from the Exchange admin web portal, there are many instances of repetitive work better suited for a more efficient method via PowerShell rather than the point-and-click interface.

Upon installation, the Microsoft Exchange Online module adds a set of PowerShell cmdlets for administrators to use in one-off tasks or to use in scripts to automate some of their more advanced activities.

The cmdlets developed for bulk data processing and retrieval scenarios in Exchange Online include the following:

  • Get-EXOMailbox
  • Get-EXORecipient
  • Get-EXOCasMailbox
  • Get-EXOMailboxPermission
  • Get-EXORecipientPermission
  • Get-EXOMailboxStatistics
  • Get-EXOMailboxFolderStatistics
  • Get-EXOMailboxFolderPermission
  • Get-EXOMobileDeviceStatistics

What's new in the EXO v3 module?

The EXO v3 module used includes several improvements to the v2 module release. One of the main perks is that the EXO v3 module cmdlets use REST API calls rather than remote PowerShell sessions to perform work against Exchange Online for improved performance, security and reliability.

Updates in this release include support for modern authentication, avoiding the need for basic authentication in the WinRM client machine. The updated cmdlets use REST API calls for better response and fewer failures when commands are delayed by network issues or complicated requests.

Other enhancements include the following:

  • Certificate based authentication, also called app-only authentication, for increased security and compliance.
  • UseRPSSession switch in the Connect-ExchangeOnline cmdlet for access to remote PowerShell cmdlets.
  • Get-ConnectionInformation cmdlet retrieves details on REST-based connections to Exchange Online PowerShell.
  • SkipLoadingFormatData switch on the Connect-ExchangeOnline command in REST-based connections. As the name indicates, the switch does not load formatted data for better performance.

How to install the Exchange Online PowerShell v3 module?

To deploy the latest version of the Exchange Online management module, open PowerShell 7 and run the following commands.

# Allow running remote signed scripts
Set-ExecutionPolicy RemoteSigned

# Install NuGet provider
Install-PackageProvider -Name NuGet -Force

# Install PowerShellGet

Install-Module -Name PowerShellGet -Force

After those commands execute, install the EXO v3 module with the following command.

Install-Module -Name ExchangeOnlineManagement -RequiredVersion 3.0.0

Some EXO V3 cmdlets have additional functionality to support routing the command directly to the required mailbox server for improved performance. The UseCustomRouting switch is an experimental feature used to identify mailboxes with the user principal name, email address or mailbox GUID.

The UseCustomRouting switch is available only on the following REST API cmdlets in Exchange Online PowerShell:

  • Get-Clutter
  • Get-FocusedInbox
  • Get-InboxRule
  • Get-MailboxAutoReplyConfiguration
  • Get-MailboxCalendarFolder
  • Get-MailboxFolderPermission
  • Get-MailboxFolderStatistics
  • Get-MailboxMessageConfiguration
  • Get-MailboxPermission
  • Get-MailboxRegionalConfiguration
  • Get-MailboxStatistics
  • Get-MobileDeviceStatistics
  • Get-UserPhoto
  • Remove-CalendarEvents
  • Set-Clutter
  • Set-FocusedInbox
  • Set-MailboxRegionalConfiguration
  • Set-UserPhoto

With the debut of the EXO v3 module, Microsoft officially released several new cmdlets that had been available in the EXO v2 module preview versions:

  • Get-MyAnalyticsFeatureConfig. Outputs the status of the user's MyAnalytics
  • Set-MyAnalyticsFeatureConfig. Configures the user's MyAnalytics settings.
  • Get-VivaInsightsSettings. Checks the availability of Viva Insights in Microsoft Teams.
  • Set-VivaInsightsSettings. Adjusts the user's access to Viva Insights.

Microsoft replaced two cmdlets in the EXO v3 module, swapping Get-UserBriefingConfig with Get-MyAnalyticsFeatureConfig and Set-UserBriefingConfig with the Set-MyAnalyticsFeatureConfig.

While using PowerShell commands may seem intimidating, the option to perform administrative activities with a script makes work more efficient, particularly when modifying settings for many users, and less prone to errors from manual methods. The other advantage is that these Exchange Online cmdlets perform certain management tasks that aren't available in the admin portal or are more difficult to perform at scale.

Next Steps

How and why PowerShell Linux commands differ from Windows

Dig Deeper on Microsoft messaging and collaboration