FSLogix Container (Office/Profile) in Citrix Umgebungen

Table of Contents

In letzter Zeit bin ich vermehrt in Projekte gekommen, in denen Office365 voll umfänglich in Citrix Umgebungen implementiert werden soll. Dies bedeutet das der Kunde nicht nur die Standard Office Anwendungen Outlook, Excel und Word benötigt, sondern auch Teams und OneDrive nutzen möchte.

Genau hier haben wir aber, ohne zusätzliche Software, immense Probleme in nicht persistenten Desktop Umgebungen. Zum Beispiel mit unseren Profilen (Teams Installer speichert seine Daten im Profile) oder damit das Daten jedesmal wieder aus dem Internet heruntergeladen werden (OneDrive Sync Daten im Profile ausschliessen).

Seit kurzem sind wir aber in der glücklichen Lage, hierfür „kostenfrei“ FSLogix zu nutzen, wenn wir folgenden Voraussetzungen erfüllen:

  • Microsoft 365 E3/E5
  • Microsoft 365 A3/A5/ Student Use Benefits
  • Microsoft 365 F1/F3
  • Microsoft 365 Business
  • Windows 10 Enterprise E3/E5
  • Windows 10 Education A3/A5
  • Windows 10 VDA per user
  • Remote Desktop Services (RDS) Client Access License (CAL)
  • Remote Desktop Services (RDS) Subscriber Access License (SAL)
Profile Container Multiple Sessions FSLogix

FSLogix Technologien

Kurz aufgelistet die einzelnen FSLogix Komponenten.

Profile Container

Profile Container verschiebt im Grunde genommen alle Profildateien und -ordner in eine VHD / VHDX Datei im Netzwerk und hängt diese dann beim Anmelden als Container in das Zielsystem ein. Dies ersetzt die vorhandenen Profile Lösungen, in denen die Dateien übers Netzwerk in das Zielsystem kopiert werden, wie zum Beispiel Roaming Profile oder Universal Profile Management.

Profile Container FSLogix

Office Container

Office Container leitet nur den Teil des Profils um, der Office Daten enthält. Hierdurch kann FSLogix parallel zu bereits implementierten Profile Lösungen verwendet werden. Diese Funktionalität ist nützlich für die Outlook OST-Datei, Teams Installer oder OneDrive Offline Dateien.

Office Container FSLogix

Application Masking

Application Masking verwaltet den Zugriff auf Anwendungen, Schriftarten, Drucker usw. Der Zugriff kann nach Benutzer, IP-Adressbereich und anderen Kriterien gesteuert werden. Dies reduziert die Anzahl und Komplexität von Golden Master Images erheblich.

Application Masking FSLogix

Java Version Control

Java Version Control ermöglicht es allen Anwendungen & Websites, mit der Java-Version zu arbeiten, die sie benötigen. Die ausgewählte Java-Version muss auf dem Client-Computer installiert sein. Mehrere Versionen von Java können nebeneinander installiert werden. Alles innerhalb desselben Client-Systems.

Java Version Control FSLogix

MSIX App Attach

MSIX App Attach ordnet Anwendungen, die im MSIX-Format an einem zentralen Ort gespeichert werden, dem Betriebssystem zu. Nach dem Anhängen sehen die Anwendungen, sowohl für den Benutzer als auch auf dem Betriebssystem als lokal installiert aus. Auf der Grundlage von Anwendungsgruppen können Anwendungen sofort, und ohne die Notwendigkeit der Bereitstellung eines neuen Golden Image, bereitgestellt werden.

MSIX App Attach FSLogix

Bei der Kombination von FSLogix Profile Container und MSIX App Attach bleibt das Betriebssystem völlig sauber und Daten, Profile, sowie Anwendungen sind vollständig getrennt.

Einrichtung FSLogix Container

In diesem Blog betrachte ich nicht die komplette FSLogix Technologie Palette im Detail, sondern gehe erstmal nur auf die Features Profile & Office Container ein.

Wichtig !
Da die Container keinerlei Housekeeping durchführen, kann die Nutzung von z.B. Microsoft Teams dazu führen, das die Container sich erheblich aufblähen. Des weiteren verkleinert FSLogix den Container auch nicht, wenn Daten aus dem Container herausgelöscht werden.

Um diese Thematik zu umgehen, sollte das Shrink Script in regelmäßigen Abständen (z.B. als Geplanter Task) ausgeführt werden, um das aufblähen der Container zu unterbinden.

Architektur

Normalerweise werden in Non-Persistenten Umgebungen die Profile, dateibasierend bei der Anmeldung auf den Zielserver und bei der Abmeldung zurück auf den Dateiserver kopiert (Roaming Profile, UPM usw.). Durch die neusten Anforderungen (z.B. Teams oder OneDrive) an die Benutzerprofile, werden diese mittlerweile sehr groß und dadurch werden die An- und Abmeldezeiten oft inakzeptabel. Durch die FSLogix Container Architektur werden die Benutzerprofile in VHD(X)-Dateien platziert und an einem Netzwerkstandort gespeichert. Zur Laufzeit der Session wird dieser gemountet und dadurch die Wartezeit auf das Profile eliminiert.

Voraussetzungen

Ich setze die folgenden Dinge voraus und gehe nicht im Detail auf diese ein:

  • Installierte und Lizenzierte Citrix Umgebung (StoreFront, DDC usw.)
  • Eingerichtete Profile Lösung (hier UPM) für Office Container Feature
  • Installiertes Office365 für Office365 Container Feature

Profile Container

Um das Profile Container Feature nutzen zu können, muss das entsprechende Paket auf dem Golden Master Image installiert und per GPO aktiviert werden.

Falls schon eine andere Profile Methode (Roaming, UPM usw.) genutzt und ersetzt werden soll, muss diese vor der Aktivierung von Profile Container deaktiviert (hier UPM über WEM) werden.

Deactivate UPM in WEM

Migrationsmethoden

Um von vorhandene Profile Lösungen zu FSLogix Profile Container zu migrieren, gibt es verschiedene vorhandene Anleitungen.

UPM nach Profile Container

Local Profile nach Profile Container

UPD nach Profile Container

File Server

Wichtig !
Für eine optimale Leistung sollten sich der File Server und der Zielserver im selben Rechenzentrumsstandort befinden.
Schließen Sie die VHD(X)-Dateien für Profilcontainer von der Antivirenprüfung aus, um Leistungsengpässe zu vermeiden.
Für die Netzwerkbandbreite wird je nach Art der Nutzung empfohlen, zwischen 5 und 30 MBps pro Benutzer einzuplanen.

Ressourcen-Anforderung
Laufzeit 10 IOPS pro Benutzer
Anmeldung/Abmeldung 50 IOPS pro Benutzer

  • Erstellt auf eurem File Server einen Ordner für die Profile Container der Benutzer
  • Setzt die folgenden Berechtigungen.
User AccountFolderPermissions
CREATOR OWNERSubfolders and Files OnlyFull Control
SYSTEMThis Folder, Subfolders and FilesFull Control
AdministratorThis Folder, Subfolders and FilesFull Control
UsersThis Folder OnlyCreate Folders / Append Data
UsersThis Folder OnlyList Folder / Read Data
UsersThis Folder OnlyRead Attributes
UsersThis Folder OnlyTraverse Folder / Execute File
File Server FSLogix
Permission Entry for Container
  • Aktiviert die Freigabe und setzt die Freigabeberechtigung für die Authenticated Users auf Change und Read.
Share Permission

Golden Master Image

Download FSLogix Paket and extract files
  • Startet den Installer FSLogixAppsSetup
Start FSLogixAppsSetup install
  • Klickt im folgenden Fenster auf „I agree to the license terms and conditions
Install FSLogix Profile Container Office Container Java Version Control Application Masking
  • Über den Punkt Options kann man den Pfad der Installation anpassen
Setup Options FSLogix Apps Setup
  • Über Install startet ihr die Installation
Setup Progress Processing
  • Nach der Installation könnt ihr im Dienste Menü kontrollieren, das die FSLogix Dienste installiert sind und laufen
FSLogix Apps Services FSLogix Cloud Caching Services

FSLogix Apps Service

  • Service name: frxsvc
  • Description: FSLogix Apps Service Component.
  • Path to executable: „C:\Program Files\FSLogix\Apps\frxsvc.exe“
  • Startup type: Automatic

FSLogix Cloud Caching Service

  • Service name: frxccds
  • Description: FSLogix Apps Cloud Caching Service Component.
  • Path to executable: „C:\Program Files\FSLogix\Apps\frxccds.exe“
  • Startup type: Automatic
  • Um die Ausführung des Agents auf dem Worker zu kontrollieren, sind folgenden Gruppen lokal im Worker erstellt worden
FSLogix Local Groups
  • Über diese Gruppen kann definiert werden (White/Blacklistening) wer die Container Lösung nutzen darf
    • FSLogix ODFC –> Office Container
    • FSLogix Profile –> Profile Container
FSLogix ODFC Include List
  • Standardmässig ist der Benutzer Jeder Mitglied der Include Gruppen
FSLogix ODFC Exclude List
  • Zu Empfehlen ist hier, für die benötigten Include und Exclude Listen jeweils eine AD Gruppe zu erstellen und zu hinterlegen.
  • Diese Gruppen können lokal im Golden Master oder per Group Policy Preferences zentral hinterlegt werden

Active Directory Server

  • Kopiert die ADMX & ADML Datei aus dem extrahierten FSLogix Ordner
fslogix.adml fslogix.admx kopieren
  • Fügt diese Dateien in euren PolicyDefinitions Ordner ein
PolicyDefinitions fslogix.admx GPO
  • Öffnet die Group Policy Management Console
Group Policy Management Console
  • Erstellt eine GPO in der OU eurer Worker Maschinen
GPO FSLogix Cloud Cache Office 365 Container Profile Container
  • Konfiguriert nun die von euch benötigten Einstellungen für Profile Container

Folgend die wichtigsten Einstellungen aus der FSLogix ADMX Datei.

/ Computer Configuration / Policies / Administrative Template / FSLogix / Profile Container

Enabled (Muss konfiguriert werden)

Über diesen Punkt wird das komplette Profile Container Feature aktiviert.

VHD location (Muss konfiguriert werden)

Eine Liste der Speicherort Standorte, an denen nach der VHD(X)-Datei des Profils für den Benutzer gesucht werden kann. Wenn ein Profile nicht gefunden wird, wird eines am ersten aufgeführten Standort erstellt. Wenn der VHD(X)-Pfad nicht existiert, wird er vor der Überprüfung erstellt.

Bei der Definierung des Standorts können Variablen genutzt werden, die bei der Erstellung aufgelöst werden sollen. Unterstützte Variablen sind %username%, %userdomain%, %sid%, %osmajor%, %osminor%, %osbuild%, %osservicepack%, %profileversion% und jede Umgebungsvariable des Zielsystems.

Size in MBs

Definiert die Größe der neu erstellten VHD(X)-Datei in MB. Je nach Art der Nutzung wird empfohlen, zwischen 5 und 15 GB pro Benutzer zu planen. Die Ursprünglich definierten 30 GB sollten definiert bleiben, da es sich hier nur um die maximale Grösse des Containers handelt und nicht um die direkt genutzte Grösse auf dem Datenträger, wenn Dynamic VHD(X) allocation aktiviert ist.

Eine Änderung dieser Einstellung wirkt sich nur auf neu erstellte Container aus. Bestehende Container müssen per Script erweitert werden.

Expand Container

Dynamic VHD(X) allocation

Wenn Dynamic VHD(X) allocation aktiviert ist, werden die VHD(X)-Dateien dynamisch zugewiesen. Das bedeutet das die Dateigröße der VHD(X)-Datei nur wächst, wenn Daten zum Profile Container hinzugefügt werden.

Wenn diese Option nicht aktiviert ist, werden denn automatisch erstellten VHD(X)-Dateien direkt der vollständig Datenspeicher Platz zugewiesen.

Profile type (Muss konfiguriert werden)

Normal direct-access profile

Der Client versucht bei der Anmeldung, die VHD(X)-Datei direkt anzuhängen (1 zu 1 Verbindung). Es werden keine Difference Disks verwendet. Wenn ein gleichzeitiger weiterer Zugriff versucht wird, schlägt er mit einer Freigabeverletzung fehl (Fehler 20). Bei der Abmeldung wird die VHD(X)-Datei wieder getrennt.

Read-write profile

Der Client versucht bei der Anmeldung die folgende Schritte durchzuführen:

  • Die Difference Disk RW.VHD(X) wird versucht mit Lese-/Schreibzugriff zu öffnen. Wenn dies erfolgreich ist, wird die Difference Disk mit der übergeordneten Profile Disk zusammengeführt. Wenn die Zusammenführung abgeschlossen ist, wird die Datei RW.VHD(X) gelöscht.
  • Es wird eine neue RW.VHD(X) Difference Disk erstellt
  • Die neue RW.VHD(X)-Datei wird als Profil Disk angehängt

Bei der Abmeldung werden die folgende Schritte durchgeführt:

  • Die RW.VHD(X) Difference Disk (lokale Profile Disk) wird getrennt
  • Es wird versucht die Difference Disk RW.VHD(X) mit Lese-/Schreibzugriff zu öffnen. Wenn dies erfolgreich ist, führt es die Difference Disk mit der Profile Disk zusammen. Wenn die Zusammenführung abgeschlossen ist, wird die Datei RW.VHD(X) gelöscht.

Die RW Difference Disk wird im Netzwerk direkt bei der Profile Disk gespeichert.

Read-only profile

Der Client versucht bei der Anmeldung die folgende Schritte durchzuführen:

  • Es wird versucht die vorherige RO-Difference Disk zu löschen (falls vorhanden)
  • Eine neue RO-Difference Disk wird erstellt
  • Die neue RO-Difference Disk wird als Profil Disk des Benutzers angehängt

Bei der Abmeldung werden die folgende Schritte durchgeführt:

  • Die RO-Difference Disk (lokale Profile Disk) wird getrennt
  • Die RO-Difference Disk wird gelöscht

Die RO Difference Disks werden im lokalen Temp-Verzeichnis des Clients gespeichert und heißen %usersid%_RO.VHD(X).

Try for read-write profile and fallback to read-only

Der Client prüft, ob eine RW.VHD(X)-Datei existiert. Wenn keine Datei vorhanden ist führt er die gleichen Schritte wie bei Read-write profile aus. Wenn die Datei RW.VHD(X) vorhanden ist, übernimmt der Client die Rolle Read-only profile und führt diese Schritte aus.

Wichtig !
Beachtet folgende Limitierungen bei der Konfiguration von Multiplen Zugriffen auf einen Container (Nicht Normal direct-access Profile), wenn kein Office Container parallel genutzt wird:

  • Microsoft OneDrive unterstützt keine Multiplen Verbindungen, dies kann zu Datenverlust führen.
  • Microsoft Outlook (OST-Dateien) bietet eingeschränkte Unterstützung für Multiple Verbindungen.

Store search database in profile container

Windows Search Service muss gestartet und auf automatisch gesetzt sein für dieses Feature. Verzögerter Start darf nicht aktiviert sein. Das Citrix Provisioning Server Optimization Programm deaktiviert den Windows Search Service und daher sollte dies per GPO wieder aktiviert werden.

Diese Option sollte bei Windows Server 2019 Betriebssystemen nicht genutzt werden, da dies zu Fehlern führen kann.

In Windows Server 2019 nutzt bitte den folgenden Artikel von James Kindon, um dies zu implementieren.

Windows Search in Server 2019 and Multi-Session Windows 10

Mit Multi-user search wird der Benutzerteil des Suchindexes extrahiert und im Profile Container gespeichert. Der benutzerspezifische Teil der .edb-Datei, der die Outlook-Suche übernimmt, wird extrahiert und in den Profile Container eingebunden. Der benutzerspezifische Teil der .edb-Datei und die zur Unterstützung der Suche notwendigen Dateien werden im Ordner \WSearch in der VHD(X) gespeichert.

Diese Funktion ermöglicht das Roaming der Outlook-Suchinformationen eines Benutzers übere mehrere Systeme.

Durch Single-user search wird die gesamte Suchdatenbank im Profile Container des Benutzers gespeichert. Die .edb-Datei aus dem Ordner ProgramData wird also in den Profile Container des Benutzers eingebunden. Die umgeleitete .edb-Datei und die zur Unterstützung der Suche notwendigen Dateien werden im Ordner \WSearch auf der VHD(X) gespeichert.

Durch das Umleiten der Windows-Suchdatenbank ist die Windows-Suche sofort nach der Anmeldung verfügbar und es muss keine erneute Indizierung durchgeführt werden.

Set Outlook cached mode on successful container attach

Wenn dieses Feature aktiviert ist und der Profile Container erfolgreich angehängt wurde, wird die Outlook-Einstellung, die den Cache-Modus aktiviert, vorübergehend für die laufende Session gesetzt, bis der Container entfernt wird. Auf diese Weise kann sichergestellt werden, dass der Cache-Modus nur dann verwendet wird, wenn der Container angehängt ist.

Delete local profile when FSLogix Profile should apply

Wenn dies aktiviert ist, wird das lokale Profile des Benutzer dauerhaft gelöscht, wenn für diesen Profile Container aktiviert ist. Der Benutzer wird daraufhin dann mit dem FSLogix-Profil angemeldet.

Allow concurrent user sessions

Diese Einstellung sollte verwendet werden, wenn das Zielsystem Multi-Session ist und die gleichzeitige Anmeldungen für dasselbe Windows-Konto auf demselben Server zulässt.

/ Computer Configuration / Policies / Administrative Template / FSLogix / Profile Container / Advanced

Provide RedirXML file to customize redirections

Hier wird die Datei redirections.xml hinterlegt, mit der definiert wird, welche Dateien und Ordner nicht im Profile Container gespeichert werden sollen.

Bei der Anmeldung kopiert der FSLogix-Agent die Datei redirections.xml vom angegebenen Speicherort nach <Profile>\AppData\Local\FSLogix (innerhalb der VHD(x)) und verarbeitet sie sofort. Der Benutzer muss Leserechte für die Datei haben.

Typischerweise befindet sich dieser Speicherort im Stammverzeichnis oder in einem Unterverzeichnis des Speicherorts, in dem die Profile gespeichert sind: \\<FileServer>\\Container$\Redirection\ (die redirections.xml würde im Redirection Ordner abgelegt).

Die Grundstruktur der redirections.xml Datei ist wie folgt:

Was Included / Excluded ist, wird nur beim Einloggen berücksichtigt. Wenn Änderungen vorgenommen werden, muss eine Abmelde-/Anmeldesequenz durchgeführt werden, um die Dateien zu synchronisieren.

Es können eine beliebige Anzahl von Elementen in den Tags Includes und Excludes angegeben werden. Ordner sind nur relativ zum Benutzerprofil (deshalb wird AppData in diesem Beispiel gezeigt).

Exclude Ordner werden zur Basis umgeleitet (d.h. zum von FSLogix erstellten Ordner \Users\local_%username%) und Include Ordner werden verwendet, wenn bestimmte Ordner im virtuellen Profil bleiben sollen. Includes werden normalerweise verwendet, wenn ein kompletter Ordner umgeleitet wird und nur einige Unterordner nicht ausgeschlossen werden sollen.

<OPTIONAL> sollte durch einen der folgenden Werte ersetzt werden:

Wenn das Attribut ExcludeCommonFolders angegeben ist, werden Ordner, die durch den Bitmaskenwert angegeben sind, ausgeschlossen, so dass sie lokal umgeleitet werden.

1 = Contacts Ordner
2 = Desktop Ordner
4 = Documents Ordner
8 = Downloads Ordner
16 = Links Ordner
32 = Music and Podcasts Ordner
64 = Pictures and Videos Ordner
128 = Ordner wie z.B. AppData\LocalLow

Wenn Sie beispielsweise den Ordner Contacts & Links ausschließen möchten, stellen Sie den Wert 17 (1+16) ein.

Wenn vermieden werden soll, dass Daten aus einen Common Folder von / zur Basis kopiert werden, können Sie ein Exclude-Element setzen. Excludes haben Vorrang zu ExcludeCommonFolders.

Wenn derselbe Ordner als Exclude und als Include Element angegeben ist, hat der Exclude Priorität.

<VALUE> sollte durch einen der folgenden Werte ersetzt werden:

0 = Es werden keine Dateien ein- oder ausgelagert. Nur die Ordner werden im Verzeichnis local_<user_name> angelegt.
1 = Dateien werden in das lokale Profil kopiert. Jede vorhandene Datei in einem Exclude Ordner wird in das lokale Profil kopiert.
2 = Dateien werden wieder in das virtuelle Profil kopiert. Jede geänderte Datei im lokalen Profil wird beim Abmelden des Benutzers wieder in den Profile Container kopiert.
3 = Dateien werden von & in das lokale Profil kopiert. Kombination von Wert 1 und 2.

Wichtig !
Redirections sollten nur minimal eingesetzt werden, da diese einen immensen negativen Effekt auf die benötigten iOPS hat. Die Größe des Containers hat keinen negativen Einfluss auf die Anmeldegeschwindigkeit.

Diese Funktion sollte nicht genutzt werden, um das Profile stark zu beschneiden, wie z.B. bei UPM, oder um Platzsparende Profile zu erstellen. Wenn weniger Speicherplatz pro Profile verbraucht werden soll, sollen Datei basierende Profilelösungen, wie UPM genutzt werden.

Wichtig !
Folgender Pfad sollte nicht exkludiert werden:

AppData\Local\GroupPolicy

/ Computer Configuration / Policies / Administrative Template / FSLogix / Profile Container / Container and Directory Naming

Virtual disk type

Definiert den Typ der automatisch erstellten Profile Container Datei (VHDX oder VHD). Hier sollte VHDX konfiguriert werden.

Swap directory name components

Wenn es aktiviert ist, werden neue Verzeichnisse mit dem Benutzernamen zuerst, gefolgt von der SID, benannt.

Die Standardeinstellung ist %SID%_%USERNAME% und daher bei der Suche nach einem bestimmten User eher ärgerlich. Wenn man diese Einstellung im Nachgang ändert werden bestehende Container nicht angefasst und daher neu erstellt. Mit dem folgenden Script kann dies im voraus umbenannt und die Container verschoben werden.

Migration von SID_Username zu Username_SID

Ergebnis

Nach erfolgreicher Einrichtung, kann man sich das Ergebnis wie folgt anschauen.

  • Startet compmgmt.msc über cmd oder Ausführen
Computer Management compmgmt.msc
  • Unter Disk Management seht ihr nun den angehängten Profile Container (hier Profile-manuel)
Disk 2 Profile-username Disk Management
  • Klickt mit der rechten Maustaste auf die Profile Disk und ordnet diesem einen Laufwerksbuchstaben zu
Change Drive Letter and Paths
  • Nun könnt ihr auf das Laufwerk zugreifen und die Daten prüfen

Office Container

Der Office Container ist eine Unterart des Profile Container. Obwohl alle Vorteile des Office Container auch im Profile Container zur Verfügung stehen, kann es manchmal vorteilhaft sein, sie gemeinsam zu nutzen.

  1. Unterschiedliche Datenklasse (Backup des Profile Container und kein Backup für Office Container)
  2. Office Container benötigt höhere IOPS

Um das Office Container Feature nutzen zu können, muss das entsprechende Paket auf dem Golden Master Image installiert und per GPO aktiviert werden.

Office365 Container kann parallel zu vorhanden Profile Methoden (Roaming, UPM usw.) genutzt werden .

File Server

  • Erstellt auf eurem File Server einen Ordner für die Office365 Container der Benutzer
  • Setzt die folgenden Berechtigungen.
User AccountFolderPermissions
CREATOR OWNERSubfolders and Files OnlyFull Control
SYSTEMThis Folder, Subfolders and FilesFull Control
AdministratorThis Folder, Subfolders and FilesFull Control
UsersThis Folder OnlyCreate Folder / Write Data
UsersThis Folder OnlyList Folder / Read Data
UsersThis Folder OnlyRead Attributes
UsersThis Folder OnlyTraverse Folder / Execute File
File Server FSLogix
Permission Entry for Container
  • Aktiviert die Freigabe und setzt die Freigabeberechtigung für die Authenticated Users auf Change und Read.
Share Permission

Golden Master Image

Download FSLogix Paket and extract files
  • Startet den Installer FSLogixAppsSetup
Start FSLogixAppsSetup install
  • Klickt im folgenden Fenster auf „I agree to the license terms and conditions
Install FSLogix Profile Container Office Container Java Version Control Application Masking
  • Über den Punkt Options kann man den Pfad der Installation anpassen
Setup Options FSLogix Apps Setup
  • Über Install startet ihr die Installation
Setup Progress Processing
  • Nach der Installation könnt ihr im Dienste Menü kontrollieren, das die FSLogix Dienste installiert sind und laufen
FSLogix Apps Services FSLogix Cloud Caching Services
  • Um die Ausführung des Agents auf dem Worker zu kontrollieren, sind folgenden Gruppen lokal im Worker erstellt worden
FSLogix Local Groups
  • Über diese Gruppen kann definiert werden (White/Blacklistening) wer die Container Lösung nutzen darf
    • FSLogix ODFC –> Office Container
    • FSLogix Profile –> Profile Container
FSLogix ODFC Include List
  • Standardmässig ist der Benutzer Jeder Mitglied der Include Gruppen
FSLogix ODFC Exclude List
  • Zu Empfehlen ist hier, für die benötigten Include und Exclude Listen jeweils eine AD Gruppe zu erstellen und zu hinterlegen.
  • Diese Gruppen können lokal im Golden Master oder per Group Policy Preferences zentral hinterlegt werden

Active Directory Server

  • Kopiert die ADMX & ADML Datei aus dem extrahierten FSLogix Ordner
fslogix.adml fslogix.admx kopieren
  • Fügt diese Dateien in euren PolicyDefinitions Ordner ein
PolicyDefinitions fslogix.admx GPO
  • Öffnet die Group Policy Management Console
Group Policy Management Console
  • Erstellt eine GPO in der OU eurer Worker Maschinen
Office Container GPO ADMX ADML
  • Konfiguriert nun die von euch benötigten Einstellungen für Office 365 Container


Folgend die wichtigsten Einstellungen aus der FSLogix ADMX Datei.

/ Computer Configuration / Policies / Administrative Template / FSLogix / Office 365 Container

Enabled (Muss konfiguriert werden)

Über diesen Punkt wird das komplette Office365 Container Feature aktiviert.

VHD location (Muss konfiguriert werden)

Eine Liste der Speicherort Standorte, an denen nach der VHD(X)-Datei des Office365 Container für den Benutzer gesucht werden kann. Wenn der Container nicht gefunden wird, wird einer am ersten aufgeführten Standort erstellt. Wenn der VHD(X)-Pfad nicht existiert, wird er vor der Überprüfung erstellt.

Bei der Definierung des Standorts können Variablen genutzt werden, die bei der Erstellung aufgelöst werden sollen. Unterstützte Variablen sind %username%, %userdomain%, %sid%, %osmajor%, %osminor%, %osbuild%, %osservicepack%, %profileversion% und jede Umgebungsvariable des Zielsystems.

Size in MBs

Definiert die Größe der neu erstellten VHD(X)-Datei in MB. Je nach Art der Nutzung wird empfohlen, zwischen 2 und 5 GB Inhalt pro Benutzer zu planen. Die Ursprünglich definierten 30 GB sollten definiert bleiben, da es sich hier nur um die maximale Grösse des Containers handelt und nicht um die direkt genutzte Grösse auf dem Datenträger, wenn Dynamic VHD(X) allocation aktiviert ist.

Eine Änderung dieser Einstellung wirkt sich nur auf neu erstellte Container aus. Bestehende Container müssen per Skript erweitert werden.

Expand Container

Dynamic VHD(X) allocation

Wenn Dynamic VHD(X) allocation aktiviert ist, werden die VHD(X)-Dateien dynamisch zugewiesen. Das bedeutet das die Dateigröße der VHD(X)-Datei nur wächst, wenn Daten zum Office365 Container hinzugefügt werden. Wenn diese Option nicht aktiviert ist, werden denn automatisch erstellten VHD(X)-Dateien direkt der vollständig Datenspeicher Platz zugewiesen.

Virtual disk type

Definiert den Typ der automatisch erstellten Container Datei (VHDX oder VHD). Hier sollte VHDX konfiguriert werden.

VHD access type

Difference disk stored on local machine

Bei der Anmeldung werden die folgenden Schritte durchgeführt:

  • Er versucht, eine vorherige Difference Disk (%usersid%_ODFC.VHD(X)) für diesen Benutzer aus dem temporären Ordner zu entfernen.
  • Es wird eine neue Difference Disk namens %usersid%_ODFC.VHD(X) erstellt. Diese Difference Disk wird im Temp Verzeichnis erstellt.
  • Der Client hängt die Difference Disk als O365 VHD an.

Bei der Abmeldung werden folgende Schritte durchgeführt:

  • Die O365 Difference Disk wird getrennt.
  • Es wird versucht, die Difference Disks zusammenzuführen. Der Zusammenschluss kann nur erfolgreich durchgeführt werden, wenn die letzte Sitzung des Benutzers beendet wurde.
  • Die Difference Disk wird gelöscht.
Difference disk stored on network

Bei der Anmeldung:

  • Es wird versucht, die Difference Disk merge.vhd(x) mit Lese-/Schreibzugriff zu öffnen. Wenn dies erfolgreich ist, führt es die Difference Disk mit dem ursprünglichen Office 365 Container zusammen. Wenn die Zusammenführung abgeschlossen ist, wird die Difference Disk gelöscht.
  • Alle vorherigen Difference Disks für das angemeldete System (%Computername%_ODFC.VHD(X)) werden gelöscht.
  • Eine neue Difference Disk namens %computername%_ODFC.VHD(X) wird erstellt. Diese Difference Disk wird auf der Netzwerkfreigabe neben der übergeordneten VHD(X)-Datei erstellt.
  • Die Difference Disk wird als O365 VHD angehängt.

Bei der Abmeldung:

  • Die Difference Disk wird getrennt.
  • Die Difference Disk wird in merge.vhd(x) umbenannt. Wenn diese Umbenennung erfolgreich ist, wird versucht, die Difference Disks zusammenzuführen. Der Zusammenschluss kann nur erfolgreich durchgeführt werden, wenn die letzte Sitzung des Benutzers beendet wurde.
  • Die Difference Disk wird gelöscht.
Direct access

Bei der Anmeldung wird versucht, die VHD(X) Datei direkt anzuhängen. Es werden keine Difference Disks verwendet (Dies ist eine 1 zu 1 Verbindung). Wenn ein gleichzeitiger Zugriff versucht wird, schlägt er mit einer Freigabeverletzung fehl (Fehler 20).

Beim abmelden wird die VHD(X) getrennt.

Wichtig !
Beachtet folgende Limitierungen bei der Konfiguration von Multiplen Zugriffen auf einen Container (Nicht bei Direct Access oder Unique Disk per Session):

  • Microsoft OneDrive unterstützt keine Multiplen Verbindungen, dies kann zu Datenverlust führen
  • Microsoft Outlook (OST-Dateien) bietet eingeschränkte Unterstützung für Multiple Verbindungen
Unique disk per session

Bei dieser Methode wird keine Parent Disk erzeugt und jeder Container wird initial leer erzeugt. Die Daten aus den Session Containern werden auch nicht zentral zusammengeführt und können daher unterschiedlich sein, aber deswegen wird dieser Modus auch mit OneDrive und für OST-Dateien unterstützt.

Die VHD(X)-Dateien werden ODFC-%username%-SESSION-<sessionnumber>.VHD(X) genannt, wobei sessionnumber eine ganze Zahl von 0 – 9 ist.

Die maximale Anzahl der VHD(X)-Dateien pro Sitzung beträgt 10.

Beim anmelden werden die folgenden Schritte ausgeführt:

  • Es wird nach einer VHD(X) Datei für die Sitzung gesucht, die derzeit nicht verwendet wird.
  • Wenn eine gefunden wird, wird sie direkt angehängt und verwendet.
  • Wenn keine freie gefunden wird, wird eine neue erstellt und verwendet.
  • Wenn eine neue VHD erstellt wird und damit die Anzahl der VHDs pro Sitzung größer ist als die angegebene Anzahl unter Number of per-Session VHDs to persist, wird diese VHD(X) zum Löschen markiert und beim Abmelden gelöscht.

Bei der Abmeldung:

  • Die VHD(X) Datei wird getrennt.
  • Wenn die VHD(X) zum Löschen markiert ist, wird sie gelöscht.

Wichtig !
Beachtet folgende Limitierungen bei der Konfiguration von Multiplen Zugriffen auf einen Container (Nicht bei Direct Access oder Unique Disk per Session):

  • Microsoft OneDrive unterstützt keine Multiplen Verbindungen, dies kann zu Datenverlust führen.
  • Microsoft Outlook (OST-Dateien) bietet eingeschränkte Unterstützung für Multiple Verbindungen.

Es können vorhandene Difference Disk Container migriert werden in Unique Disk per Session, damit der Inhalt nicht erneut komplett aus der Cloud heruntergeladen werden muss. Mit dem folgenden Script kann einer oder mehrere Session Container erstellt werden (Der bestehende Container kann gelöscht werden oder wird nicht angerührt).

Script zur Migration

Wichtig !
Kopiert diese neuen Unique Disk per Session Container nicht in den selben Ordner wie die bestehenden Difference Disk Container.

Wenn beide Methoden auf den gleichen Pfad zugreifen, wird die Methode gewinnen, die als erstes genutzt wird. Die andere Methode kann keinen Container mehr benutzen.

Wenn keine Difference Disk Container mehr vorhanden sind im Verzeichnis, und ein Computer diese Methode versucht zu nutzen, wird der Unique Disk per Session Container, wenn nicht schon in Benutzung, dafür missbraucht. Der Session Container wird als Parent Disk, für dann neu erstellte Difference Disk genommen.

Number of per-Session VHDs to persist

Diese Einstellung wird verwendet, wenn der VHD Access type auf Unique disk per session gesetzt ist. Dies steuert die Anzahl der Session VHDs, die persistent sind.

Wenn dies beispielsweise auf ‚2‘ gesetzt ist und der Benutzer eine dritte Sitzung erstellt, wird eine neue Session-VHD erstellt und verwendet, die jedoch nach Beendigung der dritten Sitzung gelöscht wird.

Sync OST to VHD

Wie soll mit vorhandenen lokalen OST-Dateien umgegangen werden.

Copy OST to VHD

Vorhandene lokale OST-Datei (falls vorhanden) wird in die Office365 Container VHD(X) Datei synchronisiert.

Do not mirror OST to VHD

Vorhandene lokale OST-Datei wird nicht in den Office365 Container verschoben.

Move OST to VHD

Vorhandene lokale OST-Datei (falls vorhanden) wird initial in die Office365 Container VHD(X) Datei verschoben.

Store search database in Office 365 container

Windows Search Service muss gestartet und auf automatisch gesetzt sein für dieses Feature. Verzögerter Start darf nicht aktiviert sein. Das Citrix Provisioning Server Optimization Programm deaktiviert den Windows Search Service und daher sollte dies per GPO wieder aktiviert werden.

Diese Option sollte bei Windows Server 2019 Betriebssystemen nicht genutzt werden, da dies zu Fehlern führen kann.

Mit Multi-user search wird der Benutzerteil des Suchindexes extrahiert und im Office365 Container gespeichert. Der benutzerspezifische Teil der .edb-Datei, der die Outlook-Suche übernimmt, wird extrahiert und in den Office365 Container eingebunden. Der benutzerspezifische Teil der .edb-Datei und die zur Unterstützung der Suche notwendigen Dateien werden im Ordner \WSearch in der VHD(X) gespeichert.

Diese Funktion ermöglicht das Roaming der Outlook-Suchinformationen eines Benutzers über mehrere Systeme.

Durch Single-user search wird die gesamte Suchdatenbank im Office365 Container des Benutzers gespeichert. Die .edb-Datei aus dem Ordner ProgramData wird also in den Office365 Container des Benutzers eingebunden. Die umgeleitete .edb-Datei und die zur Unterstützung der Suche notwendigen Dateien werden im Ordner \WSearch auf der VHD(X) gespeichert.

Durch das Umleiten der Windows-Suchdatenbank ist die Windows-Suche sofort nach der Anmeldung verfügbar und es muss keine erneute Indizierung durchgeführt werden.

Set Outlook cached mode on successful container attach

Wenn dieses Feature aktiviert ist und der Office365 Container erfolgreich angehängt wurde, wird die Outlook-Einstellung, die den Cache-Modus aktiviert, vorübergehend für die laufende Session gesetzt, bis der Container entfernt wird. Auf diese Weise kann sichergestellt werden, dass der Cache-Modus nur dann verwendet wird, wenn der Container angehängt ist.

Allow concurrent user sessions

Diese Einstellung sollte verwendet werden, wenn das Zielsystem Multi-Session ist und die gleichzeitige Anmeldungen für dasselbe Windows-Konto auf demselben Server zulässt.

Include OneDrive data in container

Aktiviert wird der OneDrive Cache in den Office365 Container aufgenommen.

Wichtig !
Ab der FSLogix Version 2009 unterstützt FSLogix die Abarbeitung mehrere Business Accounts und von Personal OneDrive Konten. Vor der Version 2009 wurde nur ein einziges Business Konto unterstützt.

Include Teams data in container

Wenn Aktiviert werden die Teams Dateien in den Office365 Container aufgenommen.

Include Office activation data in container

Wenn dies aktiviert ist, werden die Aktivierungsdaten der Office Lizenz im Office365 Container gespeichert.

Include Outlook data in container

Aktiviert werden die Outlook Datendateien in den Office365 Container aufgenommen.

/ Computer Configuration / Policies / Administrative Template / FSLogix / Office 365 Container / Container and Directory Naming

Swap directory name components

Wenn es aktiviert ist, werden neue Verzeichnisse mit dem Benutzernamen zuerst, gefolgt von der SID, benannt.

Die Standardeinstellung ist %SID%_%USERNAME% und daher bei der Suche nach einem bestimmten User eher ärgerlich. Wenn man diese Einstellung im Nachgang ändert werden bestehende Container nicht angefasst und daher neu erstellt. Mit dem folgenden Script kann dies im voraus umbenannt und die Container verschoben werden.

Migration von SID_Username zu Username_SID

Bestehende Profile Lösung

Folgende Pfade solltet ihr in eurer bestehenden Profile Lösung ausschliessen, damit Office365 Container sauber funktioniert.

OneDrive

%USERPROFILE%\AppData\Local\Microsoft\OneDrive

%USERPROFILE%\OneDrive – <TenantName>

Outlook

%USERPROFILE%\AppData\Local\Microsoft\Outlook

Ergebnis

Nach erfolgreicher Einrichtung, kann man sich das Ergebnis wie folgt anschauen.

  • Startet compmgmt.msc über cmd oder Ausführen
Computer Management compmgmt.msc
  • Unter Disk Management seht ihr nun den angehängten Office365 Container (hier O365-mwinkel)
Office365 Container
  • Klickt mit der rechten Maustaste auf die Office365 Disk und ordnet diesem einen Laufwerksbuchstaben zu
Change Drive Letter and Paths
Office365 Container with Drive Letter
  • Nun könnt ihr auf das Laufwerk zugreifen und die Daten prüfen
Office365 Container with Data

Update bestehender FSLogix Installation

Da ich mit mehreren Version von FSLogix, keine guten Erfahrungen mit Inplace Upgrades gemacht habe, hier meine Empfehlung für den Update Ablauf.

  • Ersetzen der FSLogix ADMX Dateien
  • Deinstallation der vorhandenen FSLogix Komponenten
  • Neustart der Maschine
  • Installation der neuen FSLogix Version

Troubleshooting

Einige Notizen zum Troubleshooting bezüglich FSLogix.

Log Standort

Die Log Dateien werden unter dem folgenden Pfad im Zielsystem gespeichert. Über die GPO kann definiert werden, welche Logs erstellt werden.

C:\ProgramData\FSLogix\

Log Location FSLogix
FSLogix ODFC Log File

FSLogix Tools

Unter dem folgenden Pfad befinden sich noch zwei weitere nützliche Tools.

C:\Program Files\FSLogix\Apps

C:\Program Files\FSLogix\Apps

FSLogix Profile Status

Hinter der frxtray.exe versteckt sich das FSLogix Profile Status Tool. In der Basic View zeigt es nur den Verbrauch eines Profile Containers an. Die Screenshots sind aus einer Umgebung nur mit Office Container, daher die Gelbe Ampel und keine Anzeige bezüglich Speicherverbrauch.

FSLogix Profile Status Tool

Diese Anzeige kann noch erweitert werden, durch klick auf Advanced View. In der Advanced View sehen wir unter Events alle FSLogix bezogenen Einträge im lokalen Event Viewer.

frxtray.exe

Unter Logs werden die oben genannten Log Files ausgelesen. Hinter ODFC befindet sich der Office Container.

ODFC

FSLogix Profiles Configuration Tool

Hinter der ConfigurationTool.exe versteckt sich das FSLogix Profiles Configuration Tool. Diese Tool wurde in der Vergangenheit zur Konfiguration von Profile Container genutzt.
Ich persönlich nutze es heutzutage nur noch um redirection.xml zu erzeugen. Hierfür muss ein vorhandener Container geladen werden und danach kann man sich die Einträge erstellen.

FSLogix Profiles Configuration Tool

Anti-Virus Ausnahmen

Zielsystem (Worker)

Exkludierte Dateien & Ordner

  • %Program Files%\FSLogix\Apps\frxdrv.sys
  • %Program Files%\FSLogix\Apps\frxdrvvt.sys
  • %Program Files%\FSLogix\Apps\frxccd.sys
  • %TEMP%\*.VHD
  • %TEMP%\*.VHDX
  • %Windir%\TEMP\*.VHD
  • %Windir%\TEMP\*.VHDX
  • \\server\share\*\*.VHD
  • \\server\share\*\*.VHDX

Exkludierte Prozesse

  • %Program Files%\FSLogix\Apps\frxsvc.exe
  • %Program Files%\FSLogix\Apps\frxccd.exe
  • %Program Files%\FSLogix\Apps\frxccds.exe

FileServer

  • VHD(X) Verzeichnis, inklusive Unterverzeichnis

Registry

In der Registry kann geprüft werden, welche Einstellungen momentan gezogen werden. Diese sind ersichtlich unter folgendem Registry Pfad.

Profile Container

HKLM\SOFTWARE\FSLogix\Profiles

Registry Reference

Office Container

HKLM\SOFTWARE\Policies\FSLogix\ODFC

Registry Reference

Cloud Cache

HKLM\SYSTEM\CurrentControlSet\Services\frxccd\Parameters

HKLM\SYSTEM\CurrentControlSet\Services\frxccds\Parameters

Registry Reference

Grösse der Container

Hier ein Skript (Danke an Jim Moyle) um vorhandene Container zu verkleinern, nachdem zum Beispiel der Inhalt gelöscht wurde.

Shrink Script

Richtet dies auf dem jeweiligen File Server oder einem Admin Server ein.


Hier abgebildet das Shrink Script als mehrfach am Tag angesprochener Geplanter Task.


Und ein Skript (Danke an Kasper Johansen) zum Vergrößern der Container, falls diese am Anfang zu klein gesized worden sind.

Expand Script

Fehlendes Startmenü bei zweiter Anmeldung

Wenn der Pfad \AppData\Local\GroupPolicy in Profile Containern exkludiert wird, kann dies zu schwerwiegenden Fehlern in der Session führen (Event ID 1085). Weitere Informationen und Lösungen sind im folgenden Artikel von James Rankin zu finden.

16 Gedanken zu „FSLogix Container (Office/Profile) in Citrix Umgebungen“

  1. HI,
    ich habe einen User, zwei Sessions. Session eins zu MaschineA und Session2 zu MschineB. Ich habe verstanden, dass ich mit dem Profile Container und Multiple Connections Mode 1(RW), diese zwei Session mit schreibrechten starten kann. sehe ich das richtig? Meine erste Session startet und erstellt die profile disk, die rw disk, die office container disk.

    Die zweite Session versucht die rw.vhdx zu verwenden und darf das nicht, weil „gelocked“ und erstellt ein lokales profil an, dass beim abmelden auch nicht wieder gelöscht wird…

    im Grund ist die Frage geht das überhaupt und wenn ja was mache falsch?

    Gruß Tommy
    PS: Danke für den super Artikel zu FSlogix

    1. Hallo zusammen,
      wir haben das gleiche Thema wie User tommy. (Zugriff verschiedener Maschinen mit dem gleichen User auf ein FXLogic-Profile).
      Gibt es hierzu eine Lösung, dass beide Maschinen im RW-Modus Ihre Profile innerhalb von FXLogic mergen können?
      Vielen Dank.

      1. Hallo OrgDV,
        leider gibt es, im Moment!!!, leider keine Möglichkeit 2 mal einen Profile Container im RW Mode zu öffnen. Wir können uns gerne über Mail oder Messenger über zukünftige Änderungen unterhalten.

  2. Hallo Manuel,

    echt guter Artikel den du hier geschrieben hast und nochmal Glückwunsch zum CTA.
    Kennst du ein Script welches bereits erstellte .VHDX Container erweitert?

    Ich hab das Problem, dass die Container trotz Dynamic Setting, Anfangs zu klein gesizt waren.

    Danke & VG

    Chris

  3. Hallo Manuel,
    dein Artikel stellt die wesentlichen Schritte zur Einrichtung von FSLogix anschaulich dar. An einem Punkt komme ich (leider) zu einem unterschiedlichen Ergebnis: GPO / VHD Location. Laut deiner Erklärung können hier mehrere Speicherorte angegeben werden. Ich schaffe es in der aktuellen Version jedoch nicht mehr als nur einen Share anzugeben. Da ich in unserer Umgebung bei einem Share max. 6TB realisieren kann wäre in einer Umgebung > 1.000 User das Nutzen mehrer Shares schon sinnvoll.
    Habe ich etwas übersehen?
    Viele Grüße
    Rolf

  4. Hallo Manuel.
    Dieser Artikel hat mir sehr weiter geholfen. Hierfür ein dickes Danke an Dich.
    Aktuell habe ich das noch in der Testphase. Der Server ist aktuell eine Spielwiese. Allerdings nutze ich hier mein Arbeitskonto zu testen. Hier habe ich festgestellt, dass das neue Profil noch leer ist. Wir setzen aktuell UPM im Livesystem ein. Das ist auf dem Testserver nicht aktiv.
    Gibt es einen Weg, das UPM-Profil in die VHDX-Datei zu bekommen. Im Scharfsystem sind noch Ordnerumeitungen eingerichtet.

    Vielen Dank im Voraus für Deine Antwort.

    Bleib gesund!

    Dirk Emmermacher

      1. Hallo Manuel.
        Danke für Deine Antwort.
        Damit werde ich mich nächstes Jahr befassen. Neben der Umstellung auf Container werde ich mal schauen, ob es bei uns sinnvoll ist, noch WEM zum Einsatz zu bringen.

        Dir und Deiner Familie wünsche ich ein ruhiges Weihnachtsfest und einen guten Rutsch ins neue Jahr. Hoffen wir mal, das 2021 für alle besser laufen wird.

        LG aus Hannover

        Dirk Emmermacher

Schreibe einen Kommentar

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

* Ich bin damit einverstanden, dass diese Website die von mir übermittelten Daten speichert, damit sie auf meine Anfrage antworten kann.