Immer häufiger möchten Kunden eine möglichst dynamisch anpassbare Benutzerumgebung für Ihre Benutzer bereitstellen. Fast jeder hat seine eigenen Best Practices und Vorgehensweisen in diesem Bereich. In diesem Beitrag möchte ich die Anpassungen vorstellen, die ich in meinen Projekten meistens umsetzt.

Ich nutze hierfür unterschiedliche Technologien. Dazu gehören klassische AD Gruppenrichtlinien, lokale Einstellungen sowie der Einsatz von Citrix Workspace Environment Manager und FSLogix App Masking. Der Citrix Workspace Environment Manager ist ab der Citrix Advanced VaaD Lizenz enthalten. Es ist auch einer der Hauptgründe, warum ich die Advanced Edition der Standard Edition vorziehe. Möchte man Citrix einsetzen, ist FSLogix eigentlich durch die Citrix-Lizenz-Voraussetzungen in allen Umgebungen lizenziert.

Hier nochmal die Voraussetzungen zusammengefasst:

FSLogix

FSLogix ist in folgende Microsoft Lizenzen enthalten:

  • Microsoft 365 E3/E5
  • Microsoft 365 A3/A5
  • 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) Subscription Access License (SAL)

Citrix Workspace Environment Manager

Workspace Environment Manager ist in folgenden Citrix Lizenzen enthalten:

  • Citrix Virtual Apps Advanced
  • Citrix Virtual Apps Premium
  • Citrix Virtual Apps and Desktops Advanced
  • Citrix Virtual Apps and Desktops Premium

Start Menü Standard Layout

Beginnen wir mit der Anpassung der Kacheln und der Taskbar. Ich bevorzuge es ein Standard-Layout vorzugeben. Die Benutzer sollen aber dennoch die Möglichkeit haben dies anzupassen.

Hierfür erstelle ich mir zunächst einen Layout Benutzer, mit dem ich mich auf einem Referenzsystem anmelde und die Kacheln sowie die Taskbar so einrichte, wie es später aussehen soll.

Angepasste Kacheln und Taskbar

Nun kann man dieses Layout in xml File exportieren. Dazu muss man die Powershell öffnen und folgenden Befehl eingeben:

Export-StartLayout -Path <PfadzurDatei\LayoutModification.xml>

Der HEX Code vor dem Anwendungsnamen gibt die Lokation der Verknüpfung an. Die User müssen also Zugriff auf diese Lokation haben. Kommt der Link z.B. aus dem ALL Users Startmenü unter „c:\ProgramData\Microsoft\Windows\Start Menu\Programs“, und die Standardprogrammgruppe wird per GPO ausgeblendet, so werden die Kacheln nicht angelegt.

  • ProgramData = {62AB5D82-FDC1-4DC3-A9DD-070D1D495D97}
  • ProgramFiles = {905e63b6-c1bf-494e-b29c-65b732d3d21a}
  • Eine Vollständige Liste der GUID’s ist hier zu finden hier

Diese XML Datei passen wir jetzt manuell an. Ich ersetzte den „DesktopApplicationLinkPath“ durch die „DesktopApplicationID“. Mit dem Powershell-Befehl get-startapps erhalten wir die ID’s. Um auch noch die Taskbar anzupassen müssen wir im XML File noch einen weiteren Part<CustomTaskbarLayoutCollection> anhängen und anpassen. Anbei mein Beispiel XML File:

<LayoutModificationTemplate xmlns:defaultlayout="http://schemas.microsoft.com/Start/2014/FullDefaultLayout" xmlns:start="http://schemas.microsoft.com/Start/2014/StartLayout" Version="1" xmlns="http://schemas.microsoft.com/Start/2014/LayoutModification" xmlns:taskbar="http://schemas.microsoft.com/Start/2014/TaskbarLayout">
  <LayoutOptions StartTileGroupCellWidth="6" />
  <DefaultLayoutOverride>
    <StartLayoutCollection>
      <defaultlayout:StartLayout GroupCellWidth="6">
        <start:Group Name="Standard">
          <start:DesktopApplicationTile Size="2x2" Column="2" Row="0" DesktopApplicationID="{7C5A40EF-A0FB-4BFC-874A-C0F2E0B9FA8E}\Notepad++\notepad++.exe" />
          <start:DesktopApplicationTile Size="2x2" Column="0" Row="0" DesktopApplicationID="{6D809377-6AF0-444B-8957-A3773F02200E}\7-Zip\7zFM.exe" />
          <start:DesktopApplicationTile Size="2x2" Column="4" Row="0" DesktopApplicationID="Microsoft.Windows.Explorer" />
        </start:Group>
        <start:Group Name="Browser">
          <start:DesktopApplicationTile Size="2x2" Column="2" Row="0" DesktopApplicationID="Chrome" />
          <start:DesktopApplicationTile Size="2x2" Column="0" Row="0" DesktopApplicationID="MSEdge" />
        </start:Group>
        <start:Group Name="Kommunikation">
          <start:DesktopApplicationTile Size="2x2" Column="0" Row="0" DesktopApplicationID="com.squirrel.Teams.Teams" />
        </start:Group>
      </defaultlayout:StartLayout>
    </StartLayoutCollection>
  </DefaultLayoutOverride>
   <CustomTaskbarLayoutCollection PinListPlacement="Replace">
   <defaultlayout:TaskbarLayout>
    <taskbar:TaskbarPinList>
     <taskbar:DesktopApp DesktopApplicationID="Microsoft.Windows.Explorer" />
     <taskbar:DesktopApp DesktopApplicationID="MSEdge" />
    </taskbar:TaskbarPinList>
   </defaultlayout:TaskbarLayout>
  </CustomTaskbarLayoutCollection>
</LayoutModificationTemplate>

Das XML File, das zwingend „LayoutModification.xml“ heißen muss, kopieren wir nun auf unserem Master Image in das Verzeichnis „c:\Users\Default\AppData\Local\Microsoft\Windows\Shell“.

Bei jeder neuen Erstellung eines Userprofiles wird dieses XML File genutzt, um das Startmenü bereitzustellen.

Anwendungen ausblenden

Anwendungen, die nur einer bestimmter Usergruppe zu Verfügung stehen sollen, blende ich per FSLogix Hiding Rule aus. Dafür muss man den „FSLogix Apps RuleEditor“ starten, ein neues Rule Set erstellen und einen Namen vergeben.

Im Anschluss ein blankes Rule Set erstellen, oder aber eine Anwendung aus den installierten Anwendungen aussuchen. Bein einem leeren Rule Set muss manuell das Programmverzeichnis, Desktop Icon und Startmenü Verzeichnis konfiguriert werden. Scannt man eine vorhandene Anwendung, so werden alle zugehörigen Verzeichnisse, Shortcuts und Registry Keys ausgewählt.

Über „Assignments“ kann man nun auswählen, für wen diese Regel gültig ist. Da es sich hierbei um „Hiding Rules“ handelt, wählt man für „Everyone“ –> Applies –> Yes, damit die Anwendung für alle User versteckt wird. Danach fügt man den entsprechenden User oder die entsprechende Gruppe hinzu und wählt „Applies –> No“ aus.

Beim Speichern werden ein „Rule File“ (.fxr) und ein „Assignment File“ (.fxa) im Dokumente Verzeichnis des Users erstellt. Damit die Regel aktiv wird, müssen diese Files in das Verzeichnis „c:\program files\FSLogix\Apps\Rules“ kopiert werden. Das Regelwerk ist dann sofort aktiv. In den folgenden Screenshots sieht man, dass nicht nur das Startmenü ausgeblendet wird, sondern auch das Programmverzeichnis (und alle zugehörigen Regkeys).

Programverzeichnis eines berechtigten Users
Startmenü eines berechtigten Users
Startmenü nicht berechtigter User
Programmverzeichnis nicht berechtigter User

Dieses Vorgehen wiederholt man nun für alle Anwendungen, die NICHT von allen Benutzern gesehen werden sollen.

Windows XXX Ordner im Startmenü

Mit den oben genannten Aktionen haben wir nun eine Layout erstellt, dass jedem User nur die Anwendungen zeigt, auf die er auch berechtigt ist. Zusätzlich haben wir ein schönes Kachelmenü, welches vom User abgeändert werden kann.

Leider sehen wir nun noch die Windows xxx Ordner, die die meisten Benutzer nicht interessieren.

Diese Ordner verstecken wir, in dem wir eine leere Fslogix Regel anlegen und dort folgende Pfade als Hiding Rule (Directory) anlegen.

  • C:\Users\*\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessories
  • C:\Users\*\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Accessibility
  • C:\Users\*\Appdata\Roaming\Microsoft\Windows\Start Menu\Programs\Windows System
  • C:\Users\*\Appdata\Roaming\Microsoft\Windows\Start Menu\Programs\Windows PowerShell
  • C:\Users\*\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\System Tools
  • C:\ProgramData\Microsoft\Windows\Start Menu\Programs\System Tools
  • C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Windows PowerShell
  • C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessibility
  • C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools
  • C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories

Damit Administratoren diese Ordner noch sehen, Exclude ich sie in der „Assignment Rule“

Die Server Manager Verknüpfung im Startmenü wird von den normalen Benutzern auch nicht benötig. diesen blenden wir per Hiding Rule aus. Folgender Pfad muss dazu in der Regel hinterlegt werden:

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Server Manager.lnk

Somit erhalten wir ein Startmenü, das jedem User nur die Anwendunge zeigt, für die er auch berechtigt ist. Zusätzlich geben wir das gewünschte Kachel-Design vor, überlassen es aber den Benutzern selbst es anzupassen.

Anpassen Systemsteuerung und Einstellungen

Per Windows GPO ist es möglich, Elemente der „Einstellungsseite“ auszublenden oder nur gewünschte Elemente anzuzeigen.

User Configuration --> Adminitrative Templates --> Control Panel --> Settings Page Visibility

Das Ergebnis dieser Einstellung ist hier zu sehen

Eine Referenzliste mit den Namen der einzelnen Elemente ist hier zu finden.

Auch die Elemente in der Systemsteuerung können ähnlich angepasst werden. dies kann entweder auch per Gruppenrichtlinie geschehen (User Configuration –> Adminitrative Templates –> Control Panel –> Show only specified Control Panel items), oder aber per WEM

Per WEM ist diese Einstellung sehr einfach vorzunehmen. Unter „Policies and Profiles“ –> Environmental Settings –> Control Panel einfach den Haken bei „Show only Specified Control Panel Applets“ setzen und dann die gewünschte Liste angeben:

Das Ergebnis sieht dann so aus:

Auch hier wieder ein Verweis auf die gesamte Liste der möglichen Applets.

Damit diese Einstellungen auch vorgenommen werden, muss im WEM die Verarbeitung von Umgebungseinstellungen auch aktiviert werden:

Icons, Laufwerke, Umgebungsvariablen, RegKeys etc.

Die restlichen Einstellungen nehme ich ebenfalls per Citrix WEM vor. Diese können zwar auch alle per GPO oder Logon Skripte angepasst werden, der WEM bietet aber doch einige Vorteile

  • Wird erst nach dem Logon ausgeführt (Schnellere Anmeldung)
  • Kann auch Dynamisch während der User angemeldet ist angepasst werden
  • Ist einfacher Rückgängig zu machen

Unter „Actions“ können Aktionen im Userkontext definiert werden. Dazu gehören Anwendungen, Drucker, Netzlaufwerke, Regkeys, Umgebungsvariablen und mehr. Als Beispiel möchte ich meinem Testbenutzer ein Netzlaufwerk zuweisen. Dazu erstelle ich erstmal die notwendige Aktion:

Im zweiten Schritt erfolgt die Zuweisung. Diese kann entweder an alle, oder nur an eine bestimmte Usergruppe bzw. einen bestimmten User erfolgen. Hierzu wählt man „Assignments“ und wählt das gewünschte Objekt (User und Gruppen müssen zuerst unter „Active Directory Objects“ importiert werden). Im unteren Feld wird dann die gewünschte Aktion nach rechts verschoben (Es ist auch möglich hier Filter basierend auf Bedingungen anzuwenden…Das wäre aber einen eigenen Blockbeitrag wert).

Bei der nächsten Anmeldung des Users (oder durch das Aktualisieren des WEM Agents), wird die zugewiesene Aktion ausgeführt.

Es gibt natürlich noch weit mehr Einstellungen und Anpassungen die vorgenommen werden können. Hierbei handelt es sich aus meiner Sicht aber um die wichtigsten.

Anpassen der Benutzerumgebung mit Citrix WEM und FSLogix
Markiert in:                    

3 Gedanken zu „Anpassen der Benutzerumgebung mit Citrix WEM und FSLogix

  • Januar 25, 2022 um 4:22 pm Uhr
    Permalink

    Hallo,
    vielen Dank für diese Anleitung.
    GIbt es eine Möglichkeit eine Anwendung mit der WEM zu sperren und einer bestimmten Usergruppe zu zuweisen?
    Es handelt sich um ein MultiUserOS System Server 2016 ( virtuall apps und Desktops).
    Die Anwendung ist auf dem Image installiert und somit für alle User, die sich auf dem virtual Desktop anmelden zugängig.
    Lizneztechnisch soll aber die Anwendung nicht jeder bekommen.

    VG

    Antwort
    • Januar 25, 2022 um 7:35 pm Uhr
      Permalink

      Hallo,

      direkt sperren kann WEM eine Anwendung nicht. Mit WEM würden Shortcuts im Startmenü oder auf dem Desktop erstellt werden. Es hindert einen Benutzer aber nicht den direkten Programmpfad zu öffnen. Hier müsste man entweder mit NTFS Berechtigungen ran oder man nutzt besser FSLogix.

      FSLogix kann mit dem Feature Application Masking ganze Anwendungen sowie deren Shortcuts und RegKEys über seinen Filtertreiber für nicht berechtigte Benutzer ausblenden.

      Viele Grüße
      Lothar

      Antwort
  • Januar 19, 2023 um 11:59 am Uhr
    Permalink

    Hallo,

    ich weiß nicht was ich falsch mache: Ich habe diese Anleitung auf einem Server 2019 exakt so umgesetzt, aber bei mir funktioniert weder das Startmenülayout mit dem XML noch das Ausblenden der Windows XXX Ordner mit FileLogic…

    Gruß
    David

    Antwort

Schreibe einen Kommentar

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