In diesem Artikel betrachten wir hingegen, wie FSLogix Anwendungen mit der Funktion „Application Masking" (oder auch „App Masking") auf eine sehr einfache und intuitive Art Objekte im System ausblenden und verschieben kann. Damit wird einem Administrator die Möglichkeit gegeben, die Sichtbarkeit von Gruppen von Dateien, Verzeichnissen und Registrierungsobjekten zu steuern. Typischerweise repräsentieren diese Gruppen von Objekten eine Windows-Anwendung, Internet-Browser-Plugins, Microsoft Office-Add-Ins usw.
Wir können festlegen, dass ein bestimmter Benutzer oder eine bestimmte Gruppe die Anwendung sehen kann, während andere Benutzer oder Gruppen dies nicht können. Zum Beispiel könnte auf einem Terminalserver Office 2019 und Visio installiert sein. Mit FSLogixwir die Sichtbarkeit dieser Anwendungen an die Mitgliedschaft in bestimmten Active Directory-Gruppen binden, zum Beispiel „Offic" und „Visio" binden. Durch einfaches Hinzufügen und Entfernen von Benutzern aus diesen Gruppen werden diese Anwendungen für jeden Benutzer sichtbar oder verborgen.
Das Resultat erinnert sehr stark wiederum an eine Anwendungsverteilung mit App-V. Das ist es jedoch nicht wirklich denn eine Anwendung muss noch immer installiert werden und ist daher auch nicht in einem Container virtualisiert. Dennoch ergeben sich für viele Umgebungen mit FSLogix ähnliche Vorteile wie mit Microsoft App-V.
FSLogix ermöglicht es, dass beispielsweise Applikationen auf einem Masterimage für bestimmte Benutzergruppen nicht mehr nutzbar sind und auch nicht angezeigt werden. Die Benutzer sollen nur die Anwendungen sehen und starten können, die ihnen zugewiesen wurden. Aus meiner Sicht ist das fast besser, als der Microsoft AppLocker mit dem der Start von unerwünschten Anwendungen verhindert wird denn was der Nutzer nicht sehen kann, kann der Nutzer auch nicht starten. Das soll natürlich keine Empfehlung sein, auf den Applocker aus Sicherheitsgründen zu verzichten. Das Ergebnis ist daher auch ähnlich, als wenn eine App-V Anwendung einem Benutzer zugewiesen wird denn. Also es werden beispielsweise von einem Anwender auf einem Terminalserver nur bestimmte Anwendungen gesehen.
FSLogix basiert auf einem Filtertreiber und kann unter anderem für physikalische Systeme (FAT Clients), virtuelle Desktops (Terminalserver, CVAD) oder Cloud-Desktops (WVD) verwendet werden. So können Unternehmen die Effizienz steigern (wieder mehr Apps auf dem Masterimage) und gleichzeitig die Komplexität der Infrastruktur reduzieren. FSLogix Apps lässt sich ind ie Lösungen von Microsoft VMware und Citrix integrieren (OnPrem oder in der Cloud).
Nach dem Herunterladen unter https://aka.ms/fslogix_download wird der Agent (FSLogixAppsSetup.exe) je nach Plattform in 32 oder 64 Bit (i.d.R. 64 Bit) durch anklicken, weiter, weiter usw. für die jeweilige Architektur auf einem Client oder Server (Terminalserver) installiert. Für eine Silent Installation werden die Schalter /quiet und /norestart unterstützt.
Weiterhin benötigen wir den AppsRuleEditor (AppsRuleEditorSetup.exe) um die Regeln zum Verstecken und Anzeigen von Apps zu erstellen. Die Installation unterstützt die gleichen Schalter oder erfolgt über die GUI mit einem Doppelklick.
Alternativ, wer gerne verschiedene Java Versionen maskieren möchte kann gleich den Java Editor mit installieren.
FSLogixAppsSetup.exe /Silent /Norestart
FSLogixAppsRuleEditorSetup.exe /Silent /Norestart
Mit installiert werden automatisch die Visual C++ Runtime 2015 in 32 und 64 Bit. Weiterhin sind anschließend die folgenden Filterdriver aktiv (fltmc.exe)
frxccd.sys FSLogix Virtual Hard Drive Filter Driver (Alt: 306000)
frxdrv.sys FSLogix Virtualization Filter Driver Alt: 26570)
frxdrvvt.sys FSLogix Redirection Filter Driver (Alt: 132700)
Der frxdrv.sys-Treiber ist ein kombinierter Dateisystem- und Registry-Filter-Treiber (Mini-Filter). Er ist für die Behandlung von Dateisystem- und Registry-Anfragen zuständig, damit das Verstecken und die Umleitung funktionieren.
Der frxdrvvt.sys-Treiber ist ein Dateisystemfilter-Treiber (Minifilter). Er bietet die FSLogix Umleitungsfunktionalität (Umleitung von Profilen nach VHDX).
Ich habe nach der „Silent" Verteilung hier übrigens keinen Neustart gebraucht. Das muss aber nicht die Regel sein und kann sich auf anderen Systemen anders verhalten.
Primär nutzt FSLogix Apps Regeln. Davon gibt es zwei Arten:
Hiding-Rule (Verstekcen) und Redirection-Rules (Umleiten).
Eine Hiding-Rule gibt einfach eine Datei, ein Verzeichnis, einen Registrierungsschlüssel oder einen Registrierungswert an, der versteckt werden soll. Eine Umleitungsregel hat eine Quelle, ein Ziel und eine Eigenschaft „Soll kopiert werden". Die Quelle und das Ziel einer Umleitungsregel stellen ebenfalls eine Datei, ein Verzeichnis, einen Registrierungsschlüssel oder einen Registrierungswert dar. Wenn eine Umleitungsregel aktiv ist, bewirkt sie, dass alle auf das Quellobjekt gerichteten Anforderungen an das Zielobjekt umgeleitet werden. Wenn es sich bei dem Objekt um eine Datei oder einen Registrierungswert handelt und „Should Copy" TRUE ist, wenn das Zielobjekt nicht existiert, wird das Quellobjekt in das Ziel kopiert, bevor die Umleitung erfolgt. Wenn es sich bei dem Objekt um ein Verzeichnis oder einen Registrierungsschlüssel handelt und „Should Copy" wahr ist und das Zielobjekt nicht existiert, wird es erstellt, bevor die Umleitung erfolgt. Unterordner, Dateien, Unterschlüssel und Werte werden nicht kopiert. Nur das Objekt der obersten Ebene wird erstellt.
Diese Regeln werden mit dem FSLogix Apps Rule Editor erstellt und bearbeitet. Dabei werden zwei Arten von Dateien erstell (meist sehr kleine Dateien). Einmal die „.fra" Datei, die Berechtigungen für die Regel enthält. Also auf welche Benutzer oder welche Benutzergruppe soll die Regel angewendet werden?
1 0 0x00000011 uran\Domain Admins CN=Domain Admins,CN=Users,DC=uran,DC=local uran\Domain Admins 0 0 0x00000011 S-1-1-0 Everyone 0 0
Die „.frx" Datei enthölt die einzelnen Regeln. Also welche Ordner, Dateien und Shortcuts sollen versteckt werden. Welche Dateien sollen umgeleitet werden usw.
1 ##Program Shortcut’s Folder %SystemDriveFolder%\Users\Administrator\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\AppDeploy 0x00000221 ##Program Shortcut (.lnk) %SystemDriveFolder%\Users\Administrator\Desktop AppDeploy Repackager.lnk 0x00000222 ##Windows Installer key HKLM\Software\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-21-2913442914-3780735827-889939760-500\Products\2BA7EF7689393384BB511181AF1DF971 0x00000221 ##Application uninstall key HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{67FE7AB2-9398-4833-BB15-1118FAD19F17} 0x00000221 ##Product Install Directory %ProgramFilesFolder32%\AppDeploy 0x00000221
Wenn die beiden Dateien im Regelverzeichnis liegen, ist die Regel aktiv. Das Standart Regelverzeichnis findet sich uneter:
C:\ProgramFiles\FSLogix\Apps
Regeln werden mit dem Regeleditor erstellt. Neu erstellte Regeln landen erst einmal unter "Documents" im Benutzerverzeichnis:
\Documents\FSLogix Rule Sets
Mit dem Regeleditor wird ein Regelsatz erstellt. Bevor ich hier eine riesige Liste Screenshots einfüge, ist es denke ich einfacher ein Video zu erstellen um grundlegend zu zeigen wie man eine Regel erstellt. Im folgenden Beispiel maskieren wir eine Anwendung für eine Benutzergruppe. Es geht natürlich viel mehr. Beispielsweise das Umleiten von Verzeichnissen in ein VHDX Image finde ich hoch interessant. Also um Beispielsweise Logs auszulagern.
Regeln sind immer an bestimmte Bedingungen geknüpft. Beispielsweise die Mitgliedschaft einer AD Gruppe aber eine Regel kann auch eine bestimmte IP Adresse sein.
Benutzer oder Gruppen hinzufügen
Wir können Benutzer und Gruppen angeben, für die eine Regel gilt oder nicht gilt.
Dazu Klicken wir auf Hinzufügen > Benutzer oder Hinzufügen > Gruppe. Ein Dialog erscheint, in dem ein Benutzer hinzugefügt werden kann.
Hier können wir den Namen des Benutzers (oder der Gruppe) eingeben.
Prozess hinzufügen
Wir können einen Prozess angeben, für den ein Regelsatz gilt oder nicht gilt.
Wir Klicken dazu auf Hinzufügen > Prozess. ein Dialog erscheint:
Wir geben den vollständigen Pfad zu der ausführbaren Datei ein und wählen aus, ob diese Zuordnung für untergeordnete Prozesse gilt oder nicht.
Netzwerkstandort hinzufügen
Wir können eine Netzwerkadresse (oder einen Range) angeben.
Dazu klicken wir auf Hinzufügen > Netzwerkadresse. Ein Dialogfeld wird angezeigt:
Hier geben wir eine IPv4- oder IPv6-Adresse ein. Teilstrings sind erlaubt. Z. B. „192.168" für eine Adresse im Range „192.168.0.1"
Computer hinzufügen
Wir können ein Computerobjekt angeben. Dazu klicken wir auf Hinzufügen > Computer. Im Dialog geben wir den Full Distinguished Name des Computerobjekts oder den Computernamen ein (Wildcards werden akzeptiert).
Active Directory-Container hinzufügen
Wir können einen Active Directory-Container angeben. Die Zuweisung wird für alle Objekte in diesem Container wirksam.
Wir klicken auf Hinzufügen > Verzeichnis-Container. Im Dialog geben wir den Full Distinguished Name des Containers ein.
Zuweisungsreihenfolge
Die Zuordnungen werden von oben nach unten abgearbeitet. Wenn z. B. zwei Zuordnungen aufgelistet werden, von denen die erste „Jeder" mit „Regelsatz gilt" und die zweite „Benutzer 1" mit „Regelsatz gilt nicht" angibt, dann würde der Regelsatz für Alle außer Benutzer 1 gelten. Würden diese beiden Angaben einfach umgekehrt werden, wobei „Benutzer 1" mit „Regelsatz gilt nicht" an erster Stelle steht, dann würde der Regelsatz für alle gelten.
Es ist wichtig zu beachten, dass die Gruppenmitgliedschaftsliste eines Benutzers bei der Anmeldung berechnet wird und gleich bleibt, solange der Benutzer angemeldet ist. Das bedeutet, dass Änderungen, die für einen Benutzer durch Manipulation seiner Gruppenzugehörigkeit sichtbar sind, erfordern, dass der Benutzer sich abmeldet und dann wieder anmeldet, damit die Änderungen sichtbar werden. Dies ist bei Änderungen in den Regeldateien nicht der Fall. Diese Änderungen sind sofort nach der Verteilung der Regeldatei aktiv.
as Bereitstellen von Regeldateien und den zugehörigen Zuweisungsdateien ist so einfach wie das Kopieren dieser Dateien in den Ordner „Rules" auf dem verwalteten Computer – das ist Normalerweise der Order „C:\Program Files\FSLogix\Apps\Rules"
Nachdem die Dateien in den Ordner „Rules" kopiert wurden, erkennt der Dienst eine Datei-Änderung und „kompiliert" dann die Regeldatei in ein Format, das vom Treiber leicht konsumiert werden kann. Der Dienst legt dann die kompilierte Version in den Ordner CompiledRules ab, wo sie vom Treiber verwendet wird.
Wenn bestehende Regeldateien aktualisiert oder gelöscht werden, aktualisiert oder löscht der Dienst die entsprechende Datei in CompiledRules und benachrichtigt dann den Treiber.
Eine Besonderheit sind Java-Regeldateien. Hier wird zusätzlich eine XML Datei erstell. Diese muss neben der Regelsatzdateien (.fxr) und der Zuweisungsdateien (.fxa) in den Ordner Rules kopiert werden.
Name | Type | Definition |
LogDir | REG_SZ | Legt den Ort fest, an dem die Logdateien gespeichert werden sollen. Es werden lokale und UNC-Pfade akzeptiert. Der Standardwert ist %ProgramData%\FSLogix\Logs. Die Protokollierung erfolgt als SYSTEM, wenn auf einem lokalen Laufwerk protokolliert wird, und als Computer Object, wenn auf einer Netzwerkfreigabe protokolliert wird. Wenn wir im Netzwerk loggst, stelle sicher, dass wir dem Computerobjekt Zugriff auf die Netzwerkfreigabe und den Ordner gewährst. |
LogFileKeepingPeriod | DWORD | Es werden jeden Tag neue Logdateien begonnen. Dies gibt an, wie viele aufbewahrt werden sollen. Wenn der Wert nicht gesetzt ist, ist die Vorgabe '7'. Der Standardwert bei der Installation ist 2. |
LoggingEnabled | DWORD | Dieser Wert kann '0', '1', oder '2' sein. Wenn er auf '0' gesetzt ist, werden die spezifischen Einstellungen für jede Logdatei ignoriert und alle Logdateien sind deaktiviert. Bei der Einstellung '1' werden die spezifischen Einstellungen für jede Logdatei beachtet. Wenn auf '2' gesetzt, werden die spezifischen Einstellungen für jede Logdatei ignoriert und alle Logdateien sind aktiviert. Der Standardwert bei der Installation ist 2. |
LoggingLevel | DWORD | Dieser Wert wird zwischen 0 und 3 einschließlich eingestellt, mit den folgenden Bedeutungen. Das Ändern dieses Wertes wird beim nächsten Neustart wirksam. 0 - Log DEBUG Level Nachrichten und höher 1 - Log INFO Level Nachrichten und höher 2 - Log WARN Level Nachrichten und höher 3 - Log ERROR Level Nachrichten und höher |
RobocopyLogPath | REG_SZ | Gibt einen Log-Dateinamen und Pfad an, in dem die Ausgabe von robocopy-Aufrufen (z.B. beim Spiegeln von Daten in oder aus einer VHD) protokolliert wird. Wenn der Wert nicht vorhanden ist, werden die robocopy-Ergebnisse überhaupt nicht protokolliert. Es wird empfohlen, diese Einstellung nur zur Fehlersuche zu verwenden. |
Komponentenspezifische Log-Dateien
Die folgenden Einstellungen werden in: HKLM\SOFTWARE\FSLogix\Logging
Alle Werte sind vom Typ DWORD und werden auf '0' gesetzt, um die Protokollierung für die Komponente zu deaktivieren, oder auf '1', um die Protokollierung für die Komponente zu aktivieren.
Komponente | Value Name | Std. | Default Path |
Profile Configuration Tool | ConfigTool | 1 | %ProgramData%\FSLogix\Logs\ConfigTool. |
IE Plugin (Java Control) | IEPlugin | 0 | %UserProfile%\AppData\LocalLow\FSLogix\Java\Logs |
Rule Editor | RuleEditor | 0 | %ProgramData%\FSLogix\Logs\RuleEditor |
Java Rule Editor | JavaRuleEditor | 0 | %ProgramData%\FSLogix\Logs\JavaRuleEditor |
FSLogix Agent Service (frxsvc.exe) | Service | 0 | %ProgramData%\FSLogix\Logs\Service |
Profiles | Profile | 1 | %ProgramData%\FSLogix\Logs\Profile. |
Java Launcher | FrxLauncher | 0 | %ProgramData%\FSLogix\Logs\FrxLauncher |
Office 365 Container | ODFC | 0 | %ProgramData%\FSLogix\Logs\ODFC |
Rule Compilation | RuleCompilation | 0 | %ProgramData%\FSLogix\Logs\RuleCompilation |
Font Visibility | Font | 0 | %ProgramData%\FSLogix\Logs\Font |
Network Information | Network | 0 | %ProgramData%\FSLogix\Logs\Network |
Printer Visibility | Printer | 0 | %ProgramData%\FSLogix\Logs\Printer |
AD Computer Group Processing | AdsComputerGroup | 0 | %ProgramData%\FSLogix\Logs\AdsComputerGroup |
Driver Interface | DriverInterface | 0 | %ProgramData%\FSLogix\Logs\DriverInterface |
Windows Search Roaming | Search | 1 | %ProgramData%\FSLogix\Logs\Search. |
Windows Search Plugin | SearchPlugin | 0 | %ProgramData%\FSLogix\Logs\SearchPlugin |
Process Start Monitor | ProcessStart | 0 | %ProgramData%\FSLogix\Logs\ProcessStart |
Ich habe versucht, in diesen Artikel einige neue Informationen zu integrieren und den Howto Teil eher klein zu halten. Wer nach nach einem umfangreichen Howto sucht, kann hier etwas finden:
https://www.kreyman.de/index.php/microsoft/ms-sonstiges/173-fslogix-application-masking-installation-konfiguration-vergleich
Die Vorteile von FSLogix liegen auf der Hand und wurden zu Beginn dieses Artikel erörtert. FSLogix ermöglicht es, Anwendungen zu mischen, ist jedoch keine Anwendungsisolation und kein Streaming wie das mit App-V möglich ist. Ich finde jedoch insbesondere das Zusammenspiel mit App-V interessant. Also beispielsweise Anwendungen, die automatisch verschwinden, wenn der Benutzer sich nicht im Firmennetz befindet. Oder auf einem Masterimage global veröffentlichte App-V Anwendungen, die wir mit FSLogix gruppenspezifisch verstecken. Office Add-Ons, die über FSLogix und ohne App-V Gruppen ein-und ausgeblendet werden. Das kann Verbindungsgruppen einsparen und die Kompatibilität steigern. Besonders interessant ist auch das Auslagern von Systemordnern beispielsweise für Logs in VHDX Conatainer. Das ermöglicht es, den RAM Cache mit Citrix PVS noch weiter zu schonen. Wir haben das Produkt schon lange bei unseren Kunden im Einsatz. Insbesondere für die Profil-Container. Für den Einsatz mit App-V ist es eine ideale Ergänzung auch für die Application Masking Funktionen und die Möglichkeiten zur Einflußnahme auf einen geteilten Desktop (Terminalserver Desktop).
Download:
https://aka.ms/fslogix_download
Basisdoku:
https://aka.ms/fslogix
MSDN: https://social.msdn.microsoft.com/Forums/windowsserver/en-US/home?forum=FSLogix
Microsoft Q&A:
https://docs.microsoft.com/en-us/answers/topics/windows-server-fslogix.html
FSLogix PowerShell: https://www.powershellgallery.com/packages/FSLogix.PowerShell.Rules
Kommentare