RDP Teams Optimierung unter Windows Server 2025

Teams new plain RDP optimiert

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. 🙂

Teams SlimCore Optimierung per RDP Client.

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:

RDP Teams Optimierung: IsWVDEnvironment Registry Wert
<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

Die gesuchte Lösung noch nicht gefunden oder benötigen Sie Hilfe bei anderen Themen aus meinem Blog? Nehmen Sie gerne Kontakt mit mir bzw. meinem Unternehmen Jan Mischo IT auf. Ich freue mich auf Ihre Anfrage: https://janmischo.it/kontakt/


+49 2801 7004300

info@janmischo.it


Beitrag veröffentlicht

in

,

von

Kommentare

12 Antworten zu „RDP Teams Optimierung unter Windows Server 2025“

  1. Nico

    Hi Jan, welche Vorteile bietet hier die MsRdpEx Erweiterung? Danke + Grüße Nico

    1. Moin Nico,

      ohne die MsRdpEx Erweiterung von Devolution kannst du dich ab einer Version neuer 1.2.4331 nicht mehr zu „normalen“ Terminalservern verbinden und erhältst folgenden Fehler:
      Remote Desktop Client ohne MsRdpEx

      [Window Title]
      Remotedesktop

      [Content]
      Die Verbindung wurde blockiert, weil die Verbindungsinformationen manipuliert wurden. Aktualisieren Sie entweder Ihren Arbeitsbereich oder wenden Sie sich an den Support, um Hilfe zu erhalten.

      [^] Details ausblenden [OK]

      [Footer]
      Weitere Tipps zur Behebung des Problems finden Sie im Leitfaden zur Problembehandlung

      [Expanded Information]
      Fehler Code: 0x1308
      Erweiterter Fehler Code: 0x0
      Zeit Stempel (UTC): 2024-08-13T06:11:35.292Z
      Aktivitäts-ID: 00000000-0000-0000-0000-000000000000

      Drücken Sie STRG+C zum Kopieren.

      In den neueren Version wurde auch eine Hand voll Sicherheitsrelevanter Lücken geschlossen, weshalb die alte Version nicht die erste Wahl ist. Mit der Remote Desktop Store App (Get started with the Remote Desktop app for Windows) sollte es allerdings out of the Box funktionieren. Die App wird allerdings nicht mehr weiterentwickelt.

      Gruß
      Jan

  2. Olaf

    Hallo zusammen

    Leider funktioniert das genau ein mal. Sobald man Teams zurücksetzt oder neu installiert steht „AVD Media optimiert“ und es funktioniert auch.

    Wenn dann Teams geschlossen wird steht beim nächsten mal „AVD SlimCore Media ist nicht verbunden.“

    Gibt es hier jemanden der dies auch hatte oder sogar schon lösen konnte?

    Grüsse Olaf

    1. Moin Olaf,

      auf Windows Server 2022 funktioniert es per WebRTC mit den letzten Teams Builds und aktuellem RD Client samt MsRdpEx wieder recht zuverlässig. SlimCore funktioniert im Moment auch bei mir nicht bzw. nur unter Citrix oder dem Azure Virtual Desktop. Du kannst allerdings den Wechsel auf SlimCore verbieten: https://learn.microsoft.com/en-us/microsoftteams/vdi-2#microsoft-teams-powershell-policy-for-optimization

      In diesem Artikel gibt es auch weitere Troubleshooting Tipps, wenn SlimCore nicht läuft. Wenn du die „andersrum“ angehest – und somit SlimCore blockst – sollte die Teams Optimierung im WebRTC Modus bleiben. 😉

      HTH
      Jan

  3. Jens Lehman

    Hey Jan,

    erst einmal vielen Dank für deine tolle Anleitung und deine Mühe.

    Wir kämpfen uns auch gerade durch das Thema und investieren unglaublich viel Zeit.

    Wir arbeiten mit RDS über einen 2022 Server und würden Teams gerne in der RDP-Sitzung vollwertig nutzen können. Wir sind nach deiner Anleitung vorgegangen und zumindest kurzzeitig klappt es über WebRTC auch super.

    Sobald der Wechsel zu SlimCore stattgefunden hat, sieht es dann schon wieder anders aus.

    „AVD SlimCore Media ist nicht verbunden“.

    Wir haben auch schon folgenden Regkey gesetzt:

    HKLM\Software\Policies\Microsoft\Windows\Appx

    Leider ohne Erfolg.

    Hast du eventuell noch eine Idee?

    1. Hi Jens,

      bei mir funktioniert es derzeit recht zuverlässig, solange ich auf WebRTC bleibe. SlimCore / VDI2 will gar nicht bzw. wenn funktioniert nur Audio. Daher entwender „VDI2Optimization“ global abschalten oder eben per custom „CsTeamsVdiPolicy“.

      Gruß
      Jan

      1. Jens Lehman

        Wie würden wir die „VDI2Optimization“ global abschalten bzw. das per „CsTeamsVdiPolicy“ regeln?

        1. Moin,

          oben das Update vom „08.11.“ lesen und dann nach unten unter die Screenshots scrollen und weiterlesen. 😉 Alternativ ist hier der Code um die vorhandene globale Policy zu bearbeiten:

          Connect-MicrosoftTeams

          Set-CsTeamsVdiPolicy -Identity "Global" `
          -VDI2Optimization "Disabled"

          HTH
          Jan

          1. Jens Lehman

            Vielen Dank,

            da hätte ich genauer lesen sollen. Entschuldige.

            Wie kann man danach nachvollziehen, ob der entsprechende User wirklich in der Policy ist? Im Teams Admin Center im Web sieht man das nicht oder?

          2. Hi,

            du siehst das AFAIK nur per PowerShell (Get-CsOnlineUser | fl DisplayName, UserPrincipalName, TeamsVdiPolicy). Die „Global“ greift für alle und taucht im vorherigen PowerShell Befehl nicht auf.

            Viele Grüße
            Jan

  4. Jens Lehman

    Irgendwie kann ich auf den letzten Kommentar (Jan Mischo – 27.11.24) nicht mehr antworten.

    Das hat wunderbar geklappt. Vielen, vielen Dank!

    1. Moin,

      wunderbar! Freut mich, das es jetzt funktioniert und danke für die Rückmeldung.

      Viele Grüße
      Jan

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.