Teams & OneDrive in Citrix installieren (Machine-Based)

In den vergangenen Monaten, habe ich in zahlreichen Projekten zusätzlich zu den Standard Office Applikationen, auch Microsoft Teams und OneDrive for Business, aus dem Office365 Portfolio, in Citrix Umgebungen bereitstellen müssen.

Microsoft Teams

Bei der Standard Installation die der Benutzer z.B. über das Office365 Portal durchführen kann, handelt es sich um eine User-Based Installation. Dies ist im Citrix Umfeld nur für Desktop Betriebssysteme (Pooled oder Personal Desktop) empfohlen.

Eine User-Based Installation kann im User Profile sehr schnell erkannt werden, da sich dann Daten unter AppData\Local\Microsoft\Teams befinden.

Teams User Based Install

Diese Art von Installation in einem Worker mit Server Betriebssystem hat viele Nachteile:

  • Keine Kontrolle über die installierte Version
  • Mehrere unterschiedliche Version auf dem selben Worker möglich
  • Komplette Daten (~1 GB) liegen im User Profile

Um dies zu korrigieren und das User Profile zu bereinigen kann das folgende Script genutzt werden.

UserBased CleanUp

Das Script muss im User Kontext ausgeführt werden. Entweder per GPO Anmeldeskript oder WEM External Task.

Teams User Based Clean Up


Um so eine Installation direkt zu unterbinden, kann per FSLogix AppMasking, oder einem anderen Tool, der Pfad AppData\Local\Microsoft\Teams einfach gesperrt werden.

Teams User Based AppMasking

Installation Machine Based

Damit Teams in Server Betriebssystemen (Multi User fähig) sauber funktioniert, muss der Machine Based Installer genutzt werden. Hierbei werden der Teil der Daten, die beim User Based Installer im Pfad AppData\Local\Microsoft\Teams abgelegt werden, im Ordner C:\%PROGRAMFILES%\Microsoft\Teams abgelegt. Teams kann dann aber nicht mehr automatisch aktualisiert werden, sobald eine neue Version vorhanden ist. Dieser Modus wird für nicht persistente Umgebungen empfohlen.

  • Als erstes laden wir uns das aktuelle MSI-Paket herunter
Neuste Teams MSI Version (Im Moment 1.4.0.2879)32 bit64 bit
Minimum Version 1.3.00.4461
  • Falls noch eine Teams Installation auf dem System besteht, muss diese vorher deinstalliert werden
  • Startet eine Administrative CMD
  • Die Installation wird mit dem folgenden Befehl durchgeführt

Beispiel:

Mit dem Parameter ALLUSER=1 wird Teams (Machine-Based) in den Ordner „Programme (x86)“ auf einem 64-Bit-Betriebssystem und in den Ordner „Programme“ auf einem 32-Bit-Betriebssystem installiert. Aber auch mit dem Parameter, verwendet die Teams MSI immer noch keinen Windows Installer für die Installation aller Dateien. Stattdessen wurden von Microsoft zusätzliche benutzerdefinierte Aktionen in der MSI erstellt, die alle Dateien von Teams.exe in den Programme (x86) Ordner entpacken.

Wenn Sie den Parameter ALLUSERS=1 setzen, erscheint Teams Machine-Wide Installer in Programme und Funktionen in der Systemsteuerung und in Anwendungen und Funktionen in den Windows-Einstellungen für alle Benutzer des Computers. Alle Benutzer können dann Teams deinstallieren, wenn sie über Admin Zugangsdaten verfügen.

Teams Machine-Wide Installer
Teams Install


Wir können die komplette Installation (mit den richtigen Parametern), natürlich auch Script gesteuert durchführen.

Evergreen MS Teams install

Mit meinem folgenden Evergreen Script, kann bei jedem öffnen des Golden Masters geprüft werden, ob es eine neue Version gibt und diese daraufhin installiert werden.

Deyda/Evergreen (github.com)

Evergreen GUI

Installation mit AppLayering

Wenn Citrix App Layering genutzt wird oder der Citrix VDA Agent auf dem Worker noch nicht installiert ist, wird die folgende Fehlermeldung angezeigt.

Installation has failed. Cannot Install for all users when a VDI environment is not detected

Um dies zu lösen muss ein neuer Key mit dem Namen PortICA unter folgenden Pfad der Registry bereitgestellt werden, bevor Teams mit dem Machine Based Parameter ALLUSER = 1 installiert werden kann.

Citrix AppLayering Key PortICA

Oder

Dies sollte auch beachtet werden, wenn man Teams Machine-Based paketieren muss.

Deinstallation

Um auf die neueste Teams Version zu aktualisieren, muss erst die aktuelle Version deinstalliert werden.

Hierfür gibt es zwei Möglichkeiten:

  • Über den Installer
    • Rechte Maustaste auf den Installer und auf Deinstallieren drücken
Deinstallieren Teams Machine Based
Windows Installer
  • Command line
    • Durch diesen Befehl wird Teams aus dem Ordner Programme (x86) oder aus dem Ordner Programme deinstalliert.

Beispiel:

uninstall teams

Für die verschiedenen Installationsmethoden habe ich auch CleanUp Scripts erstellt.

UserBased CleanUp

MachineBased CleanUp

Verzeichnis Zunahme für Profile Lösung

Das Teams Verzeichnis muss in die bestehende Profile Lösung mit aufgenommen werden.

  • Roaming/Microsoft/Teams
teams roaming data

Verzeichnis Exklusion für Profile Lösung

Folgendes Verzeichnis und Dateityp sollte aber noch aus dem Profile exkludiert werden. Das Ausschließen dieser Elemente hilft, die Größe des Benutzer Profils zu reduzieren.

  • Roaming/Microsoft/Teams/*.txt
  • Roaming/Microsoft/Teams/media-stack
  • Roaming/Microsoft/Teams/Service Worker/CacheStorage
  • Roaming/Microsoft/Teams/Application Cache
  • Roaming/Microsoft/Teams/Cache
  • Roaming/Microsoft/ Teams/GPUCache
  • Roaming/Microsoft Teams/Logs
media-stack folder exclude

Konfiguration

GPOs

Das Standardverhalten der Teams Installation ist so, dass Teams automatisch startet, wenn sich ein Benutzer anmeldet. Wenn dies nicht gewünscht ist, muss dies mithilfe der Gruppenrichtlinien definiert werden.

Wichtig: Mit der aktuellen Version von Teams funktioniert dieser Eingriff per GPO nicht mehr.

  • Kopiert die extrahierten Dateien in euren Policy Central Store und erstellt eine GPO zum editieren des Autostart Verhalten von Teams (Prevent Microsoft Teams from starting automatically after installation unter User Configuration\Policies\Administrative Templates\Microsoft Teams)
Teams GPO


Wenn eine GPO hierfür nicht genutzt werden kann, muss der Schlüssel PreventFirstLaunchAfterInstall unter HKEY_CURRENT_USER\SOFTWARE\Policies\Microsoft\Office\16.0\Teams definiert werden. Der Schlüssel Typ für PreventFirstLaunchAfterInstall ist REG_DWORD und der Wert sollte auf 1 gesetzt werden. Dies bedeutet, dass Teams nach der Installation nicht automatisch gestartet wird.

Wenn Teams bereits ausgerollt wurde und im Nachgang erst die oben genannte Richtlinie aktiviert wird, muss noch ein 2 Skripts zum Zurücksetzen des Autostart Flag im Benutzer- und Maschinenkontext ausgeführt werden.

Skript für Maschinen Kontext – Dies muss in einer Administrativen PowerShell einmalig pro Maschine (oder Golden Master) ausgeführt werden.

Skript für Benutzer Kontext – Dies muss nur einmalig beim betreffenden Benutzer ausgeführt werden, nachdem das Maschinen Kontext Skript ausgeführt wurde

Autostart Reset Current User

desktop-config.json

Mit dem folgenden Script können die Einstellungen aus der desktop-config.json Datei pro Benutzer definiert werden, wenn diese schon einmal Teams geöffnet haben.

Script desktop-config.json

Disable GPU acceleration


Hiermit können folgende Einstellungen definiert werden:

  • Auto-start application (openAtLogin)
  • Open application in background (openAsHidden)
  • On close, keep the application running (runningOnClose)
  • Disable GPU hardware acceleration (disableGpu)
  • Register Teams as the chat app for Office (registerAsIMProvider)

Wichtig ist hierbei, das man dies erst mit dem Script editieren kann, wenn Teams initial einmal gestartet wurde. Erst dann ist die desktop-config.json Datei in ihrer endgültigen Fassung im Profile vorhanden.

Wenn die Einstellungen schon vor dem ersten Start hinterlegt werden sollen, muss eine vor konfigurierte Datei erzeugt werden und im Default Profile abgelegt werden (c:\users\default\AppData\Roaming\Microsoft\Teams) oder per GPP Rule bei Profile Erstellung erzeugt werden.

Hierfür sollte eine desktop-config.json Datei mit den benötigten Einstellungen erzeugt werden.

Ablage im Default Pfad auf dem Worker.


Oder Einrichtung per Group Policy Preferences.

TEAMS GPP
Teams Default File

Folgende Einstellungen sollten für eine bessere Performance immer konfiguriert werden.

Disable GPU hardware acceleration sollte aktiviert werden, wenn auf dem Worker keine vGPU Lösung (nvidia usw.) eingesetzt wird, da Teams dann weniger Ressourcen benötigt.

Register teams as the chat app for Office sollte aus dem selben Grund deaktiviert werden.

Disable GPU hardware acceleration


Wenn man schnell genug ist, kann man im frischen neuen Profil, die von uns erstellte Datei sehen.

Und wenn sich Teams zum ersten Mal startet, werden die gewünschten Einstellungen auch direkt gesetzt.

Registry

Damit Teams initial immer die Einladungslinks auch ohne Abfrage direkt startet, kann man die folgenden Registry Einträge per GPP oder WEM Registry Entry setzen.

Enable optimization of Microsoft Teams

  • Microsoft Teams Version 1.2.00.31357 oder höher
  • CVAD Delivery Controller & VDA Version 1906.2 oder höher
  • Windows 10 64-bit Version 1607 oder höher / Windows Server 2019 / Windows Server 2016 / Windows Server 2012 R2
  • Browser Content Redirection installiert (BCR_x64.msi)
  • Citrix Workspace app für Windows 1909 oder neuer / Citrix Workspace app für MAC 2009 oder neuer / Citrix Workspace app für Linux 2010 oder neuer
  • Citrix Policy Setting
    • Microsoft Teams redirection Allowed
      • Key: HKEY_CURRENT_USER\Software\Citrix\HDXMediaStream
      • Name: MSTeamsRedirSupport
      • Value: DWORD (1 – on, 0 – off)
Enable optimization of Microsoft Teams

Installation von Office365 ohne Teams (User-Based)

Um bei der Office365 Installation, nicht auch Teams (User-Based Install) mit zu installieren, muss die vorhandene Configuration.xml um folgendes erweitert werden:

Die Configuration.xml sollte dann so aussehen.

OneDrive for Business

Bei der Standard Installation die der Benutzer über das Office365 Portal durchführen kann, handelt es sich um eine User-Based Installation. Dies ist im Citrix Umfeld nur für Desktop Betriebssysteme (Pooled oder Personal Desktop) empfohlen.

OneDrive User Based

Wenn die User-Based Install genutzt wird, belastet diese das Profile mit ~500MB an Daten.

Size User Based

Installation

Damit OneDrive in Server Betriebssystemen (Multi User fähig) funktioniert, muss der Machine Based Installer genutzt werden. Hierbei werden ein Teil der Daten im Ordner C:\%PROGRAMFILES%\Microsoft OneDrive abgelegt. Dieser Modus wird für nicht persistente Umgebungen empfohlen.

  • Als erstes laden wir uns den Installer herunter
Curent and pre-release versions
  • Startet eine Administrative CMD
  • Die Installation wird mit dem folgenden Befehl durchgeführt

Beispiel:

OneDrive Installer Machine Based

Verzeichnis Aufnahme für Profile Lösung

Das OneDrive Verzeichnis muss in die bestehende Profile Lösung mit aufgenommen werden.

  • Local/Microsoft/OneDrive
Profile OneDrive

Konfiguration

Das Standardverhalten der OneDrive Installation ist es, dem Benutzer zu ermöglichen, das komplette OneDrive Konto in die lokale Maschine zu syncen (bis zu 1 TB). Da dies nicht gewünscht sein kann, muss dies (Set the maximum size of a user’s OneDrive that can download automatically) und weitere Einstellungen mithilfe der Gruppenrichtlinien definiert werden.

Diese und weitere Einstellungen, sind erst unter Windows Server 2019 und Windows 10 (Version 1709 oder neuer) möglich, da erst dann Files On Demand zur Verfügung steht. Bei älteren Betriebssystemen, werden die kompletten OneDrive Daten heruntergeladen.

  • Verbindet euch mit einem Worker, auf dem nun der OneDrive for Business Client installiert ist
  • Geht im Verzeichnis C:\Program Files (x86)\Microsoft OneDrive\<BuildNumber>\adm, in das Unterverzeichnis der Sprache die benötigt wird. (Die BuildNumber findet ihr im About Tab des Clients)
  • Kopiert die dort befindliche ADML Datei und die ADMX Datei aus dem Ordner adm in euren GPO Central Store
ADMX OneDrive
  • Erstellt eine GPO zum editieren der OneDrive Konfiguration (Computer Configuration\Policies\Administrative Templates\OneDrive)
Computer Configuration policies in the Group Policy Management Editor

  • Set the maximum size of a user’s OneDrive that can download automatically

Diese Einstellung definiert, wie mit OneDrive Accounts umgegangen wird, die größer, als der angegebene Schwellenwert (in MB) ist. Bei diesen wird der Benutzer aufgefordert, die zu synchronisierenden Ordner auszuwählen, bevor der Sync Client die Dateien herunterlädt. In der GPO Einstellung muss die Tenant ID und die Maximale Grösse in MB definiert werden.

  • Silently sign in users to the OneDrive sync app with their Windows credentials

Wenn diese Einstellung aktiviert ist, können Benutzer, die auf einem PC angemeldet sind, der mit Azure AD verbunden ist, den Client einrichten, ohne ihre Credentials einzugeben. Den Benutzern wird weiterhin OneDrive Setup angezeigt, so dass die zu synchronisierenden Ordner und der Speicherort des OneDrive Ordners ausgewählt werden können.

  • Specify SharePoint Server URL and organization name
  • Specify the OneDrive location in a hybrid environment

Die Einstellungen „Specify SharePoint Server URL and organization name“ und „Specify the OneDrive location in a hybrid environment“ sind für Kunden mit SharePoint Server 2019 Instanzen.

  • Allow syncing OneDrive accounts for only specific organizations

Die Einstellung „Allow syncing OneDrive accounts for only specific organizations“unterbindet einen Wildwuchs an Verbindungen zu nicht Firmeninternen OneDrive Instanzen (Private oder von anderen Firmen), indem man eine Liste der erlaubten Tenant IDs angibt. Wenn die Benutzer nun versuchen, sich an eine nicht erlaubte Tenant ID anzumelden, erhalten diese eine Fehlermeldung. Wenn Benutzer schon an fremden Tenant IDs angemeldet sind, werden diese nicht weiter synchronisiert.

Diese Einstellung hat eine höhere Priorisierung als die Einstellung „Block syncing OneDrive accounts for specific organizations“, mit der spezifische Tenant IDs geblockt werden können.

  • Block file downloads when users are low on disk space

Mit der Einstellung „Block file downloads when users are low on disk space“ kann verhindert werden das die Benutzer durch den OneDrive Sync das System lahm legen. Es wird die minimale Speichergrösse definiert, ab die der OneDrive Client die Synchronisierung stoppt. Der Benutzer erhält daraufhin ein Fenster mit Optionen, um Speicher freizugeben.

  • Limit the sync app upload rate to a percentage of throughput

Über „Limit the sync app upload rate to a percentage of throughput“ wird die Maximale Bandbreite der Synchronisierung (Upload) definiert. Hierfür wird ein Maximaler Prozentsatz, der Gesamtbandbreite des Computers, definiert. Desto niedriger der Prozentsatz, desto langsamer werden Dateien hochgeladen. Microsoft empfiehlt einen Wert von 50% oder höher. Trotz Limitierung der Bandbreite über diese Einstellung, wird die App, in periodischen Abständen, ohne Limitierung für 1 Minuten Dateien synchronisieren. Hiermit wird sicher gestellt das kleine Dateien, trotz Limitierung, schnell hochgeladen werden. Diese Einstellung sollte bei geringen Bandbreiten definiert werden.

Limit throuhput in 1-minute interval

Wenn diese Einstellung „Disable“ oder „Not Configure“ ist, kann der Benutzer die Limitierung direkt über den OneDrive Client steuern (in KB/Sekunde) oder auf „Adjust automatically“ konfigrurieren (definiert Upload auf 70% der Bandbreite)

  • Prompt users to move Windows known folders to OneDrive

Über die Einstellung „Prompt users to move Windows known folders to OneDrive“ kann definiert werden, ob das folgende Fenster erscheint.

Known Folders Redirection to OneDrive


Hiermit wird definiert, das die Ordner Dokumente, Bilder und Desktop nach OneDrive synchronisiert werden. Diese Option ist erst ab Client Version 18.111.0603.0004 verfügbar.

Installation von Office365 ohne OneDrive (User-Based)

Um bei der Office365 Installation, nicht auch OneDrive (User-Based Install) mit zu installieren, muss die vorhandene Configuration.xml um folgendes erweitert werden:

Die Configuration.xml sollte dann so aussehen.

OneDrive for Business als Published App

Wenn OneDrive for Business bei einer Citrix Published App Sitzung mit geöffnet wird, sorgt diese dafür das es keine Abmeldung gibt. Hinzufügen des Binärnamens der OneDrive Exe-Datei zum LogoffCheckSysModules Registry Schlüssel bringt leider nichts.

Parent Property CMD

Lösung

Führt die folgenden Schritte aus:

  • Startet Regedit
  • Geht zum Registry Verzeichnis und erstellt einen neuen Eintrag

Important Folder in OneDrive sichern

Wenn man das OneDrive for Business Feature „Important Folder Backup“ bei aktivierten Folder Redirection nutzen möchte, kann man dies nciht aktivieren, da er die Daten nicht synchronisieren kann.


Lösung

Führt die folgenden Schritte aus:

  • Aktiviert das Feature manuell oder per GPO
  • Startet das unten Angebotene Script und kopiert damit die Ordner Desktop und Documents in euer OneDrive

Script zum kopieren der Daten

2 Gedanken zu „Teams & OneDrive in Citrix installieren (Machine-Based)“

  1. MS Teams – Verzeichnis Exklusion für Profile Lösung
    Besteht hier nicht die Gefahr, das nach jeder Anmeldung der Cache unter hoher CPU Last wieder neu aufgebaut wird?
    Kann der Cache nicht anders minimiert werden?

    1. Hier muss man Abwägen, will man riesige Profile und damit eine längere Anmeldezeit (Ausser bei Office Container von FSLogix, hier hat man nur den zusätzlichen Speicherverbrauch) oder soll der Cache neu aufgebaut werden. Da dies bei Teams sehr schnell geht und ohne merkliche CPU Einbüssen, würde ich diesen Weg immer präferieren.

      Leider kann, im Moment, der Cache nicht anders minimiert werden. Da Microsoft aber ständig Teams weiterentwickelt, können wir hier natürlich gespannt sein.

Schreibe einen Kommentar

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

* I consent to having this website store my submitted information so they can respond to my inquiry.