Skip to content


Switch branches/tags


This module allows organizations to automate the deployment, configuration, reporting and monitoring of Microsoft 365 Tenants via PowerShell Desired State Configuration. The compiled configuration needs to be executed from an agent's Local Configuration Manager (LCM) (machine or container) which can communicate back remotely to Microsoft 365 via remote API calls (therefore requires internet connectivity)

For information on how to get started, additional documentation or additional resources, please navigate to the official web site at and check out the official YouTube channel Microsoft365DSC.

Roadmap & Backlog

We are using Azure DevOps for project management. You can access our backlog and roadmap by clicking on the status badge below:

Board Status




This is the branch containing the latest release - no contributions should be made directly to this branch.


Code Coverage

AzureCloud - Full-Circle - EXO

AzureCloud - Full-Circle - O365

AzureCloud - Full-Circle - OD

AzureCloud - Full-Circle - PP

AzureCloud - Full-Circle - SC

AzureCloud - Full-Circle - SPO

AzureCloud - Full-Circle - TEAMS

AzureCloud - Integration

AzureUSGovernment - Integration

AzureCloud - GCCHigh - Integration

Unit Tests

This is the development branch to which contributions should be proposed by contributors as pull requests. This development branch will periodically be merged to the master branch, and be released to PowerShell Gallery.

How to Install

To acquire the latest bits of the module from a machine that has internet connectivity, run the following PowerShell line:

Install-Module -Name Microsoft365DSC -Force

Telemetry Disclaimer

Microsoft365DSC captures Telemetry data about the names of the resources in which a configuration drift has been detected, along with the type of exceptions being thrown by errors in the various modules. While no sensitive data is ever captured, App Insights, which performs telemetry analytics, captures information about the city where the telemetry entries were captured by default. Users can opt-out to prevent telemetry from being sent back to the Microsoft365DSC team by running the following command:

Set-M365DSCTelemetryOption -Enabled $False