Letztes Jahr hat Microsoft die Firma FSLogix übernommen. Aber was ist FSLogix und was kann ich damit in meiner Umgebung erreichen? Gekauft wurde es vermutlich, um Indizierungsprobleme mit Microsoft Office 365 in Terminalserverumgebungen zu lösen. Aber das Produkt kann viel mehr. Gerade bei Benutzerprofilen ist FSLogix ein genialer Ersatz für die schon lange veralteten Roaming Profiles. FSLogix paßt sehr gut in den Bereich der Softwarevirtualisierung und setzt auf ähnliche Technologien wie beispielsweise App-V oder ThinApp. FSLogix ist jedoch kein Ersatz für eine Softwarevirtualisierung, die auch eine Anwendungsisolation bietet (wie App-V), um gleichzeitig gleichartige Anwendungen parallel nutzen zu können.

FSLogix ist also ein echtes Universalwerkzeug und bietet eine Reihe von Lösungen, für Clients und insbesondere für nonpersistent Windows Umgebungen.
Enthalten sind die folgenden Komponenten:

Kurz: Erreichen kann man mit diesen Komponenten


Lang: Die Schlüsselfunktionen

24 05 2021 10 09 05

Systemanforderungen

Lizensierung

Zu der Lizensierung mag ich hier nicht so viel sagen. Fest steht, dass FSLogix mit der RDS CAL lizensiert ist und somit auf jedem Terminalserver genutzt werden darf. Weiterhin für diverse Office 365 Produkte und für Windows 10 Enterprise mit (E3/E5). Weiterhin auch für Education. Bitte in jedem Fall vor einem Projekt noch einmal bei Microsoft nachlesen.
Die Lizenznutzung wird im Produkt nicht überprüft. Ich vermute aber, dass FSLogix wie App-V und UE-V bald Bestandteil der entsprechenden Windows Editionen wird und somit später keine separate Installation mehr möglich ist.

Download

FSLogix ist inwzischen bei Microsoft unter der folgenden URL verfügbar
https://aka.ms/fslogix_download

Installation

Installiert wird auf dem Terminalserver, einem VDA oder auch auf einem Windows 10 FAT Client. Die jeweiligen Komponenten werden für die jeweilige Plattform denkbar einfach nur „durchgeklickt“. Notwendig ist in jedem Fall FSLogixAppsSetup.exe je nach Plattform in 32 oder 64 Bit (i.d.R. 64 Bit)
Optionale Komponenten sind:
Anwendung Maskierung Regel Editor Installation

FSLogix als Ersatz für eine Profilvirtualisierung (Profilecontainer)

Zunächst einmal schauen wir uns an, wie mit FSLogix Profile verwaltet werden. Damit werden Lösungen wie der Citrix Profile Manager und User Environment Manager überflüssig.
Profilcontainer lassen sich natürlich auch für andere Computer wie Fat Clients nutzen. Andere Funktionen werden später in anderen Blogs erläutert (geplant).
Mit Profilcontainern wird für jedes lokale Benutzerprofil eine virtuelle Festplatte (VHD) im Netzwerk erzeugt. Alle Profildaten des jeweiligen Anwenders landen damit auf dieser virtuellen Festplatte. Auf diese wird mit der Benutzeranmeldung ladend und schreibend zugegriffen. Nicht einmal temporäre Dateien müssen ein Nachteil zu einem Roaming Profile sein. Diese lassen sich umleiten. Diese landen auch dort. Was aber durchaus auch Vorteile haben kann. Für nonperstistend Systems, die mit Citrix Provisioning Services verteilt werden, ergibt sich zusätzlich der Vorteil, das für diese Profilcontainer kein Writecache notwendig ist.
Gerade in Verbindung mit großen PST Datei (Outlook) oder große Datenmengen wie durch Lotus Notes ist der FSLogix Profilcontainer ideal.


Anforderungen:

Konfiguration

Im Wuellverzeichnis von FSLogix liegt ein Gruppenrichtlinien-Template (ADMX) mit dem alle notwendigen Einstellungen durchgeführt werden können. Dies ist für die Domäne in den ADMX Suchordner \\domain.local\SysVol\domain.local\Policies\PolicyDefinitions oder nur lokal auf dem System mit der Gruppenrichtlinienkonsole nach C:\Windows\PolicyDefinitions zu kopieren. Das ADML File entsprechend in das Unterverzeichnis En-US.
Weiterhin legen wir beispielsweise einen Share unter \\SURANDC01\FSLogixProfileContainer  an mit einer Freigabe „Domain Users“ r/w. Möglich ist auch ein versteckter Share wie \\SURANDC01\FSLogixProfileContainer$.
Wir erzeugen eine neue Gruppenrichtlinie auf der OU mit den Computerobjekten, die den FSLogix Filterdriver enthalten. Die Einstellungen

image002

Bitte beachten, die Gruppenrichtlinien stehen nur dort bereit, wo auch das ADMX File (s.o.) installiert wurden.
Computerkonfiguration/Richtlinien/Administrative Vorlagen/FSLogix/Profile Container

Nun gibt es noch einige erweiterte Einstellungen. Ich will hier nicht auf alles eingehen. Hier nur eine kleine Auswahl. Im Normalfall muss der Profilecontainer nur aktiviert werden.

Damit es erst einmal funktioniert müssen die folgenden Werte gesetzt werden:

Hilfreiche Einstellungen

Exkludierte Benutzergruppen

Wenn beispielsweise die Domain Admins keinen FSLogix Profilecontainer bekommen sollen, dann muss ein Ausschluß definiert werden. Dazu legt

FSLogix einige lokale Gruppen an:

image003


Per Standard ist die Gruppe „Jeder“ bzw. „Everyone“ in der Gruppe FSLogix Profile Include List enthalten
Das Hinzufügen eines Benutzers zur Gruppe FSLogix Profile Exclude List bedeutet, dass der FSLogix-Agent keinen FSLogix-Profilcontainer für den Benutzer anhängt. Wenn ein Benutzer sowohl Mitglied der Gruppen exclude als auch include ist, hat exclude Vorrang.
Ich nehme die Gruppe „Domain Admins“ mit auf. Die Vorgehensweise ist etwas kompliziert. Jedoch können auch über Gruppenrichtlinien oder per PowerShell lokale Gruppen konfiguriert werden.

image004

Profilcontainer ist nun konfiguriert und einsatzbereit. Um zu überprüfen, ob der Profilcontainer funktioniert, muss eine Anmeldung erfolgen. Anschließend können wir kontrollieren, dass ein Ordner mit dem Benutzernamen und der SID erstellt wird.

image005

 

Konfigurieren der Gruppenmitgliedschaft mit GroupPolicyPreferences

Die Gruppen für FSLogix werden am besten in den GPP (Group- Policy Preferences) brechtigt werden. Dabei ist zu beachten, dass der Modus "Aktuallisieren" und nicht "Ersetzen" gewählt . Ansonsten kommt es zu dem hier von Marco beschriebenen Problem: profiles won't logoff completely

Das System verwendet nun die SID der lokalen "include\exclude"-Gruppen. Wenn das GPO also auf "Ersetzen" statt auf "Aktualisieren" eingestellt ist, funktioniert es nach einem gpupdate innerhalb der Benutzersitzung nicht mehr. Das passiert weil die lokalen Gruppen neu erstellt werden (PVS) und neue SIDs erhalten. Die VHDX wird dann bei der Abmeldung nicht abgetrennt.

FSLogix Update GPP

 

Gleichzeitige Verbindungen mit Profil-Containern

Als umfangreiche Ergänztung an dieser Stelle das Verahlten bei Mehrfachverbindungen und die Konfigurationsoptionen dazu.

Gleichzeitige Verbindungen beziehen sich darauf, dass ein Benutzer mehrere gleichzeitige Verbindungen zu derselben Windows-Instanz herstellen kann. Gleichzeitige Verbindungen werden im Allgemeinen in bestimmten Umgebungen verwendet, beispielsweise bei einer Citrix oder Microsoft-Terminalserververbindung .

Um mehrere Verbindungen zu erlauben, muss der folgende Schlüssel gesetzt werden:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\fSingleSessionPerUser (DWORD) = 0,

Nach dem Konfigurieren der Umgebung werden Profilcontainer so konfiguriert, dass sie die gleichzeitige Konfiguration durch Einstellung unterstützen:

Profile Container: HKEY_LOCAL_MACHINE\SOFTWARE\FSLogix\Profiles\ConcurrentUserSessions(DWORD) = 1

Office Container: HKEY_LOCAL_MACHINE\SOFTWARE\Policies\FSLogix\ODFC\ConcurrentUserSessions(DWORD) = 1

Mehrfache Verbindungen

Mehrfachverbindungen mit Profil-containern werden durch die Verwendung von VHD(X)-Differenzimages unterstützt. Die Registrierungskonfiguration und Funktionalität für Office Container und Profil Container ist unterschiedlich.

Mehrfachverbindungen mit Profilcontainer

Der Profilcontainer wird für mehrere Verbindungen mit ProfileType konfiguriert, wenn die Konfiguration des Profilcontainers ProfileType auf 0, 1, 2 oder 3 gesetzt ist.

Tipps

Antivirus Ausnahmen:

Migration lokaler Profile in eine VHD:

Wie verschiebt man ein aktuelles Profil, Best Practice-lInk: https://docs.microsoft.com/de-de/fslogix/
FRxtray unter C:\ProgramData\Microsoft\Windows\Start Menu\Programme\Startup verlinken
Policy auf Rechner ablegen
Rechte auf VHD reduzieren -> Advanced -> Set access control for attaching VHDs > O:BAG:DUD:PAI(A;OICI;FA;;;%sid%) -> Klappt noch nicht
Ich habe noch einige Einstellungen optimiert

(get-acl [DIR]| fl)

Abschließend noch ein netter Kundenbericht zum Einsatz. Vielen danke dafür Markus!

Einer unserer Kunden  war so nett für diesen Artikel einen Bericht über seine eigene Umgebung zu schrieben. Die ist mit App-V schon seit mehreren Jahren im Einsatz. Der Artikel ist an einigen stellen leich gekürzt. @Markus wenn Du hier mal Deinen ganzen Namen sehen willst, dann melde Dich bitte. Ansonsten vielen Danke auch an Fabian 

Erfahrungswerte:

Unsere Erfahrungen mit FS Logix als Profillösung sind bislang gut.
Wenn es zu Problemen mit korrupten Profilen kam, so hing das in der Regel damit zusammen, dass einer der CTX Server einen BSOD bekommen hat und bei manchen Usern das Profil dann korrupt wurde.

Das hat sich in der Regel dadurch gezeigt, dass entweder direkt nach der Anmeldung die Meldung erschien, dass diese ein temporäres Profil erhalten haben, oder das bestimmte Funktionen wie der Schnellstart, gepinnte Verknüpfungen auf der Taskleiste, die Taskleiste selbst etc. nicht mehr funktioniert haben.
Das FS-Logix Profil kann über den Director leider nicht mehr zurückgesetzt werden. Dafür haben wir ein Powershell Script geschrieben, welches das Profil, sobald es nirgends mehr gemounted ist, vollumfänglich löscht.

Wir sind in dieser Woche in das Problem geraten, dass unsere Profile sehr groß wurden. Teilweise lagen diese bei 10 GByte, und bei manchen Usern sogar noch höher. Löschen der Daten in den Profilen reicht nicht allein aus, da die VHDX an sich nicht kleiner wird. Dafür haben wir jetzt aber im Internet ein gutes Script gefunden, welches die Größe der VHDX entsprechend optimiert. Nur damit du es mal gehört hast. (Stichwort Optimize-VHD)

Und was mir auch schon aufgefallen ist, aber das kann auch Konfigurationssache sein, da ich mich damit noch nicht näher beschäftigt habe:
Nehmen wir an ein Benutzer hat eine PA geöffnet. Auf dem Server ist die VHDX dann gemounted. Öffnen wir jetzt eine neue Desktopsitzung auf einem neuen Server, so dauert die Anmeldung sehr lange, da das Profil schon beim ersten Server gemounted ist. Ich meine dann wird es nur Read-Only gemounted und Änderungen landen auch nicht im Profil. Von daher muss man da aufpassen bei der Einrichtung.

Ebenfalls haben wir versucht von einer Version auf eine andere downzugraden, was aber dazu geführt hat, dass einige Profile nicht mehr funktioniert haben mit der alten Version. Von daher muss man hier wohl aufpassen.
Sobald wir dann wieder die ursprüngliche Version bereitgestellt hatten, gingen die Profile wieder ohne sie neu anzulegen. Was genau der Grund hierfür war wissen wir nicht.

Wenn man neue Ordner in die Exclusion List packt, so wird der bisherige Inhalt im Profil nicht gelöscht. Das müsste man dann manuell machen um z.B. Platz zu sparen.

Support von Microsoft:

FS-Logix wurde ja von Microsoft aufgekauft. Zuvor haben wir keine Support Fälle mit FS-Logix gehabt, aber eine Fehlerquelle der CTX Server BSODs hing mit einer FS-Logix Komponente zusammen und der Response von Microsoft Seite auf das Ticket war nicht gut. 

Erfahrungswerte in Zusammenarbeit mit App-V:

Da können wir nicht wirklich viel zu sagen. Uns ist bislang nichts aufgefallen.

Profilcontainer im Einsatz:

Ja, die haben wir im Einsatz.

Das sind Bilder von der GPO für unseren WinDesktop.

 

image006

image007

image008

Konvertieren von Roaming Profiles nach FSLogix

Microsoft hat ein Prowershell Modul zum konvertieren von Roaming Profiles zu FSLogix Profile-Container gebaut. Das ist hier zu finden: Module Converter Dabei ist zu beachtet, dass es sich wohl um ein Preview handelt und das alles eventuell nicht funktioniert. Hier der direkte link in dem Microsoft Artikel: https://aka.ms/FSLogixMigrationPreviewModule

Befehle:

Convert-UPDProfile - Konvertiert eine User Profile Disk in das FSLogix Format

Convert-RoamingProfile - Konvertiert ein Roaming Profile in das FSLogix Format

Convert-RoamingProfile -ParentPath <String> -Target <String> -VHDMaxSizeGB <UInt64> -VHDLogicalSectorSize <String> [-VHD] 

Convert-RoamingProfile -ProfilePath "C:\Users\User1" -Target "\\Server\FSLogixProfiles$" -MaxVHDSize 20 -VHDLogicalSectorSize 512 -VHD -IncludeRobocopyDetails -LogPath C:\temp\Log.txt

Convert-UPMProfile - Konvertiert ein UPM-Profil in einen FSLogix-Profilcontainer. 

Für Citrix Profile hat sich das folgende Vorgehen bewährt:

Wir benutzen das Skript aus dem folgenden Artikel: Convert Citrix UPM to FSLogix Profile Containers - Xenit

  1. Benutzernamen aus dem Profilpfad - Sie müssen diesen Teil für Ihre Umgebung bearbeiten
  2. Benutzt den Benutzernamen, um die SID zu erhalten (FSLogix-Profile verwenden den Benutzernamen und die SID, um den Profilordner zu benennen)
  3. Erzeugt den FSLogix-Profilordner (falls er nicht existiert)
  4. Legt den Benutzer als Eigentümer dieses Ordners fest und gibt ihm die volle Kontrolle
  5. Erstellt die .vhd (meine Vorgabe ist 30GB dynamisch - (in Zeile 70 zu ändern)
  6. Hängt die .vhd an
  7. Erzeugt eine Partition und formatiert sie ntfs
  8. Weist diesem Laufwerk den Buchstaben T zu (Buchstabe in Zeile 73 des Skriptes)
  9. Legt das Verzeichnis T:\Profile an
  10. Gewährt System/Administratoren und dem Benutzer volle Kontrolle über das Profilverzeichnis
  11. Kopiert das Profil aus dem UPM-Pfad in das T:\Profile-Verzeichnis mit /E /Purge
  12. Erstellt T:\Profile\AppData\Local\FSLogix, wenn es nicht existiert
  13. Erstellt T:\Profile\AppData\Local\FSLogix\ProfileData.reg, wenn es nicht existiert