INstall Exchange Online Remote PowerShell Module Archives - Office 365 Reports Generate Office 365 reports with PowerShell and stay informed about M365 news, tips, how-to's, and security best practices for efficient Microsoft 365 management. Sat, 29 Jun 2024 08:00:42 +0000 en-US hourly 1 /wp-content/uploads/2024/01/cropped-favicon-32x32.png?v=1705577855 INstall Exchange Online Remote PowerShell Module Archives - Office 365 Reports 32 32 Install all Microsoft 365 PowerShell Modules https://o365reports.com/2019/11/01/install-all-office-365-powershell-modules/?utm_source=rss&utm_medium=rss&utm_campaign=install-all-office-365-powershell-modules https://o365reports.com/2019/11/01/install-all-office-365-powershell-modules/#respond Fri, 01 Nov 2019 11:37:28 +0000 http://o365reports.com/?p=1650 Microsoft 365 includes a wide variety of cloud services like Entra ID, Exchange Online, SharePoint Online, Security and Compliance Center, and Teams. To manage multiple Office 365 services, you need to navigate different admin portals as each service has different portals. Microsoft 365 PowerShell is a powerful tool that compensates…

The post Install all Microsoft 365 PowerShell Modules appeared first on Office 365 Reports.

]]>
Microsoft 365 includes a wide variety of cloud services like Entra ID, Exchange Online, SharePoint Online, Security and Compliance Center, and Teams. To manage multiple Office 365 services, you need to navigate different admin portals as each service has different portals.

Microsoft 365 PowerShell is a powerful tool that compensates the Microsoft 365 admin center. With PowerShell, you can manage all Microsoft 365 services significantly faster than the admin portal. Each Microsoft 365 service has its own PowerShell module, which allows you to administrate all services under a single PowerShell window.

To utilize Office 365 services through PowerShell, first you need to install the required module. Let’s see how to install them

Install all Microsoft 365 PowerShell Modules Using Script:

This All-in-one PowerShell script installs 9 major Microsoft 365 PowerShell modules with the single cmdlet. Additionally, it connects to M365 services through PowerShell.

Script Download: ConnectO365Services.ps1

For detailed script execution steps, you can check here

 

Script Highlights:
  • The script connects to 9 Microsoft 365 services with a single cmdlet.
  • Automatically downloads and installs the required M365 PowerShell modules upon your confirmation.
  • You can connect to one or more Office 365 services via PowerShell using a single cmdlet.
  • You can connect to Office 365 services with MFA enabled account.
  • For non-MFA account, you don’t need to enter credential for each service.
  • The script is scheduler-friendly. i.e., credentials can be passed as a parameter instead of saving inside the script.
  • The script supports Certificate-Based Authentication (CBA) too.
  • You can disconnect all service connections using a single cmdlet.

 

Manually Install Microsoft 365 PowerShell Modules:

This section will walk you through the steps to manually install the Microsoft 365 PowerShell modules.

  1. Install Exchange Online PowerShell module
  2. MS Graph PowerShell
    1. Install MS Graph PowerShell
    2. Install MS Graph Beta PowerShell
  3. Install SharePoint Online PowerShell
  4. Install SharePoint PnP module
  5. Install Security and Compliance PowerShell
  6. Install Microsoft Teams
  7. Azure AD PowerShell
    1. Install MS Online PowerShell
    2. Install Azure AD PowerShell
  8. Install Entra ID PowerShell

 

1. Exchange Online (Exchange Online PowerShell Module – EXO Module)

Exchange Online PowerShell allows you to manage your Exchange Online settings from the command line. To install Exchange Online PowerShell  (EXO), you can use below cmdlet.

Install-Module ExchangeOnlineManagement

EXO V3 module uses modern authentication to connect to Exchange Online and doesn’t require WinRM basic authentication to be enabled.

 

2. Microsoft 365 (MS Graph and MS Graph Beta PowerShell)

The production version of MS Graph has fewer functionalities and attributes compared to the beta version. Depending on your specific requirements, you can choose the appropriate module.

2.1. Install MS Graph PowerShell:

With MS Graph PowerShell, administrators can perform tasks on various Microsoft 365 services. To install MS Graph PowerShell module, you can run the below cmdlet.

Install-Module Microsoft.Graph

After installing the module, you can use the ‘Connect-MgGraph’ cmdlet to connect to MS Graph PowerShell.

2.2. Install MS Graph Beta PowerShell

To install MS Graph beta PowerShell module, run the below cmdlet.

Install-Module Microsoft.Graph.Beta

Note: If you installed multiple versions of MS Graph PowerShell, you may encounter ‘one or more errors occurred’ error.

 

3. SharePoint Online (SharePoint Online PowerShell Module)

SharePoint Online PowerShell module allows you to manage sites, site groups and users, etc. To manage SharePoint Online through PowerShell, you must install SharePoint Online PowerShell Module.

Following cmd-let will install SharePoint Online PowerShell Module

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

 

4. SharePoint PnP (SharePoint PnP PowerShell Module)

SharePoint Patterns and Practices (PnP) allows you to perform complex provisioning and artifact management actions in the SharePoint. To install SharePoint PnP, you can run the below cmdlet.

Install-Module -Name SharePointPnPPowerShellOnline

 

5. Security and Compliance Center (Exchange Online PowerShell Module)

Security and Compliance Center PowerShell is the administrative interface that allows you to perform compliance searches and configure access to Security and Compliance Center.

You need to install EXO module in order to access Security and Compliance Center.

Install-Module ExchangeOnlineManagement

Once installed, you can use the Connect-IPPSSession cmdlet to connect to the compliance center.

 

6. Teams (Microsoft Teams PowerShell Module)

Microsoft Teams PowerShell Module allows you to create and manage Teams. To connect Teams through PowerShell, you need to install Microsoft Teams PowerShell Module.

You can install Microsoft Teams PowerShell Module using the below cmd-let

Install-Module –Name MicrosoftTeams

 

7. Skype (Microsoft Teams PowerShell Module)

Since Skype for Business Online Connector module and the New-CSOnlineSession cmdlet were deprecated, you can use Teams PowerShell module to manage *-CsOnline* cmdlets.

 

8. Azure AD (AzureAD and MSOnline Module)

Office 365 PowerShell allows you to connect to your Office 365 organization to perform administration task from the command line

1.AzureAD V1 – Microsoft Azure Active Directory Module for Windows PowerShell

2.AzureAD V2 – Azure Active Directory PowerShell for Graph

 

8.1. AzureAD V1 (MSOnline Module)

Cmd-lets in the Microsoft Azure Active Directory Module for Windows PowerShell have ‘Msol’ in their cmd-let name like Get-MsolUser, Get-MsolDomain, etc.

Following cmd-let will install Azure AD Msol module.

Install-Module –Name MSOnline

 

8.2. AzureAD V2 (AzureAD Module)

Cmd-lets in the Azure Active Directory PowerShell for Graph module have ‘AzureAD’ in their cmd-let name like Get-AzureADUser, New-AzureADPolicy, etc.

Install-Module –Name AzureAD

 

9. Entra ID PowerShell

Microsoft Entra PowerShell module allows administrators to manage Entra resources like users, groups, applications, service principals, devices, etc.

To install MS Entra PowerShell module, run the below cmdlet.

Install-Module -Name Microsoft.Graph.Entra -AllowPrerelease

After installation, you can use the Connect-Entra to create Entra PowerShell session.

 

Challenges in Generating Microsoft 365 Reports with PowerShell:

Most admins prefer PowerShell to manage their Microsoft 365 environment. But when it comes to reporting, it is always difficult to get the desired report with PowerShell. Because

  • PowerShell requires a lot of effort to generate the needed reports, which is time-consuming. 
  • Automating report generation is difficult when you are using MFA.
  • If you do not retrieve the audit data properly, it will end up with data loss which spoils the purpose. 
  • If you are a newbie, you might lose in search of finding the right cmdlet. 

If you are searching for the easiest way to generate Microsoft 365 reports, A tool like AdminDroid  will help you in reporting and auditing your Microsoft 365 environment.

AdminDroid offers 1800+ pre-built reports and 30 smart dashboards in which you can get statistics about your organization effortlessly. This tool provides reports on various categories such as,

  • Azure Active Directory reports
  • Exchange Online reports
  • SharePoint Online reports
  • Microsoft Teams reports
  • Security reports
  • OneDrive for Business reports
  • Stream reports
  • PowerBI reports
  • OneNote reports
  • Skype for Business Online & Yammer reports

Microsoft 365 user signins with location

Microsoft 365 Offboarded user activity

Besides, AdminDroid offers 120+ reports and a handful of dashboards completely for free. It includes reports on Users, Licenses, Groups, Group Members, Devices, Login Activities, Password Changes, License Changes, and more. The free edition doesn’t have any restrictions in reporting functionalities such as customization, scheduling, and exporting.

Download Free Office 365 reporting tool by AdminDroid and see how it helps for you.

 

I hope this blog can help you to manage Office 365 environment. If you face any issues, share with us through the comment section.

The post Install all Microsoft 365 PowerShell Modules appeared first on Office 365 Reports.

]]>
https://o365reports.com/2019/11/01/install-all-office-365-powershell-modules/feed/ 0
Connect to Exchange Online PowerShell Using MFA (Multi Factor Authentication) https://o365reports.com/2019/04/17/connect-exchange-online-using-mfa/?utm_source=rss&utm_medium=rss&utm_campaign=connect-exchange-online-using-mfa https://o365reports.com/2019/04/17/connect-exchange-online-using-mfa/#respond Wed, 17 Apr 2019 10:33:15 +0000 http://o365reports.com/?p=1080 If you want to connect Exchange Online PowerShell using MFA, you need to use a special PowerShell tool offered by Microsoft “Exchange Online PowerShell Module” (EXO).   Feb 2023 Update: Remote PowerShell (RPS) retirement in Exchange Online PowerShell Due to RPS retirement, you can’t use EXO V1 and V2 modules…

The post Connect to Exchange Online PowerShell Using MFA (Multi Factor Authentication) appeared first on Office 365 Reports.

]]>
If you want to connect Exchange Online PowerShell using MFA, you need to use a special PowerShell tool offered by Microsoft “Exchange Online PowerShell Module” (EXO).

 

Feb 2023 Update: Remote PowerShell (RPS) retirement in Exchange Online PowerShell

Due to RPS retirement, you can’t use EXO V1 and V2 modules to connect Exchange Online PowerShell. So admins must install/update to EXO V3 module to perform Exchange management tasks.

 

You can install Exchange Online PowerShell Module (EXO V1) manually or you can use dedicated script that install the module and connects Exchange Online PowerShell using MFA. Let’s check both methods in detail.

  • Automated Method:
    • PowerShell script to connect Exchange Online PowerShell with MFA
  • Manual Method:
    • Step1: Install Exchange Online PowerShell Module for MFA(One time process)
    • Step2: Connect Exchange Online PowerShell using MFA enabled Account

To ease your work, we have documented common troubleshooting tips at the bottom.

 

Automated Method: PowerShell Script to Connect Exchange Online PowerShell with MFA

Unfortunately, connecting Exchange Online PowerShell using MFA is somewhat tricky, so newbies can get lost quickly. No worries! We are here to help admins. We have written a user-friendly PowerShell script to connect Exchange Online PowerShell with MFA which does following things.

  • Downloads Exchange Online Remote PowerShell Module
  • Installs Exchange Online PowerShell Module
  • Connects Exchange Online PowerShell using MFA

Download Script: ConnectExchangeOnlinePowerShell.ps1

 

Manual Method: Setup Everything by Yourself

The script mentioned above can create a connection in simple steps, but if you are an advanced user and want to know everything in detail, please read further. In short, first, you need to install the Exchange Online PowerShell module, which is the one time process. And then you need to create EXOPSSession to connect Exchange Online PowerShell using MFA.

 

Step1: Install Exchange Online PowerShell Module for MFA

The first thing you need to do is download the Exchange Online Remote PowerShell module.To download Exchange Online PowerShell Module directly, you can use this quick link: https://cmdletpswmodule.blob.core.windows.net/exopsmodule/Microsoft.Online.CSE.PSModule.Client.application 

Alternatively, to download the Exchange Online MFA module through Microsoft, follow the below steps.

1.Login to Exchange Admin Center using Internet Explorer or Edge. 

2.In the EAC, go to Hybrid and click the Configure button (as mentioned in below image) to download the Exchange Online PowerShell Module for MFA.

Exchange Online Powershell module supports MFA

Note: A browser that uses ClickOnce to download (like IE or Edge) is needed to download otherwise you will get an error during installation. Click Connect-ExoPSSession troubleshooting tips for more troubleshooting tips.

 

3.Click Install.

Exchange Online Remote PowerShell installation

 

Step2: Connect Exchange Online PowerShell Using MFA

1.Connect-EXOPSSession used to connect to Exchange Online with MFA. You can’t use Connect-EXOPSSession in standard Windows PowerShell. You need to launch Exchange Online Remote PowerShell module. When you launch the Exchange Online Remote PowerShell module, a tip about the usage is shown.

Exchange online Remote PowerShell Module

 

2.Connect-EXOPSSession has a parameter UserPrincipalName. You can use Connect-EXOPSSession, with or without UserPrincipalName. For eg,

Connect-EXOPSSession -UserPrincipalName Admin@Contoso.com

 

3.Enter the password in the sign-in window and then click Sign in.

Microsoft Exchange Online Remote PowerShell login

4. A verification code generated and delivered based on MFA configured for your account. Enter the verification code in the verification window and then click Sign in.

Microsoft Exchange Online Powershell login with MFA

5. After step 4, the Exchange online cmdlets are imported into Exchange Online remote PowerShell Module session. If you don’t receive any errors, you connected successfully as shown in the below figure.

Connect Exchange online using MFA

 

If you want to connect all Office 365 Services PowerShell with a single cmdlet, please refer: Connect to all Office 365 Services using PowerShell (Supports MFA too)

 

Connect-EXOPSSession – Trouble Shooting Tips:

Most people encounters numerous challenges when they try to use Connect-EXOPSSession cmdlet. To ensure hassle-free installation and execution, we have documented the common errors and their troubleshooting tips in this blog. If you want to get a list of MFA enabled users in your tenant, you can refer Export Office 365 users’ MFA status report.

 

1.You can’t use Standard Windows PowerShell to Connect Exchange Online With MFA:

 If you use standard Windows PowerShell to connect Exchange Online using MFA enabled account, you will get the following error. 

New-PSSession : outlook.office365. com Connecting to remote server outlook.office365. com failed with the following error message : Access is denied. For more information, see the about_Remote_Troubleshooting Help topic.+ $Session = New-PSSession -ConfigurationName Microsoft.Exchange -Conne ...
+ FullyQualifiedErrorId : AccessDenied,PSSessionOpenFailed


Import-PSSession : Cannot validate argument on parameter 'Session'. The argument is null. Provide a valid value for the argument, and then try running the command again. + Import-PSSession $Session -CommandName Get-Mailbox,Get-MailboxPermi ...
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.PowerShell.Commands. ImportPSSessionCommand

Connect Exchange Online With MFA

If you want to connect Exchange Online PowerShell with MFA, you need to install “Exchange Online PowerShell Module” (EXO).

 

2.How to Import MFA Enabled Exchange Online Powershell Module in ISE?

Instead of using Exchange Online PowerShell console, you can import Exchange Online PowerShell module in Windows PowerShell ISE. To successfully use the Connect-EXOPPSSession cmdlet in the ISE, you need to run the below code in ISE.

$MFAExchangeModule = ((Get-ChildItem -Path $($env:LOCALAPPDATA+"\Apps\2.0\") -Filter CreateExoPSSession.ps1 -Recurse ).FullName | Select-Object -Last 1)
. "$MFAExchangeModule"

 

Now, you can use PowerShell ISE to Connect Exchange Online with MFA.

Connect-EXOPSSession

Note: Before using these code, you should install Exchange Remote Online PowerShell module.

 

3.Unable to Install Exchange Online PowerShell Module- Cannot start application:

If you didn’t use IE or Edge to download Exchange Online PowerShell Module, you will face error during installation.

Unable to install Exchange Online PowerShell module

 

4.Enable basic authentication on the WinRM Service:

Windows Remote Management (WinRM) needs to allow basic authentication (It is enabled by default) to create ExoPSSession. If basic authentication is disabled, you’ll get below error when you try to connect: 

The WinRM client cannot process the request. Basic authentication is currently disabled in the client configuration. Change the client configuration and try the request again.

Note: The Basic authentication header is required to transport the session’s OAuth token, since the client-side WinRM implementation has no support for OAuth.

To check whether the basic authentication is enabled, run below command in command prompt.

winrm get winrm/config/client/auth

If Basic= true not set, you need to run below command to enable basic authentication.

winrm set winrm/config/client/auth @{Basic="true"}

After executing above command, the output looks similar to below screenshot.

Enable basic authentication on WinRM service

Note: You can also use EXO V2 module to connect Exchange Online PowerShell with modern auth.  Even though the EXO V2 module uses modern auth, it still needs WinRM basic auth to transport modern auth tokens. To improve the security, Microsoft recently introduced EXO V2 Preview module 2.0.6. It allows admin to use EXO V2 module without WinRM basic authentication.

 

5.Start WinRM service:

In order to enable basic authentication in WinRM, WinRM service must be in running state. Otherwise, you will get following error: The client cannot connect to the destination specified in the request. Verify that the service on the destination is running and is accepting requests. Consult the logs and documentation for the WS-Management service running on the destination, most commonly IIS or WinRM.

The client cannot connect to the destination specified in the request. Verify that the service on the destination is running and is accepting requests

To start WinRM service, launch command prompt as administrator and run following command

Winrm quickconfig

When the cmd prompt displays Make these changes [y/n]?, type y.

If configuration is successful, WinRM service started output will be displayed.

 

6.Where do I find the Exchange Online Remote PowerShell Module?

You won’t be able to find the Exchange Online Remote PowerShell module, using the Get-Module cmdlet. When you install ClickOnce application, it will be installed in the below directory.

%UserProfile%\AppData\Local\Apps\2.0

You can use the desktop shortcut, to launch the Exchange Online Remote PowerShell module.

 

7.Disconnect the remote PowerShell session:

Make sure to disconnect the remote PowerShell session when you’re finished. Else you ended up using all remote PowerShell sessions available to you and you will get the following error. 

New-ExoPSSession : Processing data from remote server outlook.office365. com failed with the following error message: [AuthZRequestId=068a9813-8420-43f0-9f20-692228962287] [FailureCategory=AuthZ-AuthorizationException] Fail to create a runspace because you have exceeded the maximum number of connections allowed: 10

To disconnect all PowerShell session in the current window, you can use below command.

Get-PSSession | Remove-PSSession

 

Connect to Exchange Online PowerShell without Basic Authentication:

All we know that Microsoft is going to deprecate Basic Authentication in Exchange Online in Oct 2022. So, how will you connect to Exchange Online PowerShell without basic authentication?

You can install the new ExchangeOnlineManagement module. I have written a dedicated blog on how to install and use ExchangeOnlineManagement to connect to Exchange Online PowerShell with Modern Authentication. You can refer to the blog for more details.

 

Automate Exchange Online PowerShell Login with MFA – Unattended Script:

With the introduction of security defaults and MFA enforcement, most scripts are broken in scheduled tasks or automation. As a workaround, most admins used conditional access to exclude MFA for the service accounts. It makes the organization less secure. To fix this problem, Microsoft introduced a new Public preview of the EXO V2 module (Version 2.0.3 or later) to connect Exchange Online with an unattended script.

 

Challenges in Generating Reports using PowerShell:

Most admins use Exchange Online PowerShell for generating Exchange online reports and auditing Office 365 environment. But I have seen a lot of challenges when using PowerShell. for example,  

  • If you do not retrieve the audit data properly, it will end up with data loss which spoils the purpose. 
  • If you are a newbie, you might lose in search of finding the right cmdlet. 
  • PowerShell requires a lot of effort to generate the needed reports, which is time-consuming. 
  • Automating report generation is difficult when you are using MFA.

 If you are searching for alternative ways to generate Exchange reports like 

  • Mailbox information reports 
  • Inactive mailbox reports based on last logon time, last activity time, last mail read, last mail sent time 
  • Mailbox usage reports 
  • Mailbox permission reports 
  • Mailbox forwarding reports 
  • Mailbox settings reports 
  • Mailbox on-hold reports 
  • Email activity reports 
  • Spam and malware reports 
  • Email traffic and statistics reports 
  • Mailbox auditing reports 
  • Non-owner mailbox access reports 

You can take a look at AdminDroid Exchange Online reporting and auditing tool. This tool offers 170+ Exchange Online statistics and auditing reports along with visually appealing dashboards. 

Additionally, AdminDroid offers 1500+ pre-built reports on various Office 365 services like Azure AD, Exchange Online, SharePoint Online, Microsoft Teams, OneDrive for Business, Skype for Business, Yammer, General Office 365 reports, and security reports. 

AdminDroid Office 365 auditing toolAdminDroid Office 365 auditing reporting tool

Office 365 auditing toolOffice 365 reporting tool technet

 

Besides, AdminDroid provides over 100+ reports and a handful of dashboards completely for free. It includes reports on Users, Licenses, Groups, Group Members, Devices, Login Activities, Password Changes, License Changes, and more. The free edition doesn’t have any restrictions in reporting functionalities such as customization, scheduling, and exporting. For your Azure AD reporting and auditing needs, you can download Free Office 365 reporting tool by AdminDroid and see how it helps for you. 

I hope that the post above was helpful! Do you have any different approach to use MFA in scripts? Share with other Admins and us in the comments.

The post Connect to Exchange Online PowerShell Using MFA (Multi Factor Authentication) appeared first on Office 365 Reports.

]]>
https://o365reports.com/2019/04/17/connect-exchange-online-using-mfa/feed/ 0