Currently, we are engaged in multiple Azure Virtual Desktop and Citrix projects where the new Teams version is a significant focus. Through our migration process to the new Teams, we have acquired valuable insights and developed scripts that we wish to share with you.
End of Life – Teams classic (V1) per June 30th, 2024
Microsoft is transitioning to the new Teams (V2) and phasing out the classic Teams (V1). Classic Teams will remain functional until June 30th, 2024. For EUC admins, this necessitates migrating to the new Teams (V2) within the forthcoming months across Citrix, VMware Horizon, or Azure Virtual Desktop environments. Therefore, it’s advisable to initiate this migration promptly to ensure sufficient time before the deadline on June 30th, 2024.
Source: https://learn.microsoft.com/en-us/azure/virtual-desktop/teams-on-avd
Classic Teams: End users will receive banners
Users of Classic Teams will begin to receive banners prompting them to upgrade to the new Teams. Since non-persistent images are utilized across various EUC products, updating the image with the new Teams is essential. Starting from February 1st, 2024, end users still using Classic Teams will receive banners:
After March 31st, 2024, additional banners will be sent to users, if applicable:
Microsoft has published an article detailing the end of availability for the classic Teams client here: https://learn.microsoft.com/en-us/microsoftteams/teams-classic-client-end-of-availability
FSLogix 2210 hotfix 3 – new Teams data will be saved in container
With the installation of the new Teams client, user data will only persist between sessions if the latest FSLogix 2210 Hotfix 3 version is installed. Failure to install this version will result in end users experiencing issues such as the inability to retain personal Teams settings across sessions. Common complaints include having to restore Teams background settings daily. This version is now GA!
The release notes of FSLogix 2210 hotfix 3 are as follows:
Source: https://learn.microsoft.com/en-us/fslogix/overview-release-notes
If you are using other solutions than FSLogix, like Citrix Profile Containers, please include the correct Microsoft Teams paths. See Profile and cache location for the new Teams Client: https://learn.microsoft.com/en-us/microsoftteams/new-teams-vdi-requirements-deploy#profile-and-cache-location-for-new-teams-client
Installation of new Teams V2 with single image management
Referencing the documentation provided https://learn.microsoft.com/en-us/microsoftteams/new-teams-vdi-requirements-deploy, there are several methods available to update or install the new Teams in your environment. Microsoft provides guidance for Azure Virtual Desktop, Citrix and VMware Horizon deployments. Leveraging our extensive experience with automation, we have developed installation scripts that we are eager to share with you.
WebRTC installation (Azure Virtual Desktop)
When using Azure Virtual Desktop or Windows 365, install WebRTC first, as we did with the previous classic Teams: https://learn.microsoft.com/en-us/azure/virtual-desktop/whats-new-webrtc
Below is a PowerShell script to download the latest MsRdcWebRTCSvc:
# Download latest WebRTC MSI from Microsoft and was take from this URL: https://learn.microsoft.com/en-us/azure/virtual-desktop/whats-new-webrtc Write-Host "##[command]Downloading latest AVD Remote Desktop WebRTC Redirector Service Installer file" $ProgressPreference = 'SilentlyContinue' #Disabling the Progress Speeds the process up Invoke-WebRequest -UseBasicParsing -Uri "https://aka.ms/msrdcwebrtcsvc/msi" -OutFile "C:\Windows\Temp\MsRdcWebRTCSvc_x64.msi" $ProgressPreference = 'Continue' #Enable Progress Again Write-Host "Done" |
Unattended install parameters for MsRdcWebRTCSvc:
msiexec.exe /i "C:\Windows\Temp\MsRdcWebRTCSvc_x64.msi" Reboot=ReallySuppress /qn |
WebSocketService registry key (Citrix VDA)
For Citrix VDA, it is necessary to set the following registry key:
Source: https://docs.citrix.com/en-us/citrix-virtual-apps-desktops/multimedia/opt-ms-teams.html
Below is a PowerShell script to set the registery keys for Citrix:
#Add Registry Keys
New-Item -Path "HKLM:\Software\WOW6432Node\Citrix" -Name "WebSocketService" -Force -ErrorAction Ignore
New-ItemProperty -Path "HKLM:\Software\WOW6432Node\Citrix\WebSocketService" -Type "MultiString" -Name "ProcessWhitelist" -Value "msedgewebview2.exe" -force
|
IsWVDEnvironment registry key (Azure Virtual Desktop/Windows 365)
When using Azure Virtual Desktop, ensure the IsWVDEnvironment registry key is set before installing the new Teams. For Citrix or VMware Horizon, install their agent software before proceeding with the new Teams installation.
#Add the IsWVDRegistryKey | Still a requirement https://learn.microsoft.com/en-us/microsoftteams/new-teams-vdi-requirements-deploy New-Item -Path "HKLM:\SOFTWARE\Microsoft\Teams" -Force New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Teams" -Name IsWVDEnvironment -PropertyType DWORD -Value 1 -Force |
Installing the latest new Teams via offline install method
The new Teams can be installed using various methods. In our automated single-image deployment, we opt for the offline install method. Here’s how.
Download the most recent Teams bootstrapper and MSIX file:
#https://learn.microsoft.com/en-us/MicrosoftTeams/new-teams-bulk-install-client | Option 1B: Download and install new Teams using an offline installer $urlTeamsBootstrapper = "https://go.microsoft.com/fwlink/?linkid=2243204&clcid=0x409" $urlTeamsMSIX = "https://go.microsoft.com/fwlink/?linkid=2196106" # Download latest MSI from Microsoft and was take from this URL: https://docs.microsoft.com/en-us/microsoftteams/msi-deployment $ProgressPreference = 'SilentlyContinue' #Disabling the Progress Speeds the process up Write-Host "##[command]Downloading latest Microsoft Teams v2 Bootstrapper file" Invoke-WebRequest -UseBasicParsing -Uri $urlTeamsBootstrapper -OutFile "C:\Windows\Temp\teamsbootstrapper.exe" Write-Host "Done" Write-Host "##[command]Downloading latest Microsoft Teams v2 MSIX file" Invoke-WebRequest -UseBasicParsing -Uri $urlTeamsMSIX -OutFile "C:\Windows\Temp\MSTeams-x64.msix" Write-Host "Done" $ProgressPreference = 'Continue' #Enable Progress Again |
Unattended install parameters for the new Teams:
C:\Windows\Temp\teamsbootstrapper.exe -p -o C:\Windows\Temp\MSTeams-x64.msix |
At successful installation, the output of the teamsbootstrapper.exe will be (exitcode 0):
To prevent auto-updating of the new Teams, utilize the following registry key. Note that this is only applicable for new Teams builds higher than 23306.3314.2555.9628 in VDI:
# Disable new Teams auto update # To prevent new Teams from auto updating, use the following registry key on the virtual machine. Only new Teams builds higher than 23306.3314.2555.9628 in VDI can process this registry key. # Source: https://learn.microsoft.com/en-us/microsoftteams/new-teams-vdi-requirements-deploy#disable-new-teams-autoupdate Write-Host "##[command]Disabling new Teams auto update" New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Teams" -Name disableAutoUpdate -PropertyType DWORD -Value 1 -Force
|
Microsoft TeamsMeeting Addin for Microsoft Outlook
When the new Teams is installed, it will try to install the Microsoft Teams Meeting Addin in the user context, when the new Teams is launched. If you implemented security right, this installation will be blocked in the user context. Result: users cannot schedule Teams meetings from Microsoft Outlook. There are possibilities to allow this user-based installation, but we just install it in C:\Program Files (x86) on image build. Installing it in program files is available for anyone on the system.
Install script for the Microsoft Teams Meeting Addin:
msiexec.exe /i "$((Get-ChildItem -Path 'C:\Program Files\WindowsApps' -Filter 'MSTeams*').FullName)\MicrosoftTeamsMeetingAddinInstaller.msi" Reboot=ReallySuppress ALLUSERS=1 TARGETDIR="C:\Program Files (x86)\Microsoft\TeamsMeetingAddin" /qn |
And register the Microsoft Teams Addin to the registry:
#Add Registry Keys for loading the Add-in New-Item -Path "HKLM:\Software\Microsoft\Office\Outlook\Addins" -Name "TeamsAddin.FastConnect" -Force -ErrorAction Ignore New-ItemProperty -Path "HKLM:\Software\Microsoft\Office\Outlook\Addins\TeamsAddin.FastConnect" -Type "DWord" -Name "LoadBehavior" -Value 3 -force New-ItemProperty -Path "HKLM:\Software\Microsoft\Office\Outlook\Addins\TeamsAddin.FastConnect" -Type "String" -Name "Description" -Value "Microsoft Teams Meeting Add-in for Microsoft Office" -force New-ItemProperty -Path "HKLM:\Software\Microsoft\Office\Outlook\Addins\TeamsAddin.FastConnect" -Type "String" -Name "FriendlyName" -Value "Microsoft Teams Meeting Add-in for Microsoft Office" -force |
Some notes
If you do nothing, the new Teams is pushed by Microsoft to the user profile. You can avoid this by disallowing the new Teams via the organization settings of the Microsoft Teams service. This can result in some weird situations in your non-persistent environment as users start to use the new Teams. At one of my customers, we got massively support tickets about:
- Teams isn’t remembering my personal settings, I need to set my Teams background every morning.
- I cannot schedule Teams meetings in my Outlook Calander anymore. The “Teams meeting” button is missing.
- I have two versions of Teams. Which one should I use?
It might be a good idea to switch in a controlled way to the new Teams.
Please note, that if you do not migrate, classic Teams will not work in your environment after June 30th, 2024.