The complete guide: Microsoft Teams on WVD

The complete guide: Microsoft Teams on WVD

I´ve been asked a lot of times during the past weeks, when features like “raise hand” or A/V redirect from the infrastructure point of view will be released and how to get started with Microsoft Teams on VDI.

I thought this might be a good reason to write a complete guide to help you perform a clean installation of Teams and skip the mistakes I initially did in misconfiguring FSLogix.

Table of Contents

Picture from my presentation slides 28th May 2020

Yesterday, the 28th May, I was speaking at the M365 marathon about the challenges, getting started with Microsoft Teams in WVD. Let me quickly summarize this slide to explain you the mentioned points:

  • Update Management
    As you might know, the Teams client, installed per user into the user´s profile is being updated on the fly. This is due to the reason, because the “Update.exe” is referenced as an entry point to start Microsoft Teams. To prevent, that the users are going to update the client on their own, we need to utilize the “machine-wide” installer, with some configurations to avoid, flooding the profile and keep the tested and current version.
  • Support for Operating Systems:
    It has been a very busy week for Microsoft, Windows 10 2004 with support for MSIX, new RDS Client, and another game-changing topic! But generally spoken, Teams is officially supported only on Citrix and WVD. Even though I´ve implemented it on VM Ware Horizon in combination with FSLogix User / Office365 profiles already.
  • Profile flooding:
    When you run Microsoft Teams in a “per-user” or “machine-wide” version, you might experience, that a user´s profile will grow at the first logon up to 4GB. This is a mess to plan, and a mess to keep. For that reason I will show you a simple trick, to keep small user profiles with fast performance!
  • Hardware redirection for Webcams / Audio devices:
    Yes, this was a pitty. With the new Spring Release you are able to change the RDP settings directly from the ARM portal in the Host Pool settings, but why did Microsoft forgot one point of redirecting the Webcam / Video capturing devices? No issue for now, as we can use the Powershell to solve this problem quite quick! Technical explanation down below!
Chapter 1: The prerequisites and FSLogix Profile setup

The most important thing directly upfront, is a well User profile / Office 365 profile configuration! I´ve read so many times to get started with FSLogix while creating registry keys, but that´s not user friendly enough for an administrator in his IT company.

As you might know, this works as well pretty fine via Group Policy Objects!

Picture captured on Microsoft Docs page

All you need to do is, open the Microsoft Docs link here and click on the “Download FSLogix” link mentioned in the article. This will download the latest FSlogix Apps available (Currently version 2.9.7349.30108).

After you´ve opened the ZIP package, you will also find the latest ADML / ADMX templates to be copied to your Group Policy Central store.

Now, that you´ve successfully imported the GP templates, we can go and create a new Group Policy object for our Session Hosts. The following screenshot presents you my configuration, how I did it for my environment:

The lessons I´ve learned about FSLogix and Microsoft Teams in every environment is, that never operate a user profile without any kind of exclusions. As you can see in the highlighted area I defined an exclusion besides the typical configuration settings like “Enabled”, “VHD location”, “Dynamic VHD(X) allocation” and so on.

Let´s zoom on that setting:

Actually I just referenced a folder, which can be accessed by the users at the user logon. Beneath this directory FSLogix is searching for a file that must be named “redirections.xml“.

<?xml version="1.0" encoding="UTF-8"?>
<FrxProfileFolderRedirection ExcludeCommonFolders="<VALUE>">
<Excludes>
<Exclude Copy="0">AppData\Roaming\Microsoft\Teams\Service Worker</Exclude>
<Exclude Copy="0">AppData\Roaming\Microsoft\Teams\Cache</Exclude>
<Exclude Copy="0">AppData\Roaming\Microsoft\Teams\Logs</Exclude>
<Exclude Copy="0">AppData\Roaming\Microsoft\Teams\media-stack</Exclude>
</Excludes>
<Includes>
</Includes>
</FrxProfileFolderRedirection>

The screenshot above represents the exclusions I made for my organization, which represents Teams only values.

I figured out, that while setting these exclusions, the user profile will be kept small and the personal settings made by all users can be changed and will be saved too! The advantage of this solution is, that we don´t need to run any scripts of shrinking our FSLogix profile, we don´t need to “Optimize-VHD” via Powershell with Hyper Management Tools.

Try this out and report your experience to me! I would be really interested.

But to give you a proof, how the FSLogix profile grows without and with this redirections, have a look at those two screenshots. In both scenarios, I´ve used an account called “Scott”, who is privileged to have an FSLogix user profile.

Before redirections.xml implementation:

AMAZING – as you can see this is the result after the first logon and starting Microsoft Teams for the first time (and no, this is not the per-user installation…)

And this is the result after the recreation of the profile and setting the “redirections.xml” as mentioned above.

And this is what we expect from our Teams deployment at the first logon. The user profile has only 292 MB instead of 4GB without adding a simple redirections.xml.

Chapter 2: The installation process – Teams machine-wide installer

Now that we´ve configured the redirections.xml file in our GPO, we can get started of installing the Teams Client on our Golden Image, or other preferred installation.

To download the MSI version of Teams you can follow those links for:

After we´ve successfully downloaded our preferred client, we need to fulfill one prerequisite before installing the Teams client. We need to set a registry Key to tell our future Session Host, that he will be used for WVD, which requires to set the following REGKEY:

Create a new Key under: HKLM\Software\Microsoft

Call the Key: Teams

From within here create a REG_DWORD record which is called “IsWVDEnvironment” (without brackets) and set it to 1.

Last but not least you just need to run a Powershell command to initiate your installation.

msiexec /i %Your Teams Installer%.msi ALLUSER=1

You see that I´ve used a parameter called “ALLUSER=1” at the end of the command, but why didn´t I use the “ALLUSERS=1” parameter? I think there is no better explanation than from Microsoft itself, read it here:

Captured from Microsoft Docs

The ALLUSER=1 specifies the installation mode for our session host, which is the “machine-wide” installer.

After we´ve performed these steps, our setup is complete and we can head over to the next point – How to enable our Webcam / Video Camera / Microphone in WVD?

Chapter 3: Device Management in WVD for Microsoft Teams

Like I mentioned earlier in this article, there are already some configurations that can be made from within the WVD ARM (Azure Resource Manager) Portal already. Let´s have a look of what´s possible today!

  • To get started, log into your Azure tenant with administrative permissions and select Windows Virtual Desktop from the Azure services, or search for it in the navigation search menu.
  • Now we select “Host pools” on the left hand navigation menu.
  • After that, select the Host pool you´ve already configured! If you don´t have any WVD environment yet, you can create one by clicking on “+ Add” from above. In my case I select the created Host Pool called “KCLD-WVD-HPDEV”.
  • On the next tab, which opens, we can see an overview of our Host pool. To define the settings, especially for our end users to see which devices or signals will be redirected, we need to click on “Properties”
  • In the center of the screen we can see two types of configurations that can be performed -> Basic and RDP settings. We click on RDP settings from the top navigation
  • The problem we will identify quite soon is that we are not able to select, how our webcams will be redirected right?
  • Configurations that can be done from this portal are standard values like Disk redirections, Printer redirections, Audio in- and output! That means that all standard configurations can be performed over here.

But finally, how to get started with Webcams???

  • To enable camera redirection start your PowerShell
  • Install the new WVD Powershell module for the spring release of WVD by typing: Install-Module Az.DesktopVirtualization
  • After successfully installing the module, import it by simply typing:
    Import-Module Az.DesktopVirtualization
  • Now connect to your Azure tenant by typing:
    Connect-AzAccount
  • Once you´re logged in, you can verify your current configuration by typing:

    Get-AzWvdHostPool -ResourceGroupName %ResourceGroup of HostPool% -Name %HostPool name%| fl Name,CustomRDPProperty

    Please replace, the resource group and the name of your host pool with your values. When you hit enter, you can see the following values.
  • To enable your camera redirection, we need to add one value to the current settings. Copy the content from “CustomRDPProperty” and create a variable where you copy the content and extend one value called “camerastoredirect:s:*”
  • The end result looks like this:
  • Now, we just need to update our Host Pool settings and you can directly start calls from within Teams, while having your camera redirected properly. To update the Host Pool type:

    Update-AzWvdHostPool -ResourceGroupName %ResourceGroup of HostPool% -Name %HostPool name% -CustomRdpProperty $rdpproperties
  • Finally, it looks like this.

If you need to add more values to your Host Pool, please have a look at the “Supported RDP file settings” from the Microsoft official documentation – please click here to go there directly.

Chapter 3.1: Script to activate Camera Redirection on host pools directly

If you just need the Powershell commandlets for the future, please see this code to skip the explanations of above:

### Variables - Please replace Resource Group and HostPool with your values ###
$RGHP = %Your Resource group for HostPools%
$HPName = %Your HostPool name%

### Install new Spring Release Powershell Module for WVD ###
Install-Module Az.DesktopVirtualization

### Import Module ###
Import-Module Az.DesktopVirtualization

### Login to Azure Account ###
Connect-AzAccount

### Retrieve current settings from HostPool ###
Get-AzWvdHostPool -ResourceGroupName $RGHP -Name $HPName | fl Name,CustomRDPProperty

### Store information in a variable ###
$rdpproperties = Get-AzWvdHostPool -ResourceGroupName $RGHP -Name $HPName | select CustomRDPProperty

### Update your Host Pool with new values ###
Update-AzWvdHostPool -ResourceGroupName $RGHP -Name $HPName -CustomRdpProperty $rdpproperties
Chapter 4: The long-awaited optimization for Microsoft Teams on Windows Virtual Desktop – A/V Redirect

This morning I was wondering, when I saw multiple people post that the A/V Redirect feature will be available from today. They provided with a link from Microsoft, where to download this feature.

After I followed the link to download the Remote Desktop WebRTC Service:
Click here to download

The following file has been downloaded to the golden image, where Teams will be operated later.

After the download I made multiple tests on different kinds of machines to identify if there are any problems during the installation – these could have been resolved by just installing the latest Microsoft Visual C++ Redistributable. I´ve also logged all parameters, that this installer provides. The list will be reviewed in another chapter.

The following steps have been performed on the golden image:

Step 1: License agreement
Step 2: Installation and automatic start of the installed service
Step 3: Finalization of service installation.

After finalizing the installation, let´s have a look at the services and here it is: Remote Desktop Services WebRTC Redirector.

Step 4: Validation, that the service is running properly

As mentioned in the description it “Allows the redirection of WebRTC for RDP connections”. By default, the service has been automatically enabled and started.

To verify that the installation of the optimization measurements succeeded, you can start the Teams application, login in and click on your user profile icon in the navigation bar and select “About” > “Version”. When you see “WVD Media Optimized” the operation succeeded. Attention! If Teams has been preinstalled with an older version, please perform an update to the latest version as described in chapter 2 of this article.

Step 5: Verification of service functioning

Lets try to do a test in our WVD environment with the latest version of Teams and the Remote Desktop App.

If you don´t have the Remote Desktop App installed in the latest version click here for:

Now, I´m going to start Microsoft Teams directly from the Remote Desktop App, as the application itself – I don´t connect to the Virtual Desktop first.

And with all the settings, we´ve defined in earlier chapters of this documentation, we are able to redirect the camera traffic directly to our Session Host without any problem.

In this example I´ve started a “Meet Now” Meeting with some of my colleagues to check how it´s working from my WVD environment to their environment, with the same changes implemented.

After a call of approximately 5 minutes I have to say that the performance of the Teams client is much better, than it was before in terms of video redirection. I reacts much faster, feels much more stable also in the case that multiple people are speaking.

Even functionalities like the background blur are working properly.

UPDATE: 01.06.2020 – Dean Cefola did a great video, which has been released today on how to get started with A/V redirect! As I couldn´t do it any better, enjoy his part 25 of the Azure Academy for WVD – TEAMS AV Redirections.

Conclusion

Microsoft Teams is a mandatory software components in modern workplaces. That the performance wasn´t given in previous versions of WVD is clear to me, because we´re still operating in public preview. The way how Microsoft reacted to the feedback of the Community is awesome, the installation of the service is straightforward and the results are better than expected.
I´m already looking forward to your feedback, I will soon create a video about the topics mentioned above and let you know when it will be released!

UPDATE: Microsoft has updated the official documentation as well, which can be retrieved here.

Thanks for reading, I hope I could help you with a few lessons learned from my previous installations of Teams in WVD environments.

Cheers,

Patrick

Please follow and like us: