This week, Microsoft released version 2.0.0 of the Microsoft Teams PowerShell module. This version of the Microsoft Teams PowerShell module no longer includes the
New-CsOnlineSession command, which administrators used to connect to Skype for Business Online PowerShell. Administrators can now use the
Connect-MicrosoftTeams cmdlet to connect to Microsoft Teams and Skype for Business Online for PowerShell management.
In this post, you will learn some history of the two different PowerShell modules. You will also learn how to update your existing Microsoft Teams PowerShell module to the latest version and connect to Microsoft Teams PowerShell.
History of the Microsoft Teams PowerShell Modules
Last year, Microsoft made improvements to the Microsoft Teams PowerShell module by incorporating the
New-CsOnlineSession command. This command came from the Skype for Business Online Windows PowerShell module for connecting to Skype for Business Online.
With the inclusion of the command, administrators no longer needed to download both the Microsoft Teams PowerShell module and the Skype for Business Online Windows PowerShell module. You used the one module to connect to both, although you still had to use two different PowerShell commands to do so.
This improvement also came at the announcement that Microsoft planned to retire the Skype for Business Online Windows PowerShell module. This module is no longer available for download after February 2021. Microsoft will stop accepting remote PowerShell sessions using this module later in 2021.
Release of the New Microsoft Teams PowerShell Module
While it was nice that Microsoft included both connect commands in the same PowerShell module, I did not expect release version 2.0.0 this previous week. This latest version removes the
New-CsOnlineSession command in favor of the single
While a welcome improvement, this change requires administrators to eventually update any scripts or automation using the
New-CsOnlineSession command (or purposefully use older versions of the module).
If you don’t have an existing installation of the Microsoft Teams PowerShell module, use the
Install-Module command to install the module from the PowerShell Gallery.
Install-Module -Name MicrosoftTeams
If you receive a warning about installing from an untrusted repository, select the Yes option to continue. If you receive a warning about requiring administrators rights to install for all users, scope the install to the current user, like this:
Install-Module -Name MicrosoftTeams -Scope CurrentUser
Updating the Microsoft Teams PowerShell Module
Get-Module command to view what version of the module is currently installed. If the module is not currently imported, add the
-ListAvailable parameter to your command.
Get-Module -Name MicrosoftTeams -ListAvailable
If you already have the Microsoft Teams PowerShell module installed, use the
Update-Module command to install to the latest version. PowerShell will download the latest binaries for the module.
Update-Module -Name MicrosoftTeams
The module includes more commands formerly found in the Skype for Business Online Windows PowerShell module. These commands are the ones you are probably familiar with that include Cs, CsOnline, or CsTeams. The commands were previously made available when you imported the Skype Online remote PowerShell session but are now part of the module.
Connecting to Skype Online and Teams PowerShell
As already mentioned, you now use
Connect-MicrosoftTeams to connect to both the Microsoft Teams and Skype for Business Online PowerShell sessions. Let’s take a look at some examples using different versions of PowerShell.
Windows PowerShell 5.1
In Windows PowerShell version 5.1, running
Connect-MicrosoftTeams with additional parameters will prompt you to sign in to your account. In my case, it already pre-populated with an account that is connected to Windows.
Once connected, PowerShell displays information about the tenant including Account, Environment, Tenant, and TenantId. This output is very similar to the output generated by the Azure AD PowerShell module. Once connected, you can run both Microsoft Teams and former Skype Online PowerShell commands.
To avoid the prompt, save your credentials to a variable using the Get-Credential command. Another window will prompt for the username and password input. Use this variable with the -Credential parameter to make the connection.
$creds = Get-Credential Connect-MicrosoftTeams -Credentials $creds
While Microsoft still has a warning about PowerShell 7 and Teams PowerShell compatibility, I have used PowerShell 7 in the past without issue. However, as always, your mileage may vary.
Connect-MicrosoftTeams in PowerShell 7, PowerShell opts for browser-based authentication instead and displays a code to use for authentication.
You navigate to https://microsoft.com/devicelogin and enter the code to authenticate. With the code entered, enter a username and password or select an existing account to log in. Once successfully authenticated, close the browser window and return to the PowerShell console.
Check out more information about working with PowerShell 7 in Exploring New Functionality in the Microsoft Teams PowerShell Module.
It is finally nice to see Microsoft consolidating the different modules used to manage Microsoft Teams and provide a single connect command. However, this update requires script writers to account for multiple versions of the module and their respective capabilities.
Enjoyed this article? Check out more of my articles on Microsoft Teams by clicking here.