How to Connect to Exchange Online using Windows PowerShell

Table of Contents

Requirements

  • You should use PowerShell on Windows 10 or Windows 11. Be aware that you need to install .NET Framework 4.5 or later.
  • An internet connection is required. TCP port 80 must be opened to connect from your local machine to the destination host.
  • Access to Exchange Online PowerShell must be enabled for the current user (by default such access is enabled for administrators).

Connect to Exchange Online PowerShell

1. Right click on Windows icon then select Windows PowerShell Admin. In Windows 11, select Windows Terminal Admin instead of Windows PowerShell Admin.

How to Connect to Exchange Online using Windows PowerShell

2. Copy then paste all bellow commands into PowerShell window at once then hit Enter.

Note

You only need install Exchange Online module only once. In the next time, run Connect-ExchangeOnline to connect to Exchange Online PowerShell.

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine -Force;
Install-PackageProvider -Name NuGet -Force;
Set-PSRepository -Name "PSGallery" -InstallationPolicy Trusted;
Install-Module -Name ExchangeOnlineManagement;
Import-Module ExchangeOnlineManagement;
Connect-ExchangeOnline;

3. In the sign-in window that opens, enter your Global Admin credential then click .

How to Connect to Exchange Online using Windows PowerShell

The Exchange Online cmdlets are imported into your local PowerShell session and tracked by a progress bar. If you don’t receive any errors, you connected successfully.

----------------------------------------------------------------------------                                            The module allows access to all existing remote PowerShell (V1) cmdlets in addition to the 9 new, faster, and more reliable cmdlets.                                                                                                            
|--------------------------------------------------------------------------|
|    Old Cmdlets                    |    New/Reliable/Faster Cmdlets       |
|--------------------------------------------------------------------------|
|    Get-CASMailbox                 |    Get-EXOCASMailbox                 |
|    Get-Mailbox                    |    Get-EXOMailbox                    |
|    Get-MailboxFolderPermission    |    Get-EXOMailboxFolderPermission    |
|    Get-MailboxFolderStatistics    |    Get-EXOMailboxFolderStatistics    |
|    Get-MailboxPermission          |    Get-EXOMailboxPermission          |
|    Get-MailboxStatistics          |    Get-EXOMailboxStatistics          |
|    Get-MobileDeviceStatistics     |    Get-EXOMobileDeviceStatistics     |
|    Get-Recipient                  |    Get-EXORecipient                  |
|    Get-RecipientPermission        |    Get-EXORecipientPermission        |
|--------------------------------------------------------------------------|

To get additional information, run: Get-Help Connect-ExchangeOnline or check https://aka.ms/exops-docs

Send your product improvement suggestions and feedback to [email protected]. For issues related to the module, contact Microsoft support. Don't use the feedback alias for problems or support issues.
----------------------------------------------------------------------------

PS C:\Users\mpnadmin>

How do you know this worked

A quick test is to run an Exchange Online PowerShell cmdlet, for example, Get-Mailbox, and see the results.

PS C:\WINDOWS\system32> Get-Mailbox

Name                      Alias           Database                       ProhibitSendQuota    ExternalDirectoryObjectId
----                      -----           --------                       -----------------    -------------------------
AdeleV                    AdeleV          APCPR01DG264-db066             99 GB (106,300,44... 56b26bab-786c-4b7c-af1...
AlexW                     AlexW           APCPR01DG166-db044             99 GB (106,300,44... 8e8704d3-fbd2-463b-aca...
admin                     admin           APCPR01DG271-db010             99 GB (106,300,44... f5ca26a5-431e-4fb0-a98...
DiegoS                    DiegoS          APCPR01DG261-db305             99 GB (106,300,44... 3db4483d-5baa-42cf-b29...
DiscoverySearchMailbox... DiscoverySea... APCPR01DG071-db127             50 GB (53,687,091...
GradyA                    GradyA          APCPR01DG063-db055             99 GB (106,300,44... ca2611b7-135a-4fbe-95c...
HenriettaM                HenriettaM      APCPR01DG227-db037             99 GB (106,300,44... bd1cdb73-d8a0-4c70-b1a...
IsaiahL                   IsaiahL         APCPR01DG230-db082             99 GB (106,300,44... c945caee-aa85-453b-b27...
JohannaL                  JohannaL        APCPR01DG262-db316             99 GB (106,300,44... f8284b26-1237-4ec4-a66...
JoniS                     JoniS           APCPR01DG262-db387             99 GB (106,300,44... 302f4918-4d5c-4137-93b...

Note

Be sure to disconnect the remote PowerShell session when you’re finished. If you close the PowerShell window without disconnecting the session, you could use up all the remote PowerShell sessions available to you, and you’ll need to wait for the sessions to expire. To disconnect the remote PowerShell session, run the following command.

Disconnect-ExchangeOnline

Install Exchange Online PowerShell Preview

In some cases, you want to install the latest preview version of Exchange Online PowerShell. Let’s follow this article or:

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope LocalMachine -Force;
Install-PackageProvider -Name NuGet -Force;
Set-PSRepository -Name "PSGallery" -InstallationPolicy Trusted;
Install-Module PowerShellGet -Force;
Uninstall-Module -Name ExchangeOnlineManagement;
Install-Module -Name ExchangeOnlineManagement -AllowPrerelease

Leave a Comment

Required fields are marked *