Teams VDI/RDP/RDS/Citrix

Die Nutzung von Microsoft Teams in Unternehmen ist auf mobilen Geräten, Tablets und Desktops sehr einfach möglich. Ein Sonderfall, der dabei aber oft unter den Tisch fällt, sind "Thin-Clients", die mittels Terminal Services (RDP) und ggfls. Citrix (ICA) die klassischen Office Dienste nutzen.

Besonderheiten

Beim Einsatz von Teams auf Thin Clients sind mir bislang drei Dinge als problematisch aufgefallen:

  • Ressourcenbedarf
    Auch im Juli 2019 gibt es nichts zu beschönigen: Der Teams Client benötigt deutlich mehr Hauptspeicher und CPU als z.B. ein Skype for Business Client. Das ist aber nicht nur bei den größeren Konferenzen mit mehreren Video-Streams der Fall, sondern selbst im Ruhe-Zustand ist mein Teams-Client bei 400MB+. Für eine Umgebung, auf der mehrere Clients auf dem gleichen Server nebeneinander arbeiten, ist Speicher kostbar um die Kosten der Server im Rahmen zu halten.
  • Datenablage
    Der Teams Client speichert Daten lokal im Verzeichnis "%userprofile%\AppData\Local\Microsoft\Teams" und auch "%userprofile\AppData\Roaming\Microsoft\Teams". Bei mir sind das 1,2 GBytesDamit stellt sich die Frage, wo in einer Terminal Server Umgebung das Profil der Benutzer vorgehalten wird. Das ist insbesondere wichtig, wenn Benutzer auf andere Host-Systeme wechseln. Die Daten sind neben Protokollen zu Fehlersuche auch Daten im "Cache" um Zugriffe zu beschleunigen.
  • Audio/Video (RTP)
    Vergleichbar zu Skype for Business sind natürliche die beiden Workloads "Sprache" und "Bild" eine Herausforderung. Citrix u.a. versuchen dies derart zu lösen, dass die Thin-Clients am Arbeitsplatz selbst RTP-Endpunkt sind und damit diese Daten nicht erst über den zentralen Server übertragen werden müssen.

Diese technischen Fakten sind aktuell nicht zu ändern.

Wenn Sie z.B. auf UserVoice nach Citrix suchen (https://microsoftteams.uservoice.com/forums/555103-public?query=citrix), dann finden Sie einige Treffe. Allerdings haben viele Einträge nur ganz wenig "Votes" oder werden pauschal beantwortet, wie z.B.

Performance has been and continues to be a big focus area for Teams. One main area we have made improvements in is responsiveness for the most frequent user actions of switching between Chat, Channel, and Activity. We are also focused on reducing resource consumption and application load time. More improvements are on the way.
Quelle: https://microsoftteams.uservoice.com/forums/555103-public/suggestions/17219609-teams-uses-600mb-and-is-super-slow

Teams AV Redirection

Anfang März 2020 hat Microsoft "Virtual Desktop on Azure" released. Damit sollen Desktops in Azure laufen und damit einen lokalen Terminal Server ersetzen. Das macht natürlich besonders viel Sinn, wenn die Daten eh schon in der Cloud sind. Das hat aber durchaus einen negativen Einfluss auf Audio/Video. Denn Die Daten gehen dann ja vom Client zu dessen Virtual Desktop und dann verschlüsselt weiter zum nächsten virtual Desktop und dann wieder zu anderen Client.


Quelle: Windows Virtual Desktop on Azure | Released Minute 09:08 https://youtu.be/QLDu6QVohEI?t=548

Das belastet die Leitung, die VMs und addiert Latenzzeit und ist insbesondere negativ, wenn die beiden Endpunkt am gleichen Standort stehen oder sogar das VoIP-Gateway (SBC) vor Ort steht. Hier kommt dann die Funktion "AV Redirection" in Teams zum Einsatz, damit ein passender Client direkt RTP spricht und damit zumindest bei 1:1 Calls die Verbindung lokal bleibt und direkt erfolgt.


Quelle:  Windows Virtual Desktop on Azure | Released Minute 09:24 https://youtu.be/QLDu6QVohEI?t=564

Die Verbindung nutzt WebRTC. Leider gibt es noch keine Aussagen dazu, wie das mit Meetings und Telefonanrufen ist.

Windows Virtual Desktop on Azure | Released
https://www.youtube.com/watch?v=QLDu6QVohEI

Windows Virtual Desktop 2020-Updates - Teams AV Redirect (ab 2:12)
https://www.youtube.com/watch?v=nLmBc9Khw8c&t=132s

Audio/Video mit Citrix

Für den Einsatz von Skype for Business auf Citrix-Servern gibt es ein "Skype for Business Optimization pack", welches aber anfangs nicht mit Teams genutzt werden konnte. Mittlerweile gibt es ein AdOn, damit zumindest in Verbindung mit Citrix diese Funktion wieder vorhanden ist. Eine etwas ältere Seite schreibt dazu

“Teams also has a per-machine installation for Chat and Collaboration. In the coming months, we’ll offer Calling and Meetings in Teams through Audio/Video Media optimization in collaboration with Citrix. We’re also planning additional Teams enhancements, including improved app deployment, support for Windows Virtual Desktop, performance enhancements, and optimized caching for non-persistent setups.”
Quelle https://www.microsoft.com/en-us/microsoft-365/blog/2019/07/01/improving-office-app-experience-virtual-environments/

Anscheinend gibt es also keine Überlegungen von Microsoft den RDP-Dienst von Windows Server dahingehend zu erweitern. Microsoft setzt voll auf virtuelle Desktops statt virtuelle Sessions. Aber Teams unterstützt die HDX-Erweiterung, wenn Sie denn korrekt installiert ist. Sie sehen das bei Teams bei der Anzeige der Information:

  • Optimized = HDX geladen und verbunden
  • Not Conected = HDX geladen aber keine Verbindung
  • Keine Anzeige = lokale HDX-Unterstützung fehlt

Denken Sie daran: Auf einem TerminalServer wird Teams gerne für alle User installiert und muss daher dann auch vom Administrator immer aktualisiert werden. Ein "SelfUpdate" durch den Anwender gibt es hier nicht

 

 

Auch auf YouTube finden sich mittlerweile einige Demos und Vorträge

Citrix HDX Optimization for Microsoft Teams
https://www.youtube.com/watch?v=e9AY9ULCyew

Demo of optimized web-based Microsoft Teams in a virtual environment
https://www.youtube.com/watch?v=S0fhM1HLyNE

Taking the Citrix and Microsoft partnership to the next level with Citrix Workspace - THR2239
https://www.youtube.com/watch?v=rGgWL29qamY

Citrix HDX Realtime Optimization Pack for Skype for Business
https://www.youtube.com/watch?v=sJRtDOiItC8

Allerdings betreibe und nutze ich keine Citrix-Server und kann daher keine weiteren Details dazu liefern

Microsoft selbst empfiehlt den Einsatz von Teams auf Terminal Servern nur ohne Audio/Video und beschreibt, wie sie über eine passende Konfiguration der Richtlinien die Nutzung von Teams für A/V deaktivieren.

Currently, Teams in a virtualized environment is available with support for collaboration and chat functionality with a dedicated persistent virtualized machine (VM).
The Teams calling and meeting experience isn't optimized for a VDI environment (coming soon). We recommend you set user-level policies to turn off calling and meeting functionality in Teams.
Quelle: Teams for Virtualized Desktop Infrastructure https://docs.microsoft.com/en-us/microsoftteams/teams-for-vdi

Die Konfiguration erfolgt allerdings pro Benutzer und nicht pro Server, so dass die Anwender über den Weg natürlich auch auf einem prinzipiell geeigneten Client von Audio/Video ausgeschlossen werden.

Teams native auf Thin Client

Wenn Sie sich einmal die "Thin Clients" von heute anschauen, dann sind diese keineswegs mehr "thin". Die meisten basierend auf einem PC, auf dem statt Windows ein Linux mit zentralem Management läuft und die schon länger weit mehr als nur einen ICA-Client oder RDP-Client starten können. Die meisten dieser ThinClients können neben TELNET, X11-Server und weiteren Terminalemulationen auch einen Browser starten. Da stellt sich dann schon dir Frage, ab wann der Thin Client einfach nur noch Teams startet, sei es als native Linux App oder einfach im Browser

Installation

Wenn es eine 1:1-Zuordnung von Anwendern zum Endgerät gibt, dann ist es kein Problem den Teams Client auch durch den Anwender installieren zu lassen. Aus meiner Sicht ist das sogar der Regelfall, da jeder Anwender grundsätzlich die Möglichkeit hat, Dateien aber auch Programme in seinem persönlichen "Appdata"-Verzeichnis abzulegen. Ein Administrator kann diesen Prozess natürlich auch per Software-Verteilung aktiv unterstützen.

Auf einem Terminal Server oder eine Farm arbeiten aber mehrere Mitarbeiter auf dem gleichen System und wechseln auch das System. Die meisten Programme wurden daher im zentralen Programmverzeichnis, z.B. C:\Programme, installiert und so nur einmal pro Server bereitgestellt. Das spart vor allem Platz, denn eine Teams-Installation kann schnell auch mal einige 100 MB Platz im Benutzerprofil belegen.

Es gibt aber auch eine Installation als MSI-Datei ins Programmverzeichnis dies Servers. Dieser Weg ist für Terminal-Server vermutlich der geeignetere Weg, um eine Installation pro Benutzer zu vermeiden. Dies löst aber nicht das Problem, dass dennoch im Benutzerprofil die ein oder andere Datei landet.

PowerShell CsTeamsVdiPolicy

Jede Einstellung in Teams muss irgendwo auch konfigurierbar sein. Citrix beschreibt in seinem eigenen Dokument einige Registrierungsschlüssel, mit denen das HDX-Verhalten gesteuert werden kann. Interessanterweise gibt es aber auch in der Teams PowerShell.

PS C:\> Install-Module -Name MicrosoftTeams
PS C:\> Import-Module Microsoftteams
PS C:\> get-command *-*vdi*

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Function        Get-CsTeamsVdiPolicy                               2.5.0      Microsoftteams
Function        Grant-CsTeamsVdiPolicy                             2.5.0      Microsoftteams
Function        New-CsTeamsVdiPolicy                               2.5.0      Microsoftteams
Function        Remove-CsTeamsVdiPolicy                            2.5.0      Microsoftteams
Function        Set-CsTeamsVdiPolicy                               2.5.0      Microsoftteams

Leider gibt es (Stand Aug 2021) keine ausführlich Dokumentation zu diesen Commandlets

Sie können nur auf einer Seite die Commandlets in Funktion sehen

Allerdings steht da auch:

"Dies gilt nur für nicht optimierte Umgebungen."
Quelle https://docs.microsoft.com/de-de/microsoftteams/teams-for-vdi#disable-audio-and-video-settings-for-vdi

Weitere Links