XenDesktop 7 – published Desktop, aber nicht für alle

Hat noch jemand den Release Candidate von Citrix XenDesktop 7 in Erinnerung? Dort waren Delivery Groups (Bereitstellungsgruppen) für die Freigabe von Desktops getrennt von den Delivery Groups für die Freigabe von Anwendungen zu erstellen. Bei XenApp 6.5 und früheren Versionen war es kein Problem von einer Maschine sowohl den Desktop als auch verschiedene Apps freizugeben – dies schien XenDesktop 7 nicht zu unterstützen.

Das Produkt ist mittlerweile auf dem Markt und die gleichzeitige Freigabe von Desktops und Apps innerhalb einer Delivery Group ist kein Problem – beim Anlegen der Delivery Group kann der Admin entscheiden, ob er diese für Apps, Desktop oder beides nutzen will, wie der folgende ScreenShot zeigt:

2014-02-20_10h08_33

Aber im weiteren Verlauf muss der Admin Gruppen oder User definieren, die auf die Delivery Group Zugriff haben sollen – und damit später auch auf den (einzigen) freigegebenen Desktop und die freigegebenen Apps dieser Bereitstellungsgruppe. Im ScreenShot im unteren Beispiel sollen später Apps für die “Doctor-Group” und die “Nurse-Group” bereitgestellt werden, während gleichzeitig ein Desktop für die “helpdesk-group” freigegeben werden soll.

2014-02-20_09h14_58

Damit die Helpdesk-User nun nicht die ganzen einzelnen Apps sehen, oder die Mitglieder der “Nurse-Group” nicht Zugriff auf die Apps für die “Doctor-Group” haben, kann der Admin in den Eigenschaften der jeweiligen App die Sichtbarkeit der App auf bestimmte Gruppen einschränken. Diese Gruppen *müssen* allerdings prinzipiell Zugriff auf die Delivery Group zu haben, es handelt sich hier also eine Teilmenge der genannten Gruppen. Im unteren Beispiel wird die Anwendung “InfoPath Designer 2013” nur für Mitglieder der “Doctor-Group” freigegeben – Benutzer der “Nurse-Group” und “Helpdesk-Group” werden diese Anwendung also nicht sehen.

2014-02-20_09h15_55

Daraus ergibt sich jedoch das Problem, dass der über die Delivery Group freigegebene Desktop nun prinzipiell auch allen anderen Benutzern angezeigt wird – denn zumindest die GUI, also Citrix Studio, bietet keine Option, die Sichtbarkeit des Desktops einzuschränken (limit visibility).

Das folgende Diagramm soll dies verdeutlichen:

image

Deshalb hat der angemeldete Benutzer im ScreenShot unten (nurse1) auch neben dem Zugriff auf den dedizierten Desktop für die Benutzergruppe (aus einer anderen Delivery Group) zusätzlich Zugriff auf den eigentlich unerwünschten Desktop für die “Helpdesk-Group”. Wer nun die “Nurse-Group” aus der Delivery Group selbst entfernt, verhindert den Zugriff der “Nurse-Group”-Mitglieder auf sämtliche freigegebenen Apps der kompletten Delivery Group.

2014-02-20_09h09_53

Die Lösung des Problems liegt, wie bei XenDesktop 7 so oft, im Einsatz von PowerShell – sogar ein vergleichsweise simples Kommando schafft eine effektive Filterlösung für die Anzeige oder das Unterdrücken des Desktops.

Ok, nach dem Start einer PowerShell Eingabeaufforderung müssen zunächst die Citrix SnapIns geladen werden. Es reicht eigentlich das SnapIn “Citrix.Broker.Admin.V2” – dieses kann durch das Kommando Add-PSSnapin Citrix.Broker.Admin.V2 eingebunden werden.

Das Kommando Get-BrokerEntitlementPolicyRule zeigt nun die verfügbaren Filter für die existierenden Delivery Groups an – die passende Gruppe kann über den Namen oder die UID gefunden werden – notfalls im Zusammenspiel mit Get-BrokerDesktopGroup, oder schöner:
Get-BrokerDesktopGroup | format-list name,uid

In meinem Beispiel muss eine Filterregel für die Delivery Group “Medical Applications” erstellt werden. Diese Gruppe enthält Windows Server 2012 R2 VMs mit dem Server OS VDA und gibt sowohl Desktops als auch Apps frei – die Desktops allerdings sollten nur für die Helpdesk-Gruppe sichtbar sein…

image

Die Uid der Delivery Group bitte nicht mit der Uid der Entitlement Policy Rule verwechseln – die Referenz wird hier über die DesktopGroupUid hergestellt.

image

Die zu benötigte Entitlement Policy Rule wird mit Set-BrokerEntitlementPolicyRule erstellt – dabei wird die zuvor ermittelte Delivery Group namentlich referenziert.
Der PowerShell Befehl kann mit den Parametern –IncludedUserFilterEnabled und –ExcludedUserFilterEnabled zwei verschiedene Filter aktivieren, je nachdem, ob ich von 20 ursprünglich auf der Delivery Group definierten Gruppen eine Gruppe explizit ausschließen ("Die nicht!") will, oder nur noch eine (oder wenige) Gruppe für den freigegebenen Desktop berechtigen will ist also eine Blacklist oder Whitelist zu pflegen.

Die User können für beide Varianten hinzugefügt und entfernt werden, so wird eine bestehende Liste ergänzt bzw. überarbeitet, alternativ kann eine bereits erstellte Liste von Usern komplett ersetzt/bestimmt werden, wobei vorherige Einträge überschrieben werden. Die Parameter sind dann passend –AddIncludedUsers, –RemoveIncludedUsers, –AddExcludedUsers oder –RemoveExcludedUsers. Wer die ganze Userliste setzen will, kann –ExcludedUsers oder –IncludedUsers benutzen.

Um also für den Zugriff auf den Desktop (!) der "Medical Applications" Delivery Group nur noch die Helpdesk-Gruppe zuzulassen und ergo alle anderen Gruppen, die auf der Delivery Group definiert wurden zwar an Apps, nicht jedoch an den Desktop zu lassen, kann folgendes Kommando benutzt werden:

Set-BrokerEntitlementPolicyRule –Name "Medical Applications_1" –AddIncludedUsers cch\helpdesk-group –IncludedUserFilterEnabled $true

image

Das Ergebnis kann mit Get-BrokerrEntitlementPolicyRule kontrolliert werden:

image

Aus Sicht des Benutzers "fehlt" nun wie gewollt der unerwünscht dargestellte UHD-Desktop. Ziel erreicht :-)

image

Have fun!

Kommentare

  1. Super Tip! Besten Dank!

    AntwortenLöschen
  2. Super !!! Danke !!! Aber kann ich die Included Users auch wieder entfernen ?

    AntwortenLöschen
    Antworten
    1. Aber klar. Um den ganzen Filter auszuschalten können Sie das folgende Statement benutzen
      Set-BrokerEntitlementPolicyRule -Name "Medical Applications_1" -IncludedUserFilterEnabled $false
      Um eine einzelne Gruppe aus dem Filter zu entfernen benutzen Sie
      Set-BrokerEntitlementPolicyRule -Name "Medical Applications_1" -RemoveIncludedUsers cch\helpdesk-group

      Freut mich, wenn es geholfen hat!

      Löschen

Kommentar veröffentlichen

Beliebte Posts aus diesem Blog

Auf NFS Shares mit Windows zugreifen

Citrix Default Passwords

XenServer mit Software-Raid einrichten