Part of Skype for Business Online Retirement Process
Figure 1: Running the New-CsOnlineSession cmdlet
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:
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):
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.
24 Replies to “Skype for Business Online Connector Retires in February 2021”
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.
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?
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
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.
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
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.
Loading...
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
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.
Loading...
Sounds like a plan…
Loading...
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.
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…
{"id":null,"mode":"button","open_style":"in_modal","currency_code":"EUR","currency_symbol":"\u20ac","currency_type":"decimal","blank_flag_url":"https:\/\/office365itpros.com\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/blank.gif","flag_sprite_url":"https:\/\/office365itpros.com\/wp-content\/plugins\/tip-jar-wp\/\/assets\/images\/flags\/flags.png","default_amount":100,"top_media_type":"featured_image","featured_image_url":"https:\/\/office365itpros.com\/wp-content\/uploads\/2022\/11\/cover-141x200.jpg","featured_embed":"","header_media":null,"file_download_attachment_data":null,"recurring_options_enabled":true,"recurring_options":{"never":{"selected":true,"after_output":"One time only"},"weekly":{"selected":false,"after_output":"Every week"},"monthly":{"selected":false,"after_output":"Every month"},"yearly":{"selected":false,"after_output":"Every year"}},"strings":{"current_user_email":"","current_user_name":"","link_text":"Virtual Tip Jar","complete_payment_button_error_text":"Check info and try again","payment_verb":"Pay","payment_request_label":"Office 365 for IT Pros","form_has_an_error":"Please check and fix the errors above","general_server_error":"Something isn't working right at the moment. Please try again.","form_title":"Office 365 for IT Pros","form_subtitle":null,"currency_search_text":"Country or Currency here","other_payment_option":"Other payment option","manage_payments_button_text":"Manage your payments","thank_you_message":"Thank you for supporting the work of Office 365 for IT Pros!","payment_confirmation_title":"Office 365 for IT Pros","receipt_title":"Your Receipt","print_receipt":"Print Receipt","email_receipt":"Email Receipt","email_receipt_sending":"Sending receipt...","email_receipt_success":"Email receipt successfully sent","email_receipt_failed":"Email receipt failed to send. Please try again.","receipt_payee":"Paid to","receipt_statement_descriptor":"This will show up on your statement as","receipt_date":"Date","receipt_transaction_id":"Transaction ID","receipt_transaction_amount":"Amount","refund_payer":"Refund from","login":"Log in to manage your payments","manage_payments":"Manage Payments","transactions_title":"Your Transactions","transaction_title":"Transaction Receipt","transaction_period":"Plan Period","arrangements_title":"Your Plans","arrangement_title":"Manage Plan","arrangement_details":"Plan Details","arrangement_id_title":"Plan ID","arrangement_payment_method_title":"Payment Method","arrangement_amount_title":"Plan Amount","arrangement_renewal_title":"Next renewal date","arrangement_action_cancel":"Cancel Plan","arrangement_action_cant_cancel":"Cancelling is currently not available.","arrangement_action_cancel_double":"Are you sure you'd like to cancel?","arrangement_cancelling":"Cancelling Plan...","arrangement_cancelled":"Plan Cancelled","arrangement_failed_to_cancel":"Failed to cancel plan","back_to_plans":"\u2190 Back to Plans","update_payment_method_verb":"Update","sca_auth_description":"Your have a pending renewal payment which requires authorization.","sca_auth_verb":"Authorize renewal payment","sca_authing_verb":"Authorizing payment","sca_authed_verb":"Payment successfully authorized!","sca_auth_failed":"Unable to authorize! Please try again.","login_button_text":"Log in","login_form_has_an_error":"Please check and fix the errors above","uppercase_search":"Search","lowercase_search":"search","uppercase_page":"Page","lowercase_page":"page","uppercase_items":"Items","lowercase_items":"items","uppercase_per":"Per","lowercase_per":"per","uppercase_of":"Of","lowercase_of":"of","back":"Back to plans","zip_code_placeholder":"Zip\/Postal Code","download_file_button_text":"Download File","input_field_instructions":{"tip_amount":{"placeholder_text":"How much would you like to tip?","initial":{"instruction_type":"normal","instruction_message":"How much would you like to tip? Choose any currency."},"empty":{"instruction_type":"error","instruction_message":"How much would you like to tip? Choose any currency."},"invalid_curency":{"instruction_type":"error","instruction_message":"Please choose a valid currency."}},"recurring":{"placeholder_text":"Recurring","initial":{"instruction_type":"normal","instruction_message":"How often would you like to give this?"},"success":{"instruction_type":"success","instruction_message":"How often would you like to give this?"},"empty":{"instruction_type":"error","instruction_message":"How often would you like to give this?"}},"name":{"placeholder_text":"Name on Credit Card","initial":{"instruction_type":"normal","instruction_message":"Enter the name on your card."},"success":{"instruction_type":"success","instruction_message":"Enter the name on your card."},"empty":{"instruction_type":"error","instruction_message":"Please enter the name on your card."}},"privacy_policy":{"terms_title":"Terms and conditions","terms_body":null,"terms_show_text":"View Terms","terms_hide_text":"Hide Terms","initial":{"instruction_type":"normal","instruction_message":"I agree to the terms."},"unchecked":{"instruction_type":"error","instruction_message":"Please agree to the terms."},"checked":{"instruction_type":"success","instruction_message":"I agree to the terms."}},"email":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email address"},"success":{"instruction_type":"success","instruction_message":"Enter your email address"},"blank":{"instruction_type":"error","instruction_message":"Enter your email address"},"not_an_email_address":{"instruction_type":"error","instruction_message":"Make sure you have entered a valid email address"}},"note_with_tip":{"placeholder_text":"Your note here...","initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"empty":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"not_empty_initial":{"instruction_type":"normal","instruction_message":"Attach a note to your tip (optional)"},"saving":{"instruction_type":"normal","instruction_message":"Saving note..."},"success":{"instruction_type":"success","instruction_message":"Note successfully saved!"},"error":{"instruction_type":"error","instruction_message":"Unable to save note note at this time. Please try again."}},"email_for_login_code":{"placeholder_text":"Your email address","initial":{"instruction_type":"normal","instruction_message":"Enter your email to log in."},"success":{"instruction_type":"success","instruction_message":"Enter your email to log in."},"blank":{"instruction_type":"error","instruction_message":"Enter your email to log in."},"empty":{"instruction_type":"error","instruction_message":"Enter your email to log in."}},"login_code":{"initial":{"instruction_type":"normal","instruction_message":"Check your email and enter the login code."},"success":{"instruction_type":"success","instruction_message":"Check your email and enter the login code."},"blank":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."},"empty":{"instruction_type":"error","instruction_message":"Check your email and enter the login code."}},"stripe_all_in_one":{"initial":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"empty":{"instruction_type":"error","instruction_message":"Enter your credit card details here."},"success":{"instruction_type":"normal","instruction_message":"Enter your credit card details here."},"invalid_number":{"instruction_type":"error","instruction_message":"The card number is not a valid credit card number."},"invalid_expiry_month":{"instruction_type":"error","instruction_message":"The card's expiration month is invalid."},"invalid_expiry_year":{"instruction_type":"error","instruction_message":"The card's expiration year is invalid."},"invalid_cvc":{"instruction_type":"error","instruction_message":"The card's security code is invalid."},"incorrect_number":{"instruction_type":"error","instruction_message":"The card number is incorrect."},"incomplete_number":{"instruction_type":"error","instruction_message":"The card number is incomplete."},"incomplete_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incomplete."},"incomplete_expiry":{"instruction_type":"error","instruction_message":"The card's expiration date is incomplete."},"incomplete_zip":{"instruction_type":"error","instruction_message":"The card's zip code is incomplete."},"expired_card":{"instruction_type":"error","instruction_message":"The card has expired."},"incorrect_cvc":{"instruction_type":"error","instruction_message":"The card's security code is incorrect."},"incorrect_zip":{"instruction_type":"error","instruction_message":"The card's zip code failed validation."},"invalid_expiry_year_past":{"instruction_type":"error","instruction_message":"The card's expiration year is in the past"},"card_declined":{"instruction_type":"error","instruction_message":"The card was declined."},"missing":{"instruction_type":"error","instruction_message":"There is no card on a customer that is being charged."},"processing_error":{"instruction_type":"error","instruction_message":"An error occurred while processing the card."},"invalid_request_error":{"instruction_type":"error","instruction_message":"Unable to process this payment, please try again or use alternative method."},"invalid_sofort_country":{"instruction_type":"error","instruction_message":"The billing country is not accepted by SOFORT. Please try another country."}}}},"fetched_oembed_html":false}
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…