Currently, there’s four Windows PowerShell modules to manage settings and objects in Microsoft’s Azure Active Directory:
- MSOnline
- AzureAD
- AzureADPreview
- AzureAD.Standard.Preview
MSOnline
The MSOnline Module, with its *-MSOL* cmdlets, was the first Windows PowerShell Module for Azure Active Directory. It started life as a PowerShell Module to manage all Microsoft Online Services, hence the name. Microsoft refers to this module as version 1.0.
The cmdlets in the MSOnline PowerShell Module use its own non-public-callable API. Currently, the MSOnline module is the most complete module for CRUD of common objects in the directory.
AzureAD
The AzureAD Module, with its *-AzureAD* cmdlets, was introduced on November 17th, 2016. Its full name is Azure Active Directory PowerShell for Graph, which gives away the reasoning behind the existence of this PowerShell module next to the MSOnline module: The AzureAD PowerShell module started life as a result of the vision that all the CRUD functionality should be available through public APIs. The Graph API was the API chosen. Microsoft refers to this module as version 2.0. Its current version is version 2.0.2.4.
The AzureAD module, and its dependencies, can be installed and updated using PowerShellGet from the PowerShell Gallery. It requires PowerShell 3.0 or above.
To install the AzureAD Module run Install-Module AzureAD
In comparison to other PowerShell modules, the AzureAD Module is updated by running Install-Module again. Other PowerShell modules use Update-Module…
Starting in 2017, Microsoft has been offering new Azure AD-oriented cmdlets for functionality in the AzureAD module only. Cmdlets to manage the Azure AD App Proxy, for instance, are not available in the MSOnline module.
For all intents and purposes, the AzureAD module can be seen as the Generally Available (GA) module. It should be the module admins should use for management in production environment. However, some functionality is only available in the MSOnline module and Microsoft Support might ask to run Get-MSOL* cmdlets in certain scenarios. Luckily, the MSOnline and AzureAD modules can be installed side-by-side.
AzureADPreview
The AzureADPreview module is offered as an installable module, and is the module offered in the Azure Cloud Shell. Microsoft refers to it as version 2.0-preview. Its version, today, is version 2.0.2.5, published October 3, 2018.
The AzureADPreview module, and its dependencies, can be installed and updated using PowerShellGet from the PowerShell Gallery. It requires PowerShell 3.0 or above.
To install the AzureADPreview Module run Install-Module AzureADPreview
The AzureADPreview module, today, is different to the AzureAD module in that it references the beta Graph API..
On one system, the AzureAD and AzureADPreview modules cannot be installed side-by-side, but both modules can individually co-exist with the MSOnline module.
AzureAD.Standard.Preview
The AzureAD.Standard.Preview module, or in full: the Azure Active Directory .Net Standard Preview Module is a Private Preview release of Azure Active Directory .NetStandard Module, available in PSGallery Internal only.
Its current version is version 0.1.599.7, published on August 30th, 2018.
I just wanted to say – What a mess. Thanks for centralizing the 4 modules and their (point in time) statuses.
Too bad they didn't just stick with MSONLINE and keep improving it. Instead, they went (are still going) completely bananas.
It would be nice if they would pick one and finally stick with it. If a 5th comes out (hopefully #5 hasn't already actually come out by now), I think some management intervention at Microsoft is necessary. The decision making on this so far has not been good.
@Jeremy I have good news and I have bad news. We are working on #5. The good news is the end result will be these two packages will have everything you need.
https://www.powershellgallery.com/packages/Microsoft.Graph/0.1.1
https://www.powershellgallery.com/packages/Az/3.4.0
Both sets of modules are generated by AutoREST from metadata describing the APIs they provide access to, so they will be easy to keep up to date and will provide a consistent experience.