Problem
You’ve noticed that the following cmdlets fail with the error message indicating Skype for Business Online (SkypeOnlineConnector) PowerShell connections are blocked:
Import-Module SkypeOnlineConnector
$sfbSession = New-CsOnlineSession
New-PSSession : [admin0b.online.lync.com] Processing data from remote server admin0b.online.lync.com failed with the
following error message: Skype for Business Online PowerShell connections are blocked. Please replace the Skype for
Business Online PowerShell connector module with the Teams PowerShell Module. Please visit https://aka.ms/sfbocon2tpm
for supported options. For more information, see the about_Remote_Troubleshooting Help topic.
At C:Program FilesCommon FilesSkype for Business
OnlineModulesSkypeOnlineConnectorSkypeOnlineConnectorStartup.psm1:254 char:16
+ … $session = New-PSSession -Name $psSessionName -ConnectionUri $Connec …
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : OpenError: (System.Manageme….RemoteRunspace:RemoteRunspace) [New-PSSession], PSRemotin
gTransportException
+ FullyQualifiedErrorId : IncorrectProtocolVersion,PSSessionOpenFailed
PS C:WINDOWSsystem32> Import-PSSession $sfbSession
Import-PSSession : Cannot validate argument on parameter ‘Session’. The argument is null. Provide a valid value for
the argument, and then try running the command again.
At line:1 char:18
+ Import-PSSession $sfbSession
+ ~~~~~~~~~~~
+ CategoryInfo : InvalidData: (:) [Import-PSSession], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.PowerShell.Commands.ImportPSSessionCommand
As per the following Microsoft documentation:
Migrating from Skype for Business Online Connector to the Teams PowerShell module
https://aka.ms/sfbocon2tpm
Skype for Business Online (SkypeOnlineConnector) PowerShell connections will be rejected / blocked starting May 17, 2021 and to use Teams PowerShell Module for administration. However, attempting to use Connect-MicrosoftTeams and then executing the Set-CsUser cmdlet to enable a user for Enterprise Voice fails indicating it is not recognized:
Solution
One of the reasons why the Set-CsUser or any Cs- cmdlets will not work even if the MicrosofTeams module is used is if an old version is used. In order for the legacy Cs- cmdlets to be available, Teams PowerShell Module 2.0 or later needs to be installed and imported. The example above has an older module imported:
Get-Module
To update the module to the latest version, execute the following:
Uninstall-Module -Name MicrosoftTeams
Install-Module -Name MicrosoftTeams -RequiredVersion 2.0.0 -AllowClobber
Import-Module -Name MicrosoftTeams
The legacy Cs- cmdlets should now work:
Import-Module MicrosoftTeams
Connect-MicrosoftTeams
$usernameUPN = “tluk@contoso.com”
$extension = “tel:+7899”
Set-CsUser -Identity $usernameUPN -EnterpriseVoiceEnabled $true -HostedVoiceMail $true -OnPremLineURI $extension
Get-CsOnlineUser -Identity $usernameUPN | FL *uri
Grant-CsOnlineVoiceRoutingPolicy -Identity $usernameUPN -PolicyName “Toronto”
Grant-CsTenantDialPlan -PolicyName Toronto -Identity (Get-CsOnlineUser $usernameUPN).SipAddress