Table of Contents
Part of Skype for Business Online Retirement Process

As has been well advertised, Microsoft will retire Skype for Business Online on July 31, 2021. Organizations should now be well on the way to deploying and using Teams to replace Skype for Business Online. Or, if they’re really brave, moving to a different communications platform.
The Skype for Business Connector includes the New-CsOnlineSession cmdlet, used to establish a new remote connection to the Skype for Business Online endpoint. Once a connection is made, the cmdlets used for policy management can be imported into a session and used. Documented in Office 365 notification MC230065 on 15 December, Microsoft will retire the Skype for Business Online connector on 15 February 2021.
Time to Check Scripts
Teams shares a common policy framework with Skype for Business Online, which means that to interact with Teams management policies through PowerShell, many scripts use the Skype for Business Online Connector.
Before the Connector is retired, organizations need to check any PowerShell scripts used to manage Teams management policies, such as:
- Bulk assignment of policy settings to user accounts.
- Managing Teams app setup policies.
- Controlling the background effects people can choose in Teams meetings.
- Allowing users to record personal meetings.
Teams PowerShell Module Replaces Connector
The Teams PowerShell module replaces the connector. Launched in September, version 1.1.16 and future versions contain New-CsOnlineSession and other cmdlets previously found in the connector:
Get-Command -Module MicrosoftTeams -Name *-Cs* CommandType Name Version Source ----------- ---- ------- ------ Function Get-CsBatchPolicyAssignmentOperation 1.1.6 MicrosoftTeams Function Get-CsGroupPolicyAssignment 1.1.6 MicrosoftTeams Function Get-CsUserPolicyAssignment 1.1.6 MicrosoftTeams Function New-CsBatchPolicyAssignmentOperation 1.1.6 MicrosoftTeams Function New-CsGroupPolicyAssignment 1.1.6 MicrosoftTeams Function Remove-CsGroupPolicyAssignment 1.1.6 MicrosoftTeams Cmdlet Get-CsOnlinePowerShellEndpoint 1.1.6 MicrosoftTeams Cmdlet Get-CsPolicyPackage 1.1.6 MicrosoftTeams Cmdlet Get-CsUserPolicyPackage 1.1.6 MicrosoftTeams Cmdlet Get-CsUserPolicyPackageRecommendation 1.1.6 MicrosoftTeams Cmdlet Grant-CsUserPolicyPackage 1.1.6 MicrosoftTeams Cmdlet New-CsBatchPolicyPackageAssignmentOperation 1.1.6 MicrosoftTeams Cmdlet New-CsOnlineSession 1.1.6 MicrosoftTeams
To use the cmdlets used for Teams policy management, you don’t need to connect to Teams before connecting to the Skype for Business Online endpoint; all that’s necessary is to install the latest version of the Teams PowerShell module and run these commands (Figure 1):
$TeamsPolicySession = New-CsOnlineSession -Credential $O365Cred Import-PsSession $TeamsPolicySession -AllowClobber
Update March 6, 2021: Microsoft has updated the Teams PowerShell module to V2.0. In general, it’s best to use the latest version of a module but test it first! This version doesn’t require using New-CsOnlineSession to connect to the management end point.
Once a remote connection is made and the cmdlets are imported into a session, you can use policy management cmdlets like Get-CsTeamsMeetingPolicy and Cs-TeamsMessagingPolicy. Updating scripts should be a matter of making sure that the cmdlets are loaded from the Teams module and removing any reference to the Skype for Business Online connector.
The Missing Enable-CsOnlineSessionForReconnection Cmdlet
The Teams PowerShell module doesn’t currently feature the Enable-CsOnlineSessionForReconnection. This cmdlet enables a session connected to the Skype for Business endpoint to reconnect it it times out. A timeout can happen at random intervals. In most cases this isn’t a problem as the interaction with Teams policies and other cmdlets accessed through this endpoint is often brief. If you work with the policy and management cmdlets for extended period, consider using this script to mimic the functionality of the Enable-CsOnlineSessionForReconnection cmdlet. Run it in your session after importing the Skype for Business Online cmdlets.
It’s easy to miss out on small but important details like the retirement of a connector. Other books don’t cover stuff like this because they are written once and then published. The Office 365 for IT Pros eBook is refreshed with changes and republished monthly to our subscribers.
I still don’t see cmdlet Enable-CsOnlineSessionForReconnection in Teams module. Also certificate authentication works only for Teams cmdlet, it fails for SfB online cmdlets. I dont think this fill be available before the retire connector module.
Minor Tweak for your example script Tony.
Import-PsSession $TeamsPolicySession -AllowClobber
Hello
For Enable-CsOnlineSessionForReconnection there is this tip https://get-itips.capazero.net/posts/s4b-reconnect-teams
But on my side I have issue with accounts MFA enabled:
New-CsOnlineSession : Connecting to remote server api.interfaces.records.teams.microsoft.com failed with the following error message : The WinRM client cannot process the request. It cannot
determine the content type of the HTTP response from the destination computer. The content type is absent or invalid. For more information, see the about_Remote_Troubleshooting Help topic.
At line:1 char:15
Any person have same issue?
Did you find the solution? I have the same issue with MFA
you’re my saviour. I have about 20 Microsoft help site windows open and not one of them helped at all. Needed to check that we have attendee list download enabled. You helped a lot, thank you
How can I change the CsTenantFederationConfiguration in MicrosoftTeams powershell?
The same way as you did it with the Skype for Business Online connector, except that you must connect to Microsoft Teams first (Connect-MicrosoftTeams). Once that’s done, connect to the Skype endpoint and run Set-CsTenantFederationConfiguration.
Where can I find the Skype for Business Online Connector – it is no longer avaiable to install, anyone has the nuget package?
Thanks!
Install the Microsoft Teams module. The cmdlets are now included in it. https://office365itpros.com/2021/03/10/microsoft-updates-teams-powershell-module-2-0/
Hi Tony thank you for your invaluable work. I can’t find anymore the command Set-CsTeamsMeetingPolicy could you help me in some way? Thankyou in advance Luca
The command is in the Microsoft Teams 2.0 PowerShell module. https://office365itpros.com/2021/03/10/microsoft-updates-teams-powershell-module-2-0/
Thank you Tony, it worked but I had to move on another PC. I don’t know why but the first one did not show all the cmdlets even if module 2.0 was installed.
Using connect-microsoftteams for me doesn’t load all sfbo cmdlets. I uninstalled the skype online connector and rebooted and have teams powershell 2.0.0.
Any ideas?
I’m using the following commands per microsoft
Import-Module MicrosoftTeams
$credential = Get-Credential
Connect-MicrosoftTeams -Credential $credential
Why are you importing the module?
Which cmdlets are you missing?
All I ever do is run Connect-MicrosoftTeams and I get to all the SBO cmdlets that I have looked for. Admittingly, I have not tried every cmdlet, but certainly all the common policy cmdlets are available.
Hi Tony,
Thanks for this info, i’ve updated to the module 2.0 and most cmdlts are working as expected.
However i can’t get the ‘Start-CsExMeetingMigration’ to fire. It will not be recognized as a cmdlt. If i run the ‘Get-commands’ then it shows up, but it will not work at all.
I’m following this approach to use the MMS.
https://github.com/microsoft/FastTrack/tree/master/samples/teams-upgrade-snippets
Kr/
Microsoft has just updated the Teams module to 2.1 (preview). This fixes some of the problems observed in the 2.0 release. Maybe you can try that. If it doesn’t work, I will raise an issue with Microsoft (you should too by filing a service ticket).
I just checked with the 2.1 preview module, still no luck. I’ll report it to MS.
Sounds like a plan…
Our automation service uses 1.1.6, and that’s fine (for now).
However I’d like to switch to 2.3.0 and it seems doable – except for one thing:
The Set-CsUser cmdlet is significantly different (and much less capable) in 2.3.0 compared to 1.1.6.
I have not been able to find any documentation or any notes regarding this – only pointers to the old SfB PS module documentation.
OLD> Set-CsUser -Identity x -EnterpriseVoiceEnabled $True|$False -OnPremLineUri x -HostedVoiceMail $True|$False ….
NEW> Set-CsUser -Id x -Body x -EnterpriseVoiceEnabled -HostedVoiceMail (x?) -PhoneNumber x
And I get “Access Denied” when using the new version.
There’s been some chat in the MVP community about issues with the switchover of the old Skype for Business Online cmdlets to Teams. I think you should file a support incident for this issue to make Microsoft aware of the problem formally. It will help move things forward.
If you can, post the SRX number here and I will make sure the dev group knows about it.
Thank you, I have filed SR#25466046 with the Office 365 team.
It appears to me that 2.3.0 is the latest, stable version – am I totally wrong? Did somebody forget adding “-preview” to that release?
https://www.powershellgallery.com/packages/MicrosoftTeams
And the release notes do not even mention that version:
https://docs.microsoft.com/en-us/MicrosoftTeams/teams-powershell-release-notes
Have a nice day 🙂
Microsoft has released 2.3.0. They just didn’t update the release notes (yet). Some issues are surfacing with the release. It might need some more work…