Kurz vor dem Release von Windows Server 2025 hier einmal ein aktualisierter Beitrag zur RDP Teams Optimierung auf Plain Terminalservern ohne Citrix Virtual Apps & Desktops oder VMware bzw. Omnissa Horizon. Der im Beitrag „Teams Optimierung für Terminalserver – Jans Cloud“ beschriebene Weg funktioniert zwar immer noch. Hier nur einmal in aktuell und aufgeräumt für Teams new auf Remote Desktop Session Hosts unter Windows Server 2025.
Ein weiteres kurzes Update vom 08.11.2024: Mit den Teams new Versionen 24277.3507.3205.5228 und 24295.605.3225.8804 funktioniert die SlimCore VDI Optimierung derzeit gar nicht mehr. Dafür sieht es per WebRTC Optimierung wieder besser aus. 🙂 Wie die VDI2.0 bzw. SlimCore deaktiviert wird findet sich am Ende des Beitrags unter den Screenshots.
Ein kurzes Update am 11.09.2024 vorweg: Zum Einen funktioniert über diesen Weg auch die neue Teams Optimierung per SlimCore (VDI 2.0). Zum Anderen funktioniert die in den letzten Teams Versionen aber genau so „bescheiden“, wie der WebRTC Weg. Die Audio Optimierung ist bei beiden Wegen optimal und tadellos. Video wird meistens nur von einem Teilnehmer übertragen bzw. das eigene Bild wird allen Teilnehmern angezeigt. Warten wir mal ab, wie es hier weitergeht. 🙂
Zur Vorbereitung der Session Hosts auf Teams new benötigen wir weiterhin den Registry DWORD „IsWVDEnvironment“ mit dem Wert „1“ unter dem Schlüssel „HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Teams“. Der eleganteste Weg diesen auf die Terminalserver zu bekommen, ist meiner Meinung nach eine Gruppenrichtlinien Registry Einstellung:
<Registry clsid="{9CD4B2F4-923D-47f5-A062-E897DD1DAD50}" name="IsWVDEnvironment" status="IsWVDEnvironment" image="12" changed="2024-08-08 09:39:51" uid="{E70EDC74-2FF7-40D0-9325-1DCE6E350233}">
<Properties action="U" displayDecimal="0" default="0" hive="HKEY_LOCAL_MACHINE" key="SOFTWARE\Microsoft\Teams" name="IsWVDEnvironment" type="REG_DWORD" value="00000001"/>
</Registry>
Alternativ auf jedem Session Host folgenden PowerShell Code ausführen:
New-Item -Path "HKLM:\SOFTWARE\Microsoft\Teams" `
-Force
New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Teams" `
-Name IsWVDEnvironment `
-PropertyType DWORD `
-Value 1 `
-Force
Im nächsten Schritt muss auf allen Remote Desktop Session Hosts die aktuelle Microsoft Visual C++ Redistributable 2015- 2022 (Latest supported Visual C++ Redistributable downloads | Microsoft Learn) installiert werden. Im Anschluss folgt die Installation des neuesten Remote Desktop WebRTC Redirector Service (What’s new in the Remote Desktop WebRTC Redirector Service? | Microsoft Learn) auf den Terminalservern. Abschließend wird natürlich noch Teams new auf den Remote Desktop Servern benötigt. Dazu den aktuellsten Teams Bootstrapper sowie ggfs. den Teams new Offline Installer downloaden (Bulk deploy the new Microsoft Teams desktop client – Microsoft Teams | Microsoft Learn) und installieren:
# Online Installer
.\teamsbootstrapper.exe -p
# Offline Installer
.\teamsbootstrapper.exe -p -o "C:\Pfad\zum\MSTeams-x64.msix"
# Great Success bei erfolgreicher Installation ;)
{
"success": true
}
Jetzt vorsichtshalber noch einen Reboot der Session Hosts durchführen womit dann die Serverseite zur „plain RDP Teams Optimierung“ abgeschlossen ist.
Clientseitig wird jetzt nur noch der aktuellste Remote Desktop client (Connect to Azure Virtual Desktop with the Remote Desktop client for Windows – Azure Virtual Desktop | Microsoft Learn) benötigt sowie MsRdpEx von Devolutions (GitHub – Devolutions/MsRdpEx: Microsoft RDP Client Extensions). Abschließend kann über „Start“ -> „Ausführen“ -> „mstsc“ eine handelsübliche RDP Datei erstellt und nach belieben konfiguriert werden. Diese dann von <Meine schöne RDP Datei>.rdp in <Meine schöne RDP Datei>.rdpw umbenennen und die Dateiendung „rdpw“ der soeben installierten MsRdpEx Erweiterung „msrdcex.exe“ („%ProgramFiles%\Devolutions\MsRdpEx“) zum Öffnen zuweisen.
Sollte der Client auf die SlimCore bzw. VDI 2.0 Optimierung geswitched sein und die Optimization derzeit gar nicht funktionieren, hier die Schritte, um auf die Teams WebRTC Redirection zurück zu wechseln.
Dazu als erstes die Globale Teams VDI Policy anpassen. (Theoretisch sollte es auch mit einer Custom VDI Policy funktionieren):
Connect-MicrosoftTeams
Set-CsTeamsVdiPolicy -Identity "Global" `
-VDI2Optimization "Disabled"
<#
# Mit einer eigenen Policy:
New-CsTeamsVdiPolicy -Identity "DisabledVDI2Optimization" `
-VDI2Optimization "Disabled"
# Einzelnem User zuweisen:
Grant-CsTeamsVdiPolicy -Identity "Test.User@example.com" `
-PolicyName "DisabledVDI2Optimization"
# Zuweisung aufheben:
Grant-CsTeamsVdiPolicy -Identity "Test.User@example.com" `
-PolicyName $null
# Custom Policy entfernen:
Remove-CsTeamsVdiPolicy -Identity "DisabledVDI2Optimization"
#>
Im nächsten Schritt vorsichtshalber auf dem Client bzw. allen Clients die in den Userprofilen gesammelten Microsoft.Teams.SlimCoreVdi AppX Pakete entfernen:
Get-AppxPackage -Name Microsoft.Teams.SlimCoreVdi* |
Remove-AppxPackage
Im letzten Schritt habe ich in meinen Testumgebungen (Windows Server 2022 / 2025) noch die Benutzerprofile gelöscht und konnte mich im Anschluss an WebRTC optimierten Teams Meetings erfreuen. 🙂
Get-CimInstance -ClassName Win32_UserProfile |
Where-Object { $_.LocalPath -match "Test.User" } |
Remove-CimInstance
Ich gehe davon aus, dass es ausreicht an der richtigen Stelle im Teams Cache zu löschen bzw. den kompletten Teams Cache der Benutzerprofile zu löschen.
Das ist mein aktueller Stand vom 08.11.2024. Im Einsatz sind folgende Komponenten:
- Teams new
- 24277.3507.3205.5228
- 24295.605.3225.8804
- Remote Desktop Client
- 1.2.5799.0
- Devolution MsRdpEx
- 24.10.25.0
Schreibe einen Kommentar