Category: PowerShell

How to Put Teams Users and Skype for Business Users in the Same Room

If your organization has decided to move off its Skype for Business Server deployment to Teams, you’ll hit an in-between period. A time when some users are on Skype4B, and some have moved to Teams.

Can they still communicate with one another during this period?

It’s possible…but it’ll take some extra configuration. Let’s talk about what you’ll need to do.

How to Make Skype for Business and Teams Talk to One Another

Before any Skype4B user can talk to a Teams user, the disparate systems have to talk to one another. Therefore, you’ll need to setup communications between your Skype for Business Server and your Teams tenant.

Teams-Skype4B Users Talking

Teams—Skype for Business connection in dog form.
Photo by Kyle Smith on Unsplash.

Most of the work’s done on the Skype side for this. You must change Skype for Business to work in “Native Interop” mode. Here’s some migration and interoperability guidance on the basics.

Essentially, any on-prem deployment must move to a Hybrid deployment. If you already run Skype4B in Hybrid mode, half the work’s already done. You can skip the Part 1 section below & move to Part 2.

But before you do that, let me call out a major communication limitation.

Limitations on Native Interop

Before we dive into the config work required, let me make this point. Users talking between Skype for Business and Teams will have ONLY TWO TOOLS to communicate:

  • One-to-one IM/Chats
  • Voice calls

That’s it. No video conference, no group chats, no emojis or file transfers. Not available.

If you have a long transition period, doing the config for this limited communication toolset may make sense. However, if you’re doing a fast cut-over (e.g., less than 4 months), then it doesn’t seem worth the time investment. I would recommend skipping it in that case.

Still here? Great! Let’s talk about making Teams and Skype4B talk.

Part 1: Setting Hybrid Mode with Azure AD Connect

If you’re not already familiar with Azure AD Connect, it’s basically a connection between your Skype for Business Server’s Active Directory and an Office 365 tenant. AD Connect synchronizes your users’ accounts in Active Directory with Azure Active Directory on O365, and vice versa.

This sets up the question of homing. If you created all of your users in your own on-prem Active Directory, then the users are ‘homed’ locally. If you have Teams users you created within your Office 365 tenant, those users are ‘homed’ in Azure Active Directory.

This is important for one reason: Interop between Teams and Skype for Business users only works if you home the user online.

Effectively, you’ll have to transfer all of your Skype for Business users up into the Teams O365 tenant. They’ll still use the on-prem server (in fact they won’t even notice the difference), but they have to live up there to talk to Teams users.

This post would run on forever if I detailed the whole AD Connect setup process. If you do need to set this up, please refer to these MS documentation pages:

Once you’ve verified AD Connect runs properly, you’ll be able to move Skype4B users up into Azure AD. Fortunately, this part’s not too time-consuming. You have two possible methods:

  1. Use the Move-CsUser cmdlet.
    • Example: “Move-CsUser -Identity username@yourdomain.com -Target sipfed.online.lync.com -Credential $cred -HostedMigrationOverrideUrl $url”
  2. Use the Skype for Business Control Panel.
    1. Select Users in the Panel window.
    2. Use Find to locate the users you need to re-home.
    3. Select the users, and click the Action dropdown menu. Choose Move selected users to Skype for Business Online.
    4. In the wizard, click Next.
    5. You may see an Office 365 prompt. Sign in using an administrative account. (Must end in “.onmicrosoft.com”!)
    6. Click Next two more times to complete the move.

Now it’s time for Part 2.

Part 2: Change Users’ TeamsUpgrade Modes

Every Teams user has a mode assigned to it. Same with Skype4B users. The default mode is “Islands” – meant to signify the user as either on the Skype for Business ‘island’ or the Teams ‘island.’

Skype4 for Business Users Island Mode

Hey guys? Can anybody hear me? …hello?
Photo by Will Langenberg on Unsplash.

Now, that won’t work if we want people talking between islands. Each & every user, on both sides, needs to have this mode changed for interop.

Other possible modes are:

  • TeamsOnly – For Teams users only
  • SfBOnly – For Skype4B users only
  • SfBWithTeamsCollabAndMeetings – This is called “Meetings First,” meant for using Teams’ meetings as an introduction to the platform.
  • SfBWithTeamsCollab** – This is the mode we want. It facilitates native interop.

In SfBWithTeamsCollab mode, users still use Skype for Business for IM, calls, and meetings. (If you used SfBWithTeamsCollabAndMeetings mode, your users would use Teams for meetings instead. Everything else is the same.)

To change users’ modes, we’ll use the Grant-TeamsUpgradePolicy cmdlet.

If you want to do this user-by-user, use this format:

“Grant-CsTeamsUpgradePolicy -Identity username@yourdomain.com -PolicyName SfBWithTeamsCollab”

If you want to do it for all users, use this format:

“Grant-CsTeamsUpgradePolicy -PolicyName SfBWithTeamsCollab -Global”

As I understand, that’s pretty much it. Changing this mode allows Skype for Business users to chat with Teams users, after all the prerequisites are in place.

Dogs Playing Teams - Skype4B Users

Hey Bob, glad we can talk again. Let me show you this meme…
Photo credit: Bennilover via Photopin

(By the way, this process also sets up the users to move completely to Teams. It doesn’t mean you have to move them, but you save yourself time this way.)

Teams, Can You Hear Us Now? Good!

I remember our team having some serious issues with Azure AD Connect, the first time we hybridized a Skype for Business Server. (In fairness, that was over 3 years ago. The tech and documentation have improved since then.)

Still, I urge caution if you need to deploy it in your existing on-prem environment. If possible, use a staging environment to test AD Connect setup first, so you’re comfortable. I believe that’s what we did.

What’s your status with Teams and/or Skype for Business? Using one or both? Comment below on your communication situation.

Facebooktwitterlinkedinmail

How to Find the Active Users on Skype for Business Server

Reader Question: “How Can I Find Out the Number of Active Users on Skype for Business?”

A reader I’ll call Tom, with whom I’ve spoken a couple times now, had a question on Active Users. He wanted to know if there was a way he could, via the Control Panel or PowerShell, find the number of Lync/Skype4B users who were active right now.

Interesting question! He asked if there was a PowerShell cmdlet to find out – easily the fastest method. However, I don’t know of a cmdlet which displays active users for Skype for Business Server.

There IS a cmdlet which displays active users for Skype for Business Online. It’s:

Get-CsOnlineUser

Office 365 also has an Active Users Report for Skype for Business Online in its Admin Center.

Active Users Report in Office 365

(I really want one of these in Skype for Business Server, Microsoft…)

Getting a full list of active users on Skype4B Server? That’s a little more complicated.

Option 1: Monitoring Reports

If a certain user is active, you can find out with the Monitoring Reports. Specifically, the User Activity Report

Remember this screenshot? It came from a User Activity Report on our then-Lync Server.

calldiagperuser

With the User Activity Report you can see who’s active during a specific time period, and what peer-to-peer or conferencing sessions they’re in. It does serve to answer Tom’s question, but not in the most direct manner.

What about PowerShell?

Option 2: PowerShell Scripts

I checked several PowerShell cmdlets – Get-CsUser, Get-CsAdUser, etc. None would give me a list of active users on our Front End. I even tried the Get-CsOnlineUser on our server, just in case it did work. No such luck.

So I turned to scripts. Rather quickly I found two script-based options for listing active Skype4B users.

One, the incredibly powerful Get-CsConnections.ps1.
Script: Get-CsConnections.ps1 – See User Connections, Client Versions, Load Balancing in Lync Server: Ehlo World!

Written back in 2011, the author has updated the script multiple times, and it does work with Skype for Business Server.
It requires installation, the steps for which are documented in the post. (EDIT: According to the script’s developer, all you need to do is download and run. All the better!)

Get-CsConnections.ps1 has plenty of parameters to choose from. For instance, running the script to see the number of active users on a Front End Server named DEFAULT is:

Get-CsConnections.ps1 -Server DEFAULT -IncludeUsers

Get-CsConnections.ps1 Script Result

Image courtesy of Ehlo World! Blog.

The same blog also had the second option: a “oneliner” script using the Get-Counter cmdlet.
One Liner – See Number Of Connected Users, Endpoints On A Lync Front End Server: Ehlo World!

In order to use this, you’d need to know the specific counters for active users. They are, according to the post:
LS:USrv – Endpoint Cache\USrv – Active Registered Endpoints
LS:USrv – Endpoint Cache\USrv – Active Registered Users

The full “oneliner” script reads:

Get-Counter “\LS:USrv – Endpoint Cache\USrv – Active Registered Endpoints”,”\LS:USrv – Endpoint Cache\USrv – Active Registered Users” | Select-Object -ExpandProperty CounterSamples | Format-Table Path,CookedValue -Auto

A simple method for finding active users. Fewer steps too. But, not as many options as Get-CsConnections.ps1.

I find the underlying “counter” technology fascinating though…the post is definitely worth a read. I may dig further into it for later posts as well.

Impressive Use of PowerShell for a Deceptively-Thorny Problem

Great question Tom! Set me on a bit of a goose chase, but we wound up with some juicy tidbits as a result. Thank you to the Ehlo World! Blog as well for their stellar work.

What would you use Skype for Business Active User data for? Please email in or comment your thoughts.

 

(UPDATED JANUARY 22, 2020)

Facebooktwitterlinkedinmail