Over the past few weeks, a team of Microsoft Premier Field Engineers from around the globe and I have been kicking the tires on a crazy idea we’ve had for a while, a PowerShell DSC module that would allow us to manage Office 365 configurations. This is an ambitious task and one that is a little disruptive in itself since DSC is traditionally seen as focusing on managed Software, and not Platform-as-a-Service. The idea was to create a module that could run on any machine (or agent) that had connectivity to Office 365 and remotely perform configuration changes and monitoring of drifts. The plan is to have the module focus on the following workloads to begin with, but we plan to expand its reach to all Office 365 workloads:
- Exchange Online
- Office 365 Administration (Users, Licenses, Groups, etc.)
- OneDrive & SharePoint
Today, the team and I are proud to release a very early preview of the Office365DSC PowerShell DSC module. As stated, the module is in its very early stages, and at the time of writing this article, only officially support:
- O365Group: Office 365 Groups (Security, Distribution List, Mail enabled and Office 365)
- O365User: Office 365 User and Licenses
- SPOSite: SharePoint Online site collection
To Install the Early Preview, run the following line of PowerShell:
Install-Module -Name Office365DSC -AllowPrerelease
I am writing this blog post knowing that the module is very light at the moment. My goal with this article however is to make the community aware that the effort is currently undergoing, and that if people want to contribute to it, that they are encouraged to report issues, comments/feedback or to fork and submit Pull Requests to help out with the code base.
As it currently stands, the module allows you to deploy new SharePoint site collections, assign them resources and storage quotas, create Office 365 Groups and assign members to them, and create new users and assign/remove licenses. Because the module is a DSC one, it also allows you to monitor the status of the Office 365 tenant. For example, if the user John Smith is supposed to be assigned a Tenant Admin license, but someone modified John’s properties in Office 365 and only granted him Billing rights, DSC would automatically detect that the remote Office 365 environment is not in the desired state and report it or attempt to correct it. What’s more, is that with the help of ReverseDSC, you will be able to reverse engineer an existing Office 365 tenant, and replicate its configuration across other tenants. We are thrilled about the possibilities that will open with the venue of Office365DSC. Stay tuned for more details on upcoming releases!