Benutzerprofile mit Microsoft FSLogix verwalten - Profilneurose ade!
Mit dem Zukauf des Anbieters FSLogix hat Microsoft eine neue Software für das Management von Benutzerprofilen im Angebot. FSLogix ist deutlich einfacher in der Handhabung als frühere Ansätze und spielt seine Stärken insbesondere in Verbindung mit Office 365 und virtuellen Desktops aus. Wir stellen FSLogix und seine Einsatzmöglichkeiten im Detail vor.
Während der Konferenz Citrix Technology Exchange im Dezember 2018 überraschte Microsoft mit der Übernahme des Herstellers FSLogix [1]. Der Rahmen für diese Ankündigung war durchaus passend, hatte sich FSLogix doch – auch im Citrix-Umfeld – bereits seit 2012 mit Lösungen für das Management von Benutzerprofilen einen Namen gemacht. Und die Benutzerprofile haben seit jeher den Administratoren von Terminalservern und virtuellen Desktops Kopfschmerzen bereitet – umso mehr getrieben durch die Verbreitung von Office 365 und damit steigende Anforderungen an die Profile. So verlangen etwa Offline-Caches von Outlook und OneNote nennenswert Speicherplatz im Profil. Klassische servergespeicherte Profile, die beim Start einer Benutzersitzung sowie beim Abmelden über das Netzwerk übertragen werden wollen, geraten damit schnell an ihre Grenzen.
Auch die herkömmliche Ordnerumleitung mittels Gruppenrichtlinien erzeugt im Fall der Anwendungsdaten mehr Probleme, als sie löst. Manche Applikation verweigert komplett den Dienst, wenn sie ihre Daten nicht im Pfad "%userprofile% \ AppData", also typischerweise unterhalb von "C:\Users\<Benutzername>\AppData", sondern in einem Netzwerkpfad vorfindet. Andere Applikationen zeigen auf Grund von Latenzen beim Netzwerkzugriff auf den umgeleiteten Ordner erst später unerwartetes Verhalten. In all diesen Fällen verspricht FSLogix Abhilfe.
Für Kunden ohne weitere Kosten
Befürchtungen, Microsoft könnte FSLogix nur im Rahmen der hauseigenen Public-Cloud-Dienste weiterverwenden, haben die Redmonder glücklicherweise ausgeräumt. Nachdem es einige Monate ruhig wurde um FSLogix, hat Microsoft die Lösung Mitte 2019 zur Nutzung in der Cloud sowie on-premises freigegeben. Im Gegensatz zu früheren Versionen verlangen Installationen ab der FSLogix-Ausgabe 1907 keinen Lizenzschlüssel mehr.
Kunden diverser Lizenzpläne von Microsoft 365 sowie Windows 10 Enterprise oder Education dürfen FSLogix ohne weitere Kosten verwenden. Gleiches gilt für die Lizenzmodelle Windows 10 VDA pro User sowie Remote Desktop Services Client Access Licenses (RDS-CAL). Außerdem ist FSLogix integraler Bestandteil des seit Herbst 2019 verfügbaren Clouddienstes "Windows Virtual Desktops (WVD)", mit dem Microsoft virtuelle Desktops und Remote Desktop Services als fertige Lösung in der Azure-Cloud anbietet [2].
Die beiden Platzhirsche im Bereich der Desktopvirtualisierung, VMware und Citrix, sind dabei, ihre Lösungen auf Basis von WVD ebenfalls als Cloud-Service anzubieten. Selbst Citrix empfiehlt inzwischen, auch on-premises nicht mehr den eigenen User Profile Manager (UPM), sondern stattdessen FSLogix einzusetzen.
VHD(X)-Dateien als Container für Profile
FSLogix fungiert als Ersatz sowohl für die herkömmlichen servergespeicherten Profile als auch für die Ordnerumleitung der Gruppenrichtlinien. Technisch unterstützt die Software Microsofts Clientbetriebssysteme in den 32- und 64-Bit-Varianten ab Windows 7 sowie Server ab Windows Server 2008 R2 aufwärts. Dabei nutzt FSLogix Filtertreiber für das Dateisystem sowie die native Fähigkeit der Betriebssysteme, virtuelle Festplatten in Form von VHD(X)-Images zu mounten (Bild 1).
FSLogix erstellt pro Benutzer ein solches Image in einem Netzwerkpfad und hängt dieses zur Laufzeit ein. Somit entfällt die Notwendigkeit, Daten bei der Anmeldung aus dem Netzwerk ins lokale Dateisystem der jeweiligen Maschine zu kopieren und bei Abmeldung wieder zurückzuschreiben. Das ist insbesondere für nicht-persistente Terminalserver und virtuelle Desktops nützlich, die aus einem gemeinsamen Master-Image starten und regelmäßig auf ihren ursprünglichen Zustand zurückgesetzt werden.
Für die installierten Applikationen agiert FSLogix zudem völlig transparent, da die Pfade im Profil, in dem die Anwendungen ihre Daten ablegen, als lokale Pfade erscheinen. Im Gegensatz zu bisherigen Lösungen für das Profilmanagement entfällt meist auch die Notwendigkeit, komplexe Regelwerke für Ein- und Ausschlüsse auf Basis von Pfaden zu pflegen. Mittels Caching reduziert FSLogix zudem die IO-Last und sorgt so dafür, dass die Performance stimmt.
Zur Integration mit FSLogix benötigen die Maschinen jeweils einen knapp 50 MByte großen Installer [3]. Ihre Regeln bezieht die Software anschließend komplett über Registrierungsschlüssel. Zu deren zentralen Konfiguration liefert Microsoft passende Vorlagen für Gruppenrichtlinien und zwei Regeleditoren für erweiterte Funktionen. Darüber hinaus sind keine weiteren Infrastrukturkomponenten wie etwa Datenbank- oder Webserver erforderlich.
Vier Kernfunktionen
FSLogix deckt vier Kernfunktionen ab. Die "Profile Container" kümmern sich um komplette Benutzerprofile mit allen darin enthaltenen Anwendungsdaten. Die "Office 365 Container" können zusätzlich dazu Verwendung finden oder auch einzeln, falls bereits eine anderweitige Software für die Verwaltung von Benutzerprofilen im Einsatz ist, die noch nicht komplett abgelöst werden soll. In diesem Fall adressiert FSLogix nur den Teil des Profils, der für die Anwendungen aus dem Office-365-Portfolio relevant ist. Das betrifft vor allem Offline-Caches von Outlook, OneNote, Skype for Business oder auch Teams.
Sie können die beiden FSLogix-Funktionen der "Profile Container" und "Office 365 Container" in Kombination verwenden. Dann bindet der FSLogix-Agent zwei VHD(X)-Dateien pro Benutzer ein – eine nur für Elemente von Office 365, wie den Outlook-Cache, und eine weitere für das übrige Benutzerprofil. Dies reduziert natürlich insgesamt nicht den Bedarf an Storage, ist aber im Hinblick auf die Backupstrategie praktisch. So können Sie die reinen Caching-Daten von Office 365 bei der Datensicherung weglassen und nur das restliche Profil sichern.
Zu guter Letzt sollen "App Masking" und "Java Redirection" mit ihren separaten Regeleditoren dabei helfen, die Anzahl an Master-Images für virtuelle Desktops möglichst gering zu halten. Das "App Masking" macht dazu in einem Image enthaltene Anwendungen nur für die Gruppen von Benutzern sichtbar, die diese auch benötigen. Die "Java Redirection" erlaubt es, mehrere Versionen von Java parallel zu installieren und bestimmten Anwendungen oder Websites dann gezielt eine dieser Versionen zuzuordnen.
Speicherplatzbedarf einplanen
Bevor wir uns der praktischen Anwendung von FSLogix widmen, gilt es, den dafür nötigen Storage zu kalkulieren. Die Profile Container sowie die Office 365 Container verwenden VHD(X)-Images, die je nach Platzbedarf dynamisch bis zu einer Größe von 30 GByte anwachsen können. Diese maximale Größe durch Richtlinien zu beschränken, ist übrigens keine gute Idee. Wenn der Container seine maximale Größe erreicht, können Betriebssystem und darin laufende Anwendungen nicht damit umgehen und unvorhergesehene Fehler bis hin zum Datenverlust produzieren.
Beachten Sie weiterhin, dass eine VHD(X)-Datei zwar nach Bedarf wächst, jedoch nicht automatisch wieder schrumpft, falls im Profil vorhandene Daten gelöscht werden. Um die Größe einer VDH(X)-Datei zu reduzieren, können Sie diese an einer beliebigen Management-Maschine per PowerShell anhängen und anschließend verkleinern:
Mount-VHD .\profile_<username>.vhdx -ReadOnly
Optimize-VHD .\profile_<username>.vhdx -Mode Full
Dismount-VHD .\profile_<username>.vhdx
Ausgefeiltere Skripte zum Ändern und Verkleinern der Container stellt Microsoft online bereit [4]. Solche Aktionen funktionieren aber natürlich nur, wenn der Profil-Container gerade nicht in Benutzung ist, und bringen somit eine Betriebsunterbrechung für Anwender mit sich.
Unter Windows 10 und Windows Server 2019 ohne nennenswert installierte Software starten Profile mit einer Größe ab 400 MByte aufwärts. Ein Blick auf typische Profilgrößen auf Ihren physischen Computern mit einer üblichen Ausstattung an Software vermittelt ein erstes Gefühl dafür, mit welchen Datenmengen Server-seitig im Betrieb zu rechnen ist.
Je nach Nutzerverhalten sollten Sie mit einer durchschnittlichen Größe der Container zwischen 5 und 15 GByte in die Planung einsteigen, wobei Abweichungen nach unten oder oben natürlich möglich sind.
Insbesondere Outlook und OneDrive können die Profilgröße nach oben treiben. In den Plänen E3 und E5 von Office 365 bietet Microsoft Postfächer mit jeweils 100 GByte an und Outlook verwendet als Standard eine maximale Größe von 50 GByte für den Offline-Cache. Hier ist also absehbar, dass Nutzer die Größe des Profil-Containers sprengen werden, und es empfiehlt sich, die Anzahl an vergangenen Monaten, deren Daten Outlook in den Cache lädt, per Gruppenrichtlinie zu begrenzen.
Bedenken Sie ebenso Ihre Anwender von OneDrive for Business, die in den zuvor genannten Office-365-Plänen sogar jeweils 1 TByte an Cloud-Speicher nutzen dürfen. Hier helfen Ihnen die OneDrive-Funktion "Dateien bei Bedarf" sowie der Ausschluss bestimmter Dateitypen von der Synchronisation dabei, den Speicherhunger des OneDrive-Clients zu zügeln.
Weiterhin von der Art der Nutzung abhängig sind die IOPS. Typisch sind hier fünf bis 15 Operationen pro Sekunde, wobei die Latenz zwischen virtuellem Desktop und dem Storage unter 5 ms liegen sollte. Sie können im Falle einer Implementierung on-premises eine beliebige SMB-Freigabe auf einen nativen Windows-Dateiserver oder auch SAN/NAS eines Drittanbieters verwenden. Außerdem unterstützen die WVD in der Cloud die Optionen Azure Files, Azure NetApp Files sowie Storage Spaces Direct [5].
Dateifreigabe konfigurieren
Gehen wir im Folgenden davon aus, dass FSLogix in Ihrer lokalen Infrastruktur zum Einsatz kommen soll, legen Sie im ersten Schritt auf einem Dateiserver eine SMB-Freigabe für die VHD(X)-Dateien an. Geben Sie bei der Einrichtung der Freigabe der Gruppe "Jeder" Vollzugriff. Eine sichere Konfiguration, sodass jeder Benutzer nur auf sein Profil, jedoch auf kein anderes zugreifen kann, erreichen Sie anschließend durch die NTFS-Berechtigungen. Benutzer erhalten die Berechtigungen "Ändern" und "Schreiben" auf dem freigegebenen Ordner selbst, jedoch nicht auf Unterordner und Dateien.
Die eingebaute Gruppe "ERSTELLER-BESITZER" erhält Vollzugriff nur auf Unterordner und Dateien. Außerdem bekommt die eingebaute Gruppe "SYSTEM" Vollzugriff auf den Ordner sowie alle darin enthaltenen Unterordner und Dateien. Optional gilt dies ebenso für die Gruppe der Administratoren. Für den Betrieb ist Letzteres zwar nicht unbedingt erforderlich, es erleichtert aber Support und Wartung der Profile. Zu guter Letzt nehmen Sie die VHD(X)-Dateien in der Freigabe aus Gründen der Performance vom Scannen auf Viren aus.
FSLogix-Agenten installieren
Nun installieren Sie auf Ihren Terminalservern oder virtuellen Desktops mit der passenden Variante der "FSLogixAppsSetup.exe" den Agenten für das Profilmanagement. Dazu müssen Sie lediglich die Lizenzbestimmungen akzeptieren. Ansonsten bietet die Setuproutine keinerlei Optionen. Eine unbeaufsichtigte Installation ganz ohne Interaktion gelingt per Kommandozeile. Nach der Installation, die ohne Neustart auskommt, finden Sie bei den Diensten in der Computerverwaltung zwei neue Einträge, die "FSLogix Apps Services" sowie den "FSLogix Cloud Caching Service".
Ob und wie diese Dienste in Aktion treten, steuern Sie über Gruppenrichtlinien und Konfigurationsdateien. Kopieren Sie die ADMX-Vorlage und die zugehörige Sprachdatei in die Ordner, die auch Ihre übrigen ADMX-Vorlagen enthalten. Die Dateien liegen auf dem System, das Sie zur Verwaltung von Gruppenrichtlinien verwenden, lokal unter "C:\Windows\PolicyDefinitions" oder im Netz in der SYSVOL-Freigabe unter "\\<Ihre-Domain> \ SYSVOL \ <Ihre-Domain> \ Policies \ PolicyDefinitions", falls Sie einen zentralen Speicher für die Vorlagen verwenden [6].
Konfiguration mittels Gruppenrichtlinien
Öffnen Sie das "Group Policy Management", weisen Sie den OUs, die Terminalserver oder virtuelle Desktops enthalten, ein neues GPO zu und editieren Sie dieses. Die minimale Konfiguration von FSLogix benötigt lediglich zwei Einstellungen. Navigieren Sie im "Group Policy Management Editor" zum Ordner "Computer Configuration \ Policies\ Administrative Templates \ FSLogix\ Profile Containers". Aktivieren Sie nun im rechten Teil des Fensters die Einstellung "Enabled". Ändern Sie den Status der Einstellung von "Not configured" auf "Enabled" und setzen Sie weiter unten zusätzlich noch den Haken vor der gleichnamigen Checkbox (Bild 2).
Optional sorgen Sie mit den Einstellungen "Prevent login with failure" und "Prevent login with temporary profile" im Unterordner "Advanced" dafür, dass Anwender künftig ausschließlich mit FSLogix-Profilen angemeldet werden. Eine weitere praktische Einstellung finden Sie im Unterordner "Container and Directory Naming". Aktivieren Sie dort "Swap directory name components". Damit erreichen Sie, dass FSLogix in der Freigabe für die Profil-Container für die Namen der Unterverzeichnisse pro Anwender dessen Benutzernamen gefolgt von der jeweiligen SID verwendet. Standardmäßig stünde die SID an erster Stelle, was im Supportfall das Auffinden einzelner Profile erschwert.
Den Dateityp des Containers, VHD oder VHDX, legen Sie mit der Einstellung "Virtual Disk Type" fest. VHD ist hier der Standard, doch das neuere VHDX-Format bietet Vorteile bei der Wartung der Image-Dateien per PowerShell.
Aktualisieren Sie nun die Gruppenrichtlinien auf Ihren Terminalservern oder virtuellen Desktops und melden Sie Benutzer an. Nun sollten Sie auf Ihrem Dateiserver feststellen, dass FSLogix in der Freigabe pro Benutzer einen Unterordner und in diesem Unterordner jeweils eine Image-Datei nach dem Schema "profile_ <username>.vhdx" erstellt. Diese Dateien finden Sie auf den Terminalservern und Desktops jeweils in der lokalen Computerverwaltung bei den Datenträgern als eingehängte Disk wieder.
Sonderfall Office 365
Analog dazu konfigurieren Sie separate Container für Office 365 mit den Einstellungen unter "Computer Configuration\ Policies\ Administrative Templates...\ FSLogix\ Office 365 Containers". Mittels diverser Include-Regeln steuern Sie dabei, welche Daten von Office 365 der FSLogix-Agent gesondert behandeln soll.
Anschließend hängt FSLogix Benutzer-Sitzungen jeweils eine zweite VHDX-Datei mit einem Namen der Form "odfc_ <username>.vhdx" an. Das grundlegende Setup von FSLogix ist damit bereits erledigt. Im Vergleich mit Microsofts bisherigen Ansätzen, sowohl der Ordnerumleitung als auch den User Profile Disks (UPD), ist das Ganze schnell implementiert und einfach in der Handhabung.
Die erweiterten Funktionen zur Maskierung von Anwendung und Umleitung von Java-Versionen helfen Ihnen in komplexeren Szenarien dabei, die Anzahl an Master-Images für Ihre Terminalserver und virtuellen Desktops gering zu halten. Sie können mehrere Anwendungen in ein und demselben Image installieren und vor Benutzergruppen verbergen, die diese nicht sehen sollen. Dazu installieren Sie auf einem Referenzsystem, das alle gewünschten Anwendungen sowie Java-Versionen enthält, den "FSLogix Apps RuleEditor" und den "FSLogix Apps JavaRuleEditor". Mit diesen Tools erstellen Sie grafisch geführt Regelsätze, die Sie anschließend mitsamt den FSLogix-Agenten auf die Zielsysteme verteilen [8].
Last writer wins
Eine Frage bleibt uns allerdings auch beim Einsatz von FSLogix weiterhin erhalten, nämlich wie konkurrierende Zugriffe zu behandeln sind, wenn ein und derselbe Benutzer gleichzeitig mehrere Sitzungen betreiben möchte. Konkurrierende Zugriffe bezeichnen in diesem Fall parallele Sitzungen auf ein und demselben Terminalserver, was vor allem in Verbindung mit Citrix XenApp relevant ist. Dies wird möglich, wenn Sie die Einstellung "Allow concurrent user sessions" im Bereich "Computer Configuration\ Policies\ Administrative Templates...\ FSLogix\ Profile Containers" der Gruppenrichtlinien aktivieren.
Ebenfalls praxisrelevant sind mehrere parallele Sitzungen auf unterschiedlichen Maschinen, falls etwa ein Benutzer primär einen virtuellen Desktop verwendet und einzelne seltener genutzte Anwendungen von Terminalservern hinzulädt. In diesem Szenario gilt, dass es nicht möglich ist, ein und dasselbe Benutzerprofil auf mehreren Maschinen gleichzeitig beschreibbar einzubinden.
FSLogix begegnet dieser Herausforderung mit der Gruppenrichtlinien-Einstellung "Profile type". Diese regelt, ob eine Maschine die VHD(X)-Dateien mit den Profilen nur lesend oder auch beschreibbar einbindet. FSLogix verwendet dann bei Konflikten auf Grund gleichzeitiger Zugriffe Differenzdateien.
Falls per Gruppenrichtlinie als Profiltyp ein "Read-only profile" vorgegeben ist, verwirft der FSLogix-Agent die Differenzdatei bei der Abmeldung. Der Profiltyp "Read-write profile" veranlasst FSLogix dagegen, in der Differenzdatei enthaltene Änderungen mit dem ursprünglichen Profil zusammenzuführen [7].
Das als "Last writer wins" bekannte Prinzip des Profilmanagements gilt allerdings auch für FSLogix. Ändert ein Anwender also einen Registrierungsschlüssel oder eine Datei in seinem Profil gleichzeitig in zwei Sitzungen, behält die Sitzung die Oberhand, aus der sich der Anwender zuletzt abmeldet.
Ausnahmen per XML-Datei
Selten werden individuelle Nacharbeiten nötig, falls FSLogix erwünschte Ordner nicht in die VHD(X)-Images aufnehmen sollte oder falls Sie Ordner explizit vom Profilmanagement ausschließen möchten, um die serverseitig gespeicherten Images schlank zu halten. Auch hierfür hat FSLogix eine Lösung parat.
Aktivieren Sie im Unterordner namens "Advanced" der Gruppenrichtlinien die Einstellung "Provide RedirXML file to customize redirections" und geben Sie einen lokalen oder UNC-Pfad an, in dem Sie dem FSLogix-Agenten eine XML-Datei bereitstellen, die Einschlüsse und Ausschlüsse definiert.
Mittels der dokumentierten Syntax [9] schreiben Sie eine solche von Hand oder Sie verwenden das "FSLogix Profile Configuration Tool", das Sie im Installationsverzeichnis unter "C:\ Program Files \ FSLogix \ Apps" finden (Bild 3).
Öffnen Sie eine beliebige VHD(X)-Datei als Referenz. Nun definieren Sie die gewünschten Regeln im grafischen Editor und speichern Ihre Konfiguration mittels "Save template" als "redirections.xml" im per Gruppenrichtlinie konfigurierten Pfad. Die FSLogix-Agenten werden diese dann einlesen und die Ausnahmen anwenden.
Fazit
Insbesondere für den neuen Clouddienst WVD benötigte Microsoft eine möglichst simple Lösung für das Profilmanagement. FSLogix meistert diese Aufgabe mit Bravour und dankenswerterweise bieten die Redmonder die Software ihren Kunden ohne weitere Kosten auch zur Verwendung on-premises an. Das Ganze ist wesentlich einfacher in der Handhabung als bisherige Ansätze. Wer derzeit noch herkömmliche servergespeicherte Profile, Ordnerumleitung per Gruppenrichtlinien, Microsoft UPD oder Lösungen von Drittanbietern einsetzt, sollte FSLogix unbedingt ausprobieren. (ln)
von Dr. Christian Knermann / Aus dem IT-Administrator Magazin Ausgabe 1/2020: LAN, WAN & SDN Seite 40-45
-
FSLogix, Now a Part of Microsoft!
-
Windows Virtual Desktop available worldwide
-
FSLogix-Download
-
Miscellaneous Scripts for FSLogix
-
Storage options for FSLogix
-
Central Store for Group Policy Templates
-
Configure Profile Container for concurrent connections
-
Tutorial: Implement FSLogix Application Masking
-
Profile Container Content