Der digitale Arbeitsplatz aus dem Portal · Stand September 2026 (Server 1.0.31, Agent 1.0.36)

Richtlinien und Vorlagen

Richtlinien steuern Einstellungen auf Geräten und für Benutzer zentral aus dem Portal: Laufwerke, Drucker, Verknüpfungen, Desktop, Skripte, Sperren für Terminalserver und VDI, und nicht zuletzt die Regel, ob ein Paket als MSIX oder als App Attach ausgeliefert wird. Dieses Dokument erklärt, was Richtlinien sind, wofür sie gut sind, wie Sie sie anlegen und wann welche Richtlinie greift. Die technischen Anhänge (eigene Vorlagen, PowerShell, Agent, Fehlersuche) stehen am Ende.

1. Was ist das?

Eine Richtlinie in ZeroPortal ist das, was eine Gruppenrichtlinie in Active Directory ist, nur ohne Bindung an die AD-Struktur und ohne Gruppenrichtlinienverwaltung: eine Gruppe von Einstellungen, die der ZeroPortal-Agent beim Abgleich auf dem Gerät anwendet und wieder zurücknimmt, sobald das Gerät oder der Benutzer nicht mehr im Geltungsbereich liegt.

Vier Begriffe genügen:

Begriff Bedeutung
Richtliniensatz Der Behälter. Er bündelt Richtlinien für ein Szenario (VDI, Terminalserver, Notebooks) und trägt Priorität und Geltungsbereich, die für alle enthaltenen Richtlinien gelten.
Richtlinie Eine Einstellungsgruppe eines Typs, etwa „Laufwerke" oder „Desktop", angelegt aus einer Vorlage. Auf Wunsch mit eigenen zusätzlichen Filtern.
Vorlage Bestimmt, welche Felder eine Richtlinie hat und was sie auf dem Gerät bewirkt. ZeroPortal bringt rund zwanzig Vorlagen mit; der Editor wird aus der Vorlage erzeugt.
Geltungsbereich Die Filter, die entscheiden, wo (Computer) und für wen (Benutzer) ein Satz gilt: AD-Gruppe, Organisationseinheit, Computername, IP-Bereich, Variable, Betriebssystem, Sitzungstyp, Zeitfenster, Registrierungswert, Datei.

Richtliniensätze im Portal

2. Wozu ist das gut?

Für den digitalen Arbeitsplatz aus einer Hand. Was sonst über Anmeldeskripte, Gruppenrichtlinien-Einstellungen, BGInfo und Handarbeit verteilt ist, steht in einem Richtliniensatz neben den Paketen, mit demselben Geltungsbereich und derselben Rücknahme:

Dazu kommt, was Gruppenrichtlinien nicht bieten: Jede gespeicherte Änderung einer Richtlinie ist eine Revision, und ein früherer Stand lässt sich wiederherstellen (Abschnitt 3). Wird eine Richtlinie entfernt oder ein Gerät verlässt den Geltungsbereich, stellt der Agent den vorherigen Zustand wieder her; nichts bleibt „eintätowiert". Bestehende Gruppenrichtlinien-Einstellungen (Registrierung, Laufwerke, Verknüpfungen, Umgebungsvariablen, Drucker, Ordner) werden importiert, nicht abgetippt.

Die mitgelieferten Vorlagen:

Vorlage Wirkung
Registrierung Werte anlegen, ändern, löschen; auf Wunsch dauerhaft
Laufwerke verbinden, Laufwerkssichtbarkeit Netzlaufwerke verbinden, einzelne Laufwerke im Explorer ausblenden
Drucker verbinden Netzwerkdrucker verbinden, Standarddrucker setzen
Verknüpfungen, Ordner, Kopieren und Transformieren Verknüpfungen und Ordner anlegen, Dateien verteilen und dabei anpassen
Dienste, Geplante Aufgaben, Skripte Starttyp setzen, Aufgaben anlegen, Skripte ausführen
Umgebungsvariablen Variablen für Computer oder Benutzer setzen
Desktop, Visuelle Effekte, Desktop-Einschränkungen Hintergrund und Design, Leistungseinstellungen, Sperren für VDI
Remotedesktop-Sitzungshost, Remotedesktop-Benutzereinstellungen Terminalserver-Einstellungen
Internet-/Proxy-Einstellungen Proxy und Internetoptionen
Microsoft Store-Konfiguration Zugriff auf den Store und dessen Updates steuern
Agent-Konfiguration Agentschalter zentral setzen
MSIX-Bereitstellung Je Paketfamilie: MSIX, App Attach oder nicht ausliefern
Paket-Downgrade-Steuerung Downgrade je Paketfamilie erlauben oder verbieten

3. Wie nutze ich das?

Ein Richtliniensatz entsteht in fünf Schritten. Das Beispiel richtet einen Satz „VDI" für Sitzungshosts ein, der Firefox als App Attach ausliefert und den Desktop gestaltet.

Schritt 1: Satz anlegen. Richtlinien → Richtliniensätze → Neuer Satz. Name, Beschreibung und Priorität vergeben, Anlegen. Die kleinere Zahl gewinnt bei Widersprüchen. Neue Sätze sind zunächst inaktiv.

Neuer Richtliniensatz

Schritt 2: Geltungsbereich setzen. Auf der Karte Geltungsbereich den Knopf Bereich bearbeiten wählen, Filter setzen, etwa die Organisationseinheit der Sitzungshosts oder ein Computernamensmuster wie VDI-*. Mehrere Filter werden mit UND oder ODER verknüpft, jeder lässt sich negieren.

Geltungsbereich bearbeiten

Filter auf die Organisationseinheit

Schritt 3: Richtlinie hinzufügen. Richtlinie hinzufügen öffnet die Vorlagenauswahl, filterbar nach Kategorie und Kontext (Computer, Benutzer). Der Reiter Vorhandene verwenden nimmt eine bereits angelegte Richtlinie in den Satz auf, etwa dieselbe Laufwerksrichtlinie für mehrere Sätze.

Vorlagenauswahl beim Hinzufügen einer Richtlinie

Schritt 4: Werte eintragen. Der Editor entsteht aus der Vorlage. Listentypen wie MSIX-Bereitstellung oder Laufwerke zeigen eine Tabelle, neue Zeilen über Eintrag hinzufügen; die Reihenfolge zählt, die erste passende Regel gewinnt. Schaltertypen wie Desktop zeigen Felder und eine Checkliste mit Häkchen (an), Kreuz (aus) und Strich (nicht konfiguriert). Eine aus der Vorlage angelegte Richtlinie ist sofort aktiv; wirksam wird sie erst, wenn auch der Satz aktiv ist.

Regeln der Richtlinie MSIX-Bereitstellung

Desktop-Richtlinie konfigurieren

Schritt 5: Satz aktivieren. Speichern und den Satz auf Aktiv stellen. Beim nächsten Abgleich holt der Agent die Richtlinien, wendet sie vor der Paketverarbeitung an und meldet das Ergebnis im Tray. Voraussetzung: Auf den Geräten ist die Richtlinienverarbeitung eingeschaltet (Gruppenrichtlinie Sync Richtlinien einschalten, Abschnitt 7.3); ein frisch installierter Agent verarbeitet sonst keine Richtlinien.

Satz aktivieren

Ergebnis auf dem Gerät: Desktop-Overlay und Agent

Noch drei Dinge, die im Alltag helfen:

4. Geltungsbereich: wann wirkt was

Ein Geltungsbereich beschreibt wo (Computer) oder für wen (Benutzer) ein Satz gilt. Der Agent verarbeitet Richtlinien zweimal: im Computer-Abgleich die Computeranteile (Bereitstellungsregeln, Agent-Konfiguration, HKLM, Dienste) und im Benutzer-Abgleich die Benutzeranteile (Laufwerke, Drucker, Desktop, HKCU). Das entspricht der Loopback-Verarbeitung von Gruppenrichtlinien: Ein Satz, der auf einen Computer zielt, bringt jedem Benutzer, der sich dort anmeldet, auch die Benutzeranteile mit. Genau das braucht man für VDI und Terminalserver.

Welcher Filter in welchem Abgleich greift:

Filter Computer-Abgleich Benutzer-Abgleich
Computername, IP-Bereich, Betriebssystem, Datei/Ordner ja ja
Organisationseinheit OU des Computers OU des Benutzers oder des Computers
AD-Gruppe Computergruppen (der Server löst sie aus dem Computerticket auf) Benutzergruppen
Umgebungsvariable Systemvariablen System- und Benutzervariablen
Registrierungswert HKLM HKLM und HKCU
Sitzungstyp, Zeitfenster nicht sinnvoll ja

Daraus folgen zwei Regeln:

Weitere Regeln im Betrieb:

5. Bereitstellungsregeln: MSIX oder App Attach

Die Richtlinie MSIX-Bereitstellung ist die wichtigste Richtlinie für MSIX. Ohne sie wird jedes Paket klassisch als MSIX installiert. Mit ihr legen Sie je Paketfamilie fest:

Format Wirkung
Msix Klassische Installation vom Repository
AppAttachVhdx, AppAttachCim Image von der Freigabe einhängen statt kopieren, für Terminalserver und AVD
Deny Das Paket wird auf diesen Geräten nicht ausgeliefert, auch wenn es zugewiesen ist

Jede Regel besteht aus einem Muster auf den Familiennamen (* erlaubt), optional einem Pakettyp und dem Format. Die Liste wird von oben nach unten ausgewertet, die erste passende Regel gewinnt; spezifische Regeln nach oben, die *-Regel nach unten. Es ist eine Computerrichtlinie: Das Format gilt für alle Pakete des Geräts. Eine neue Richtlinie enthält bereits die Regel * / Framework → Msix, weil Frameworks immer als MSIX kommen.

Typischer Terminalserver-Satz: Contoso.Legacy_* → Deny, * / Framework → Msix, * → AppAttachCim. Arbeitsplätze ohne eigene Regel erhalten weiterhin klassisches MSIX.

6. Für Integratoren: eigene Vorlagen

Fehlt eine Vorlage, nimmt man zuerst Registrierung. Eigene Vorlagen lohnen sich für Einstellungen mit eigenem Editor und Hilfetexten, die mehrfach gebraucht werden:

<ZpPolicyDefinition provider="CorpProxy" version="1.0" category="Workspace" context="User"
    settingsElement="CorpProxySettings" entryElement="CorpProxy" displayName="$(string.DisplayName)" description="$(string.Description)">
  <Attributes>
    <Attribute name="server" type="string" required="1" displayName="$(string.server)" description="$(string.server.desc)"/>
  </Attributes>
  <RegistryMappings>
    <Setting id="ProxyServer">
      <RegistryValue hive="HKEY_CURRENT_USER" key="Software\Microsoft\Windows\CurrentVersion\Internet Settings" name="ProxyServer" type="REG_SZ" valueFrom="server"/>
    </Setting>
  </RegistryMappings>
</ZpPolicyDefinition>
<ZpPolicyLanguage provider="CorpProxy" culture="en-US">
  <String id="DisplayName">Corporate proxy</String>
  <String id="Description">Sets the WinINET proxy server for the user.</String>
  <String id="server">Proxy server</String>
  <String id="server.desc">host:port, e.g. proxy.corp.local:8080.</String>
</ZpPolicyLanguage>

Mehr (type="enum" mit min/max, type="tristate" mit onValue/offValue, Maskenbits, when, DefaultEntries, entryTargeting="1") zeigen InternetSettings.zppx, RdsHost.zppx, Delivery.zppx. Registry-Pfade aus den ADMX-Dateien unter C:\Windows\PolicyDefinitions übernehmen (Vorsicht bei invertierter Logik wie fDenyTSConnections); Testwerte samt Vorzustand: HKLM\Software\NickIT\ZPAgent\AppliedPolicies\Registry (Benutzer: HKCU).

7. Anhang: PowerShell, Agent und Fehlersuche

7.1 PowerShell

Das Modul ZeroPortal wird mit dem Portal installiert; die Cmdlets erledigen dasselbe wie die Portaloberfläche.

Import-Module ZeroPortal
Set-AppvZeroPortalCmdLetConfiguration -BaseUrl 'https://zeroportal:8080' -SkipCertificateCheck $true

New-ZeroPortalPolicySet -Name 'Terminalserver' -Priority 10
New-ZeroPortalPolicy -Name 'AppAttach fuer AVD' -XmlPath .\appattach.xml -Enabled
Add-ZeroPortalPolicySetMember -SetName 'Terminalserver' -PolicyName 'AppAttach fuer AVD' -Priority 1
Set-ZeroPortalPolicySet -Name 'Terminalserver' -Enabled $true

Get-ZeroPortalPolicyHistory -Name 'AppAttach fuer AVD'
Restore-ZeroPortalPolicy -Name 'AppAttach fuer AVD' -Revision 3
Cmdlet Zweck
Get-ZeroPortalPolicySet [-Name] Sätze mit Priorität, Status und Mitgliedern auflisten
New-ZeroPortalPolicySet -Name [-Priority] [-Description] Satz anlegen; er ist bis zur Aktivierung inaktiv
Set-ZeroPortalPolicySet -Name [-Enabled] [-Priority] [-NewName] Satz aktivieren, umbenennen, Priorität ändern
Remove-ZeroPortalPolicySet -Name [-Force] Satz löschen; die Richtlinien bleiben erhalten
Get-ZeroPortalPolicy [-Name] [-IncludeXml] Richtlinien auflisten, auf Wunsch mit XML
New-ZeroPortalPolicy -Name -XmlPath|-XmlContent [-Enabled] Richtlinie aus XML anlegen; ohne -Enabled inaktiv
Set-ZeroPortalPolicy -Name [-XmlPath] [-Enabled] [-NewName] Richtlinie ändern; jede Änderung erhöht die Revision
Remove-ZeroPortalPolicy -Name [-Force] Richtlinie samt Mitgliedschaften und Historie löschen
Add-ZeroPortalPolicySetMember -SetName -PolicyName [-Priority] Richtlinie in einen Satz aufnehmen
Set-ZeroPortalPolicySetMember -SetName -PolicyName [-Priority] [-Enabled] Priorität oder Status der Mitgliedschaft ändern
Remove-ZeroPortalPolicySetMember -SetName -PolicyName [-Force] Richtlinie aus einem Satz nehmen
Get-ZeroPortalPolicyHistory -Name [-IncludeXml] Revisionen mit Datum und Bearbeiter anzeigen
Restore-ZeroPortalPolicy -Name -Revision Frühere Revision als neue Revision wiederherstellen
Export-ZeroPortalPolicyBuildingBlock -SetGuid|-PolicyGuid Satz oder Richtlinie als Baustein-XML ausgeben
Import-ZeroPortalPolicyBuildingBlock -Path Baustein-XML oder GPP-XML importieren; Sätze zunächst inaktiv

Die GUID für den Export liefert (Get-ZeroPortalPolicySet -Name 'VDI').SetGuid bzw. (Get-ZeroPortalPolicy -Name 'VDI Desktop').PolicyGuid.

Zwei portalweite Werte setzen Voll-Administratoren mit Set-ZeroPortalConfigurationValue -Name <Name> -Value <Wert>: PolicyHistoryDepth (Standard 20, aufbewahrte Revisionen je Richtlinie) und PolicyAssetMaxKB (Standard 256, Größenlimit je hochgeladener Datei wie Skript, Symbol oder Overlay; auch in der Globalen Konfiguration).

7.2 Richtlinienverwaltung delegieren

Voll-Administratoren vergeben unter Globale Konfiguration → Berechtigungen je Portalgruppe im Bereich Richtlinien die Stufe Lesen oder Verwalten (siehe Benutzer, Rechte, Lizenzen und Protokolle); per PowerShell Add-ZeroPortalRoleAssignment -RoleName PolicyAdmin -GroupName 'ZP-PolicyAdmins' (nur lesen: PolicyReader). Die Berechtigung wirkt ab der nächsten Anmeldung am Portal.

7.3 Verarbeitung auf dem Gerät

Der Agent verarbeitet Richtlinien im Computer- und im Benutzer-Abgleich jeweils vor den Paketen; ein Fehler in der Richtlinienverarbeitung bricht den Abgleich nie ab, die zuletzt wirksamen Bereitstellungsregeln bleiben dann gültig. Ohne Serververbindung gilt der zwischengespeicherte Stand. Jeder Lauf endet mit Ereignis 2600, einem Hinweis im Tray und einem Bericht an das Portal.

Die Schalter setzen Sie per Gruppenrichtlinie (ADMX, hat Vorrang), lokal mit Set-ZPAgentConfiguration -<Schalter> <Wert> oder zentral über die Richtlinie Agent-Konfiguration als Policy/<Schalter>; Get-ZPAgentConfiguration -Policy zeigt alle wirksamen Werte. Die vier, die zählen:

Schalter Standard Folge
PolicyProcessingEnabled aus Hauptschalter (ADMX Sync Richtlinien einschalten, Enable-ZPAgentSync -Policy oder POLICYSYNC=1 bei der Installation). Aus: keine Richtlinien holen oder anwenden, bereits angewendete bleiben; Ereignis 2522
FastSkip an Lauf endet, wenn sich am Server nichts geändert hat; Ausnahme: eine Laufwerks- oder Druckerverbindung war beim letzten Mal fehlgeschlagen
FullReapplyHours 24 Spätestens nach so vielen Stunden ein vollständiger Lauf: repariert Abweichungen, nimmt abgelaufene Zeitfenster zurück
RefreshMinutes 90 Takt der Richtlinienaktualisierung zwischen den Abgleichen (5 bis 1440; ADMX Richtlinien-Aktualisierungsintervall), wie die Hintergrundaktualisierung von Gruppenrichtlinien

7.4 Ablage auf dem Gerät

Was Wo
Zwischenspeicher der Richtlinien (offline-fähig) C:\ProgramData\NickIT\ZeroPortalAgent\Policies\Machine und …\Policies\Users\<SID>
Hochgeladene Dateien (Skripte, Symbole, Overlays), nach Prüfsumme abgelegt C:\ProgramData\NickIT\ZeroPortalAgent\Assets
Angewendete Einstellungen samt Vorzustand für die Rücknahme HKLM\Software\NickIT\ZPAgent\AppliedPolicies\<Bereich> (Computer) und HKCU\…\AppliedPolicies\<Bereich> (Benutzer); Bereiche: Registry, Drives, Printers, Shortcuts, Folders, ScheduledTasks, Scripts, CopyTransform, AgentConfig
Wirksame Bereitstellungs- und Downgrade-Regeln HKLM\Software\NickIT\ZPAgent\Policy\Effective\Delivery und …\Effective\Downgrade
Zeitpunkt des letzten vollständigen Laufs (LastApplyUtc) HKLM\Software\NickIT\ZPAgent\Policy (Computer), HKCU\…\ZPAgent\Policy (Benutzer)
Agent-Log Dienst / Benutzer C:\ProgramData\NickIT\ZeroPortalAgent\Logs\agent-<Datum>.log und usersync-<Benutzer>-<Datum>.log
Portal-Log C:\ProgramData\NickIT\ZPServer\Logs\ZeroPortalLogs.log

7.5 Ereignisse im Agent-Log

ID Bedeutung
2522 Richtlinienverarbeitung per Konfiguration ausgeschaltet (Hauptschalter aus)
2600 Zusammenfassung eines Richtlinienlaufs: gesetzt, zurückgenommen, fehlgeschlagen, Anzahl Bereitstellungsregeln
2610–2612 Registry-Wert gelöscht / gesetzt / zurückgenommen
2613 Dienstaktion ausgeführt (starten, stoppen, neu starten)
2614, 2615 Laufwerk verbunden / getrennt
2616, 2617 Verknüpfung angelegt / entfernt
2618, 2619 Drucker verbunden / entfernt
2620–2622 Agentschalter zurückgesetzt / gesetzt / nach Wegfall der Richtlinie wiederhergestellt; 2622 auch: Kopieraufgabe erledigt
2623, 2624 Ordner angelegt / gelöscht oder zurückgenommen
2625, 2626 Geplante Aufgabe angelegt / entfernt
2627 Skript erfolgreich beendet
2628 Desktop aufgeräumt
2630 Paket per Bereitstellungsregel unterdrückt (Deny)
2105, 2106 Richtlinienaktualisierung eingeplant / abgeschlossen
3600 Richtlinien nicht abrufbar; nächster Server oder Zwischenspeicher wird genutzt
3610 AD-Gruppenfilter ohne SID; Richtlinie gilt nicht
3611 Ungültiger IP-Bereich oder ungültiges Zeitfenster; Richtlinie gilt nicht
3612 Unbekannter Filtertyp; Richtlinie gilt nicht
3613, 3614 OU-Filter ohne Pfad / Gerät ohne Domänen-DN (Arbeitsgruppe); Richtlinie gilt nicht
3615, 3616 Laufwerk trennen / Verknüpfung aufräumen fehlgeschlagen
3617 Symbol einer Verknüpfung von keinem Server erhältlich
3618 Standarddrucker konnte nicht gesetzt werden
3622, 3623 Skript übersprungen (Datei oder Prüfsumme fehlt) / Skript mit Fehlercode beendet, wird beim nächsten Lauf wiederholt
3624 Desktop-Info-Overlay fehlgeschlagen
4600 Richtlinienpaket vom Server oder aus dem Zwischenspeicher nicht lesbar
4601, 4602 Richtlinienverarbeitung im Computer- / Benutzer-Abgleich abgebrochen; der Paketabgleich läuft weiter
4610, 4611 Registry-Wert setzen / zurücknehmen fehlgeschlagen
4612–4617 Dienstaktion, Laufwerk, Verknüpfung, Drucker, Kopieraufgabe, Ordner fehlgeschlagen
4618 Geplante Aufgabe oder Desktop-Aufräumen fehlgeschlagen
4619 Skript blockiert (Prüfsumme stimmt nicht) oder fehlgeschlagen
4620 Agentschalter konnte nicht gesetzt oder zurückgenommen werden

7.6 Für Auswertungen: zwei Abfragen

Nur über die Portal-API (im Browser mit Windows-Anmeldung oder per Invoke-RestMethod -UseDefaultCredentials):

Abfrage Zweck
GET /api/Policy/Rsop?computerName=VDI-01&ou=<DN>&sids=<SID,SID>&ip=<Adresse> Vorschau: welche Sätze und Richtlinien auf die angegebenen Merkmale zutreffen. Filter, die nur das Gerät entscheiden kann (Zeit, Registrierung, Datei, Sitzung, Betriebssystem), werden als „device" gemeldet
GET /api/Policy/Reports?identity=<Name> Letzter Anwendungsbericht je Gerät oder Benutzer: angewendete Sätze und Richtlinien, Zähler, Agentversion, Zeitpunkt