Connect to Office 365 with PowerShell

A brief set of instructions to connect to Office 365 online services using PowerShell, including Azure AD, Exchange Online, and Skype for Business Online.

Connect to Azure AD v1 (msonline)

This is the older MSOnline V1 PowerShell module for Azure Active Directory.

Install the Microsoft Azure Active Directory Module v1 for Windows PowerShell with these steps:
Open an administrator-level PowerShell command prompt
Run the command:

Install-Module MSOnline

This is the older MSOnline V1 PowerShell module for Azure Active Directory.

Get your credentials and connect:

$creds = Get-Credential
Connect-MsolService -Credential $creds
Get-MsolDomain # Confirm if you are connected to the right tenant

Note: If your account is 2FA enabled, just use the command: Connect-MsolService and then enter your credentials and 2FA authentication.

I would also highly recommend changing the window title, especially if you connect to multiple tenants. This reduces the chances of making a change on the wrong tenant!

$host.ui.RawUI.WindowTitle = "CustomerX: Production"

Connect to Azure AD v2

Install-Module AzureAD

Note that the login window is often hidden behind the console, so minimise to see it.

Connect to Skype Online

If you also want to manage Skype Online:

Download and install the Skype for Business Online Connector module.

To connect to Skype Online:

Import-Module SkypeOnlineConnector
$SkypeSession = New-CsOnlineSession -Credential $creds
Import-PSSession $SkypeSession
Get-CsExternalUserCommunicationPolicy # To test

Connect to Exchange Online

$ExchangeSession = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri -Credential $creds -Authentication Basic -AllowRedirection
Import-PSSession $ExchangeSession
Get-Organizationconfig # Useful to test

Note if you have MFA enabled: you can either install the Exchange Online PowerShell module, see here: and then connect using Connect-EXOPSSession -UserPrincipalName instead of the above, or you can use the method outline here to connect using the normal PowerShell console or ISE:

Connect to SharePoint Online

Install the module:

Install-Module -Name Microsoft.Online.SharePoint.PowerShell

And connect:

Connect-SPOService -Url

Connect to SharePoint PnP

Install-Module SharePointPnPPowerShellOnline -SkipPublisherCheck -AllowClobber
$SiteURL = ""          
Connect-PnPOnline -Url $SiteURL -UseWebLogin

Connecting through a proxy server

Option 1: Use netsh

You can just a single command to set a proxy: netsh winhttp set proxy. This is persistent, and I prefer this because it will work with either connection method for Exchange – creating a remote session or using the Exchange Online PowerShell module with MFA.

netsh winhttp show proxy # Check proxy settings
netsh winhttp set proxy # Set proxy server
netsh winhttp reset proxy # Remove proxy settings

Option 2: Set your proxy per session

If you need to use your proxy with remote PSSessions, connect as follows:

$proxyOptions = New-PSSessionOption -ProxyAccessType IEConfig
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri -Credential $creds -Authentication Basic -AllowRedirection -SessionOption $proxyOptions
Import-PSSession $Session

Note that if your proxy requires authentication, you can use this third option:

Connect to the Security& Compliance center

$creds = get-credential
$Session = New-PSSession -ConfigurationName Microsoft.Exchange -ConnectionUri -Credential $creds -Authentication Basic –AllowRedirection
Import-PSSession $Session
Get-RetentionCompliancePolicy # to test)

See and for more information.


Posted in Office 365, PowerShell

Related Posts


  1. Pingback:Configuring PowerShell to work behind a proxy server – Cloudrun

  2. Pingback:Configuring PowerShell to work behind an authenticated proxy server - Cloudrun

  3. Pingback:Configure Exchange Online archiving for all users - Cloudrun

  4. Pingback:Exchange Online Enable Archive Mailboxes and Archive Policies for all users - Cloudrun

  5. Pingback:Connecting to Exchange Online using MFA without EXO PowerShell Module - Cloudrun

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: