Client-Agent: Betrieb und Rollout
Für Administratoren. Stand September 2026 (Server 1.0.31, Agent 1.0.36). Verwandte Anleitungen: Administrationshandbuch (Kapitel „Clients anbinden"), Quick-Admin-Guide (Schritt für Schritt mit Bildschirmfotos), Geräte ohne Domäne (API-Key), Bekannte Fehlerbilder, MSIX-Pakete verteilen, Richtlinien und Vorlagen.
1. Was ist das?
Der ZeroPortal Client-Agent läuft auf dem Endgerät. Er fragt das Portal, was dem Computer und dem angemeldeten Benutzer zugewiesen ist, und setzt das lokal um: MSIX-Pakete (auch als App Attach), App-V-Pakete und Verbindungsgruppen sowie ZeroPortal-Richtlinien. Er meldet dem Portal, dass Gerät und Benutzer aktiv sind (Lizenzquittung), und zeigt dem Benutzer über ein Tray-Symbol, was gerade passiert.
| Teil | Läuft als | Aufgabe |
|---|---|---|
Dienst ZeroPortalAgent |
Lokales Systemkonto | Computer-Sync: maschinenweite Pakete, App-Attach-Images einhängen, App-V für den Computer, Computerrichtlinien. Startet das Tray-Symbol in jeder Sitzung. |
Geplante Aufgabe \NickIT\ZeroPortalAgent\UserSync |
Angemeldeter Benutzer | Benutzer-Sync bei Anmeldung, Entsperren und im Intervall: benutzerbezogene Pakete und Benutzerrichtlinien. |
| Tray-Symbol | Angemeldeter Benutzer | Status, verwaltete Pakete, manuelle Synchronisierung, Reparatur, Logs, Bereitstellungszeiten. |
| Pfad | |
|---|---|
| Installation | C:\Program Files\NickIT\ZeroPortalAgent |
| Gruppenrichtlinienvorlage (ADMX, de-DE und en-US) | C:\Program Files\NickIT\ZeroPortalAgent\admx |
PowerShell-Modul ZeroPortalAgent |
wird mit dem Agenten installiert, Cmdlets *-ZPAgent* |
| Protokolle | C:\ProgramData\NickIT\ZeroPortalAgent\Logs |
| App-Attach-Mount-Punkt (Standard) | C:\ProgramData\NickIT\AppAttach |
| Einstellungen | HKLM\SOFTWARE\NickIT\ZPAgent (lokal), HKLM\SOFTWARE\Policies\NickIT\ZPAgent (Gruppenrichtlinie) |
Anmeldung am Portal. In einer Domäne braucht der Agent keine Konfiguration: der Dienst
meldet sich mit dem Computerkonto (Kerberos) an, der Benutzer-Sync mit dem Ticket des
Benutzers. Geräte ohne Domäne holen sich über ein Registrierungstoken einen eigenen Schlüssel
(geschützt unter HKLM\SOFTWARE\NickIT\ZPAgent\Auth); liegt ein Schlüssel vor, wird er benutzt,
sonst Kerberos. Siehe Geräte ohne Domäne (API-Key).
2. Wozu ist das gut?
- Arbeitsplätze in der Domäne. MSI per Gruppenrichtlinie oder Softwareverteilung, alle Einstellungen aus einer GPO. Nach der ersten Anmeldung erscheinen die zugewiesenen Anwendungen; neue Zuweisungen kommen mit dem nächsten Abgleich.
- Terminalserver und Sitzungshosts. Der Computer-Sync stellt Pakete maschinenweit bereit, der Benutzer-Sync registriert sie bei jeder Anmeldung. App Attach hält die Paketinhalte auf einem zentralen Image statt in jedem Profil.
- Notebooks. Ohne Portalkontakt arbeitet der Agent mit seinem Zwischenspeicher weiter und entfernt nichts. Lokal installierte MSIX- und vollständig geladene App-V-Pakete laufen offline; App Attach braucht die Freigabe.
- Mehrere Standorte. Ein standortlokaler Pfad für die Paketquelle (
MSIX/MSIXPackageRoot) hält den Paketverkehr im Standortnetz. - Cluster. Mehrere Portal-Server in der Serverliste bilden eine Prioritätskette; bei Ausfall wechselt der Agent zum nächsten.
- Geräte ohne Active Directory. Pilotgeräte oder Einzelplätze melden sich mit einem Schlüssel an, den sie sich mit einem Registrierungstoken selbst holen.
3. Wie nutze ich das?
3.1 Agent-MSI beziehen
Die zum Server passende Agent-MSI liegt im Portal in der Seitenleiste unter Downloads (Voll-Administratoren und Gruppen mit Stufe Lesen für den Bereich Downloads auf der Seite Berechtigungen). Neue Agent-Versionen kommen mit dem Server-Update.
Edge und SmartScreen warnen bei einer selten heruntergeladenen Datei: Beibehalten und Trotzdem beibehalten. Für den regelmäßigen Bezug nehmen Sie die Portal-Domäne per Richtlinie aus (Abschnitt 3.2).
3.2 Browser vorbereiten: Intranetzone und SmartScreen
Intranetzone. Damit sich Browser und Agent ohne Anmeldefenster per Kerberos anmelden, gehört die Portal-URL in die Zone Lokales Intranet. Ein Anmeldefenster trotz korrekter Berechtigung ist fast immer dieses fehlende Zonen-Mapping (fehlende Berechtigung erscheint als „kein Zugriff"). Per GPO: Benutzerkonfiguration → Administrative Vorlagen → Windows-Komponenten → Internet Explorer → Internetsystemsteuerung → Sicherheitsseite → Site-zu-Zone-Zuweisungsliste, Portal-FQDN mit Wert 1; gilt auch für Edge und Chrome. Einen SPN braucht es nur, wenn das Portal unter einem Aliasnamen erreichbar ist (Bekannte Fehlerbilder).
SmartScreen. GPO Computerkonfiguration → Administrative Vorlagen → Microsoft Edge →
SmartScreen-Einstellungen → Liste der Domänen, für die Microsoft Defender SmartScreen keine
Warnungen auslöst (Registry: HKLM\SOFTWARE\Policies\Microsoft\Edge\SmartScreenAllowListDomains,
Wert 1 = Portal-FQDN). Meldet Edge „unsicherer Download blockiert", wurde das Portal über
HTTP statt HTTPS aufgerufen.
3.3 Gruppenrichtlinie vorbereiten (ADMX)
Wo finde ich die ADMX-Vorlage? Sie wird mit dem Agenten installiert und liegt auf jedem Gerät mit Agent unter
C:\Program Files\NickIT\ZeroPortalAgent\admxDer Ordner enthält
ZeroPortalAgent.admxund die Sprachordnerde-DEunden-USmit den zugehörigen.adml-Dateien. Es gibt keinen getrennten Download: Installieren Sie den Agenten einmal auf einem beliebigen Rechner (auch auf dem Portal-Server) und holen Sie die Dateien von dort.
Kopieren Sie die Dateien in den Central Store Ihrer Domäne
(\\<Domäne>\SYSVOL\<Domäne>\Policies\PolicyDefinitions). Die Einstellungen erscheinen unter
Computerkonfiguration → Administrative Vorlagen → NickIT → ZeroPortal Agent.
Vier Einstellungen entscheiden über alles Weitere. Sie stehen direkt im Ordner ZeroPortal Agent, alle übrigen liegen in den Unterordnern.
| Einstellung | Was sie bewirkt |
|---|---|
| Publishing-Server | Die Portal-URLs, je Zeile eine, optional als Anzeigename\|https://server:port. Die Reihenfolge ist die Priorität. Ohne diese Angabe weiß der Agent nicht, wen er fragen soll. Eine konfigurierte Liste ersetzt jede lokal eingetragene. |
| Sync MSIX einschalten | Der Agent verteilt MSIX-Pakete und App Attach. |
| Sync App-V einschalten | Der Agent verteilt App-V-Pakete und Verbindungsgruppen. Siehe die Warnung unten. |
| Sync Richtlinien einschalten | Der Agent wendet ZeroPortal-Richtlinien an: Laufwerke, Drucker, Desktop, Skripte und die übrigen Vorlagen. |
Nach der Installation sind alle drei Abgleichbereiche aus: der Agent verbindet sich mit dem Portal, stellt aber nichts bereit. Schalten Sie nur ein, was Sie wirklich brauchen.
App-V-Abgleich ausgeschaltet lassen, wenn der Microsoft-App-V-Client die Pakete holt. Für App-V gibt es zwei Wege, und auf einem Gerät darf immer nur einer aktiv sein. Entweder der Microsoft-App-V-Client fragt das Portal selbst als Publishing-Server ab, dann bleibt Sync App-V einschalten aus. Oder der ZeroPortal-Agent übernimmt die App-V-Pakete, dann tragen Sie im Microsoft-Client keinen Publishing-Server ein. Laufen beide, veröffentlichen und entfernen sie dieselben Pakete abwechselnd: Verknüpfungen verschwinden und tauchen wieder auf, und in den Protokollen jagen sich die Einträge. MSIX und Richtlinien sind davon nicht betroffen, die dürfen parallel laufen.
Bei eigener PKI verteilen Sie das Serverzertifikat des Portals mit derselben GPO in den Speicher Vertrauenswürdige Stammzertifizierungsstellen des Computers; der Dienst läuft als System und sieht keine Benutzerzertifikate.
3.4 Agent installieren
msiexec /i ZeroPortalAgent-<Version>.msi /qn
Der Dienst startet sofort, der erste Computer-Sync läuft etwa 30 Sekunden später, das Tray-Symbol erscheint in jeder angemeldeten Sitzung. Ein Neustart ist nicht nötig.
MSI-Parameter braucht nur, wer ohne Gruppenrichtlinie arbeitet (Test, Workgroup):
| Parameter | Bedeutung |
|---|---|
SERVER=https://portal:8443 |
Portal-URL als Eintrag 1 der lokalen Serverliste; SERVERNAME= vergibt den Anzeigenamen (Standard ZeroPortal) |
MSIXSYNC=1, APPVSYNC=1, POLICYSYNC=1 |
Die drei Abgleichbereiche einschalten. Bleiben bei einem späteren Upgrade ohne Parameter erhalten |
ENROLLTOKEN=zpe_… |
Registrierungstoken für Geräte ohne Domäne (Geräte ohne Domäne (API-Key)) |
TRUSTCERT=1 |
Das Portalzertifikat beim ersten Kontakt in den Computerspeicher übernehmen, wenn die Kette nicht prüfbar ist (nur Test) |
NOTRAY=1 |
Kein Tray-Symbol, damit auch keine Hinweiskarten (Agent/TrayAutostart=0) |
NOTOASTS=1 |
Tray-Symbol ohne Hinweiskarten (Agent/ToastMode=Off) |
Upgrade. Eine neuere MSI lässt sich über die vorhandene Version installieren; Dienst und Tray werden dabei neu gestartet. Bei einem großen Versionssprung oder wenn ein Upgrade mit Fehler 1603 zurückgerollt wird: alte Version deinstallieren, neue MSI installieren. Vermeiden Sie Serien von Installationen und Dienstneustarts im Minutentakt (Abschnitt 5.2).
3.5 Erste Prüfung
Auf dem Client in einer administrativen PowerShell:
Get-ZPAgentStatus # Dienst erreichbar, Version, Serverliste
Get-ZPAgentSync # Welche Bereiche aktiv sind und woher der Wert stammt
Sync-ZPAgentPublishingServer # Abgleich sofort anstoßen
Get-ZPAgentPackage # Vom Agenten verwaltete Pakete
Der Benutzer sieht dasselbe im Tray-Symbol: Jetzt synchronisieren, Pakete anzeigen…, Logs öffnen, Bereitstellungszeiten… und Einstellungen… (zentrale Vorgaben haben Vorrang).
Im Portal erscheint das Gerät nach dem ersten Abgleich auf der Seite Globale Konfiguration → Agent-Registrierung in der Karte Bekannte Clients.
3.6 Einstellungen ändern
Die Faustregel: Was der Agent zum Starten braucht, kommt aus der Gruppenrichtlinie. Wie er sich im Betrieb verhält, kommt aus einer Richtlinie im Portal.
Die Gruppenrichtlinie bietet 25 Einstellungen an, die Portal-Richtlinie erreicht alle 57 Schalter. Nur in der Gruppenrichtlinie gibt es die Publishing-Server und das Registrierungstoken — beide braucht der Agent, bevor er ein Portal erreichen kann. Umgekehrt haben 34 Schalter keinen Eintrag in der Vorlage, darunter der App-Attach-Mount-Pfad, die Regeln fürs Entfernen, Downgrade und Selbstheilung sowie das Tray-Verhalten; die setzen Sie über die Portal-Richtlinie oder lokal. Anhang 6.1: steht in der Spalte ADMX ein Name, geht es auch per Gruppenrichtlinie.
- Gruppenrichtlinie (ADMX) für Serverliste, Failover, Zeitverhalten, die drei Sync-Schalter und Protokollierung. Gewinnt immer.
- ZeroPortal-Richtlinie vom Typ Agent-Konfiguration im Portal (Vorlage Agent-Konfiguration, siehe Richtlinien und Vorlagen): erreicht jeden Schalter des Katalogs. Wird mit dem nächsten Abgleich wirksam; ein später aus der Richtlinie entfernter Wert wird auf dem Gerät zurückgesetzt.
- PowerShell lokal mit
Set-ZPAgentConfiguration -<Schalter> <Wert>; jeder Schalter ist ein eigener Parameter, die Tab-Vervollständigung zeigt alle:
Get-ZPAgentConfiguration # alle Schalter: Name, Wert, SetByGroupPolicy, Bereich
Get-ZPAgentConfiguration -SyncIntervalMinutes # nur dieser Schalter
Set-ZPAgentConfiguration -SyncIntervalMinutes 30
Set-ZPAgentConfiguration -LogLevel Debug
Enable-ZPAgentSync -Msix -Policy # Abgleichbereiche lokal einschalten
3.7 Publishing-Server ohne Gruppenrichtlinie
Add-ZPAgentPublishingServer -Name 'ZeroPortal' -Url 'https://portal:8443'
Get-ZPAgentPublishingServer
Remove-ZPAgentPublishingServer -Name 'ZeroPortal'
Die lokale Liste gilt nur, solange keine GPO-Liste konfiguriert ist; greift die GPO, wird die lokale Liste ignoriert (nicht gelöscht).
3.8 App-Attach-Mount-Pfad ändern
MSIX/AppAttachMountRoot bestimmt, wohin App-Attach-Images (VHDX/CIM) eingehängt werden; leer
bedeutet C:\ProgramData\NickIT\AppAttach. Ist der Pfad nicht nutzbar (Laufwerk fehlt), fällt
der Agent auf den Standard zurück (Ereignis 3535). Eine Änderung hängt beim nächsten Abgleich
alle App-Attach-Pakete am neuen Pfad ein und registriert sie neu — daher im Wartungsfenster:
Set-ZPAgentConfiguration -AppAttachMountRoot 'D:\AppAttach' (oder Richtlinie
Agent-Konfiguration), Stop-Service ZeroPortalAgent, Neustart. Mounts überleben keinen
Neustart; leere Verzeichnisse des alten Pfads räumt der Agent beim Start weg.
3.9 Standortlokale Paketquelle
MSIX/MSIXPackageRoot (ADMX: Paketquellen-Stammpfad überschreiben) ersetzt den Präfix
\\Server\Freigabe der Katalog-URL durch einen lokalen Pfad oder DFS-Pfad; der restliche Pfad
bleibt. Gilt für MSIX-Bits und App-Attach-Images. Fehlt ein Paket dort, lädt der Agent von der
ursprünglichen Quelle.
4. Regeln: wann wirkt was
4.1 Rangfolge der Einstellungen
Beim Lesen gilt: Gruppenrichtlinie vor Richtlinie Agent-Konfiguration vor lokalem
Wert (PowerShell, MSI-Parameter) vor Standard im Code. Ist ein Schalter per GPO gesetzt,
haben Set-ZPAgentConfiguration und Enable-ZPAgentSync keine sichtbare Wirkung;
Get-ZPAgentConfiguration zeigt das in der Spalte SetByGroupPolicy.
4.2 Zeitverhalten
| Vorgang | Wann |
|---|---|
| Computer-Sync nach dem Start | etwa 30 s nach Dienststart, ohne Zufallsversatz |
| Computer-Sync wiederkehrend | alle MSIX/SyncIntervalMinutes (60) plus 0 bis Agent/SyncJitterMinutes (10) Zufall |
| Benutzer-Sync | bei Anmeldung und Entsperren, danach im selben Intervall wie der Computer-Sync |
| Richtlinien-Aktualisierung (nur Richtlinien) | erstmals 2 min nach Dienststart, dann alle Policy/RefreshMinutes (90) |
| Aufgeschobene Deinstallationen | 5 min nach Dienststart, dann alle MSIX/SweeperIntervalHours (4) |
| Kein Server erreicht | Computer-Sync wiederholt nach Agent/SyncFailureRetryMinutes (5), bis ein Server antwortet; Benutzer-Sync beim nächsten Auslöser |
| Server nicht erreichbar (Failover) | nach Agent/FailoverTimeoutSeconds (10 s) der nächste Server; der ausgefallene wird Agent/ServerBlacklistMinutes (10) gemieden, die Sperrliste wird bei jedem Dienststart geleert |
Ein neues Intervall greift nach dem nächsten Lauf; Periodischer Benutzer-Sync, Protokollierungsstufe und Protokollpfad beim nächsten Dienststart bzw. Benutzer-Sync.
4.3 Serverliste und Failover
- Die GPO-Liste ist maßgeblich. Nach einer Änderung:
gpupdate /forceam Client; der Agent liest die Liste beim nächsten Abgleich (oder sofort mitSync-ZPAgentPublishingServer). - Failover (Standard): Die Liste ist eine Prioritätskette identischer Replikate. Der erste Server, der innerhalb des Failover-Timeouts antwortet, gilt als vollständige Sicht; der Aufräumlauf richtet sich nach seinem Katalog. Nur Server mit demselben Katalog gehören in eine Liste.
- Merge-All (Failover aus): Jeder Server wird kontaktiert, die Inhalte werden zusammengeführt. Nur für unabhängige Portale. Antwortet einer nicht, wird der Aufräumlauf übersprungen (Ereignis 3500), damit kein Paket eines ausgefallenen Servers entfernt wird.
- Zufällige Serverauswahl verteilt die Last: pro Lauf startet der Agent bei einem zufälligen Server der Liste.
- Ein Server, der mit einem Fehler antwortet (403, 500), gilt als erreichbar und landet nicht auf der Sperrliste; der Agent versucht den nächsten.
4.4 Entfernen, Downgrade, Formatwechsel
- Ohne Serverkontakt wird nichts entfernt. Schlägt ein Abruf fehl, bleibt alles wie es ist.
- Ein Paket, das im Katalog fehlt, wird beim nächsten Abgleich entfernt
(
MSIX/AutoUninstallOnUnpublish;MSIX/ManagedPackageMissThreshold= Anzahl Abgleiche, die es fehlen muss).MSIX/GlobalRemovalPolicy:Immediatesofort,WhenIdleundOnRebootvormerken und später bzw. beim nächsten Dienststart entfernen,Disablednur beobachten. Läuft die Anwendung, wird aufgeschoben (MSIX/DeferRemovalWhileInUse), spätestens nachMSIX/RemovalIdleTimeoutHours(24) entfernt. - Downgrade ist aus (
MSIX/AllowDowngrade): eine lokal neuere Version gilt als erfüllt (Ereignis 2538 bzw. 3510). Eine Richtlinie Package Downgrade Control je Paketfamilie geht vor (MSIX-Pakete verteilen). - Formatwechsel MSIX ↔ App Attach: Der Agent beendet die laufende Anwendung und
registriert das Paket neu (
MSIX/TerminateAppsForFormatSwitch); aus = Wechsel wartet, solange sie läuft (Ereignis 3544). - Abgleichbereich abschalten (MSIX, App-V, Richtlinien) lässt bereits Bereitgestelltes unverändert.
- Sweep verwaister Verknüpfungen:
Agent/ShortcutSweepModeOff(Standard),ZeroPortal(nur eigene Pakete),All(alle lokalen).
4.5 Offline: Notebooks und mobile Geräte
| Bereitstellung | Ohne Portal und Freigabe |
|---|---|
| MSIX (lokal installiert) | läuft uneingeschränkt |
| App-V, vollständig geladen | läuft uneingeschränkt |
| App-V, teilweise gestreamt | nur der bereits geladene Anteil; vor Reisen im Tray Paket vollständig laden (Mount) nutzen |
| App Attach (VHDX/CIM von der Freigabe) | läuft nicht: das Paket ist von der Freigabe eingehängt, nicht kopiert |
Praxisregel: Mobile Geräte bekommen MSIX oder vollständig geladenes App-V, kein App Attach.
- Richtlinien bleiben auf dem zuletzt angewendeten Stand (Offline-Cache, Ereignis 3600); zurückgenommen wird ein Eintrag nur, wenn ein erreichbarer Server meldet, dass er entfallen ist.
- Lizenz: Die Quittung läuft 90 Tage und wird ab 28 Tagen Restlaufzeit erneuert. Hinweise wie „keine Lizenz frei" kommen nur nach einer echten Serverantwort, höchstens alle 4 Stunden. Erst wenn die Quittung abgelaufen und das Portal weiter unerreichbar ist, sieht der Benutzer einen Hinweis; die Anwendungen laufen in jedem Fall weiter.
- Wieder online holt der erste erfolgreiche Abgleich alles nach: Pakete, Richtlinien, Lizenzerneuerung.
5. Betrieb und Fehlersuche
5.1 Protokolle
| Was | Wo |
|---|---|
| Dienst (Computer-Sync) | C:\ProgramData\NickIT\ZeroPortalAgent\Logs\agent-<JJJJMMTT>.log, eine Datei je Tag |
| Benutzer-Sync | usersync-<Benutzername>-<JJJJMMTT>.log im selben Ordner; kann der Benutzer dort nicht schreiben, unter %LocalAppData%\NickIT\ZeroPortalAgent\Logs |
Der Agent schreibt nur in diese Textdateien, nicht in das Windows-Ereignisprotokoll. Jede
Zeile trägt Zeitstempel, Stufe (INF, WRN, ERR) und in eckigen Klammern die Ereignis-ID
(Anhang 6.4); am Ende jedes Abgleichs steht eine Zusammenfassung mit Zählern und den Namen
fehlgeschlagener Pakete.
- Feindiagnose:
Set-ZPAgentConfiguration -LogLevel Debug(oder GPO Protokollierungsstufe), wirkt beim nächsten Dienststart bzw. Benutzer-Sync; danach zurück aufInformation. - Anderer Ablageort:
Agent/LogPath(GPO Alternativer Protokollpfad). Dienst und Benutzer müssen dort schreiben dürfen, sonst entfällt das jeweilige Protokoll still. Clear-ZPAgentLoglöscht alle Agent-Protokolle; eine automatische Rotation gibt es nicht.- Der Benutzer erreicht den Ordner über das Tray-Menü Logs öffnen; Bereitstellungszeiten…
zeigt, wie lange Pakete und Richtlinien gebraucht haben (
Agent/DeploymentReport). - Die ADMX-Einstellung Keine Benutzernamen ins Agentenprotokoll schreiben (Bereich Datenschutz) wird in dieser Version noch nicht ausgewertet.
5.2 Stabil betreiben und Fehler finden
Jeder Dienststart remountet alle App-Attach-Images und fährt einen vollständigen Abgleich.
Installation, Deinstallation oder Dienstneustart im Minutentakt erzeugen einen
Mount-/Unmount-Wechsel, bei dem moderne Apps (Task-Manager, Startmenü) beim Start abstürzen
können — vorübergehend, keine bleibende Beschädigung. Daher: nach einer Installation den ersten
Abgleich abwarten; beim Testen den Dienst zwischen Änderungen stoppen (Stop-Service
ZeroPortalAgent) statt ihn schnell neu zu starten; auf Testgeräten mit vielen
App-Attach-Paketen den periodischen Abgleich drosseln (Agent/MachineSyncPeriodicEnabled=0
oder größeres MSIX/SyncIntervalMinutes). Tritt der Zustand ein: Dienst stoppen, Gerät neu starten.
| Symptom | Ursache | Abhilfe |
|---|---|---|
| Agent installiert, es passiert nichts | Abgleichbereiche ab Werk aus; keine Serverliste | Get-ZPAgentSync, Get-ZPAgentStatus; GPO Sync … einschalten und Publishing-Server setzen, gpupdate /force, Sync-ZPAgentPublishingServer |
| Log: 3506 / 3516 „reached NO publishing server", 2108 „short retry" | Portal nicht erreichbar, Name nicht auflösbar, Zertifikat nicht vertrauenswürdig, Port zu | URL aus Get-ZPAgentStatus im Browser des Clients testen; Zertifikatskette im Computerspeicher; Firewall zum Portal-Port |
| Log: 3503 / 3513 Server auf der Sperrliste, obwohl er läuft | Server antwortet unter Last langsamer als das Failover-Timeout | Agent/FailoverTimeoutSeconds erhöhen; die Sperre läuft nach Agent/ServerBlacklistMinutes ab oder mit dem nächsten Dienststart |
| Log: 3504 / 3514 „answered with an error" | Portal erreichbar, lehnt aber ab (Berechtigung, Kerberos) | Portal-Log und Berechtigungen prüfen; Zeitabweichung und SPN kontrollieren (Bekannte Fehlerbilder) |
| Anmeldefenster beim Aufruf des Portals; Edge blockiert die MSI | Portal-URL nicht in der Intranetzone; SmartScreen oder HTTP-Aufruf | Abschnitt 3.2 |
| Dienst startet nicht | Startfehler | agent-<Datum>.log nach Ereignis 4000 durchsuchen; ergänzend Windows-Ereignisprotokoll (.NET Runtime, Application Error) |
| Paket bleibt trotz Zurückziehen installiert | Aufräumlauf übersprungen, weil ein Server nicht geantwortet hat (3500) | Server erreichbar machen; bei unabhängigen Portalen jeden Server erreichbar halten oder Failover nutzen |
| Paket wird nicht entfernt, Tray zeigt „Entfernung geplant" | Anwendung läuft; Entfernen aufgeschoben (WhenIdle/OnReboot) |
Warten bis RemovalIdleTimeoutHours, Invoke-ZPAgentPendingRemoveSweep oder Neustart |
| Ältere Version wird nicht installiert (2538 / 3510) | Downgrade nicht erlaubt | MSIX/AllowDowngrade oder Richtlinie Package Downgrade Control für die Paketfamilie |
| App-Attach-Anwendung startet nach Neustart nicht (3532 / 3533) | Image nach dem Neustart noch nicht erreichbar (Freigabe, Netz) | Der Dienst wiederholt das Einhängen; Freigabe und Berechtigung des Computerkontos prüfen; für mobile Geräte kein App Attach |
| Log: 3535 Mount-Pfad nicht nutzbar | MSIX/AppAttachMountRoot zeigt auf ein fehlendes Laufwerk |
Pfad korrigieren oder leeren (Abschnitt 3.8) |
| Log: 3620 / 4531 „falling back to MSIX" | Kein App-Attach-Image im gewünschten Format oder Einhängen fehlgeschlagen | Im Portal Image erzeugen (MSIX-Pakete verteilen); Freigabe prüfen |
| Log: 3410 „deployment took … s" | Signaturprüfung wartet auf Internetabrufe (Zwischenzertifikat, Sperrlisten); typisch für Geräte ohne Internet | Die Meldung nennt die Ursache; die Einstellungen in Bekannte Fehlerbilder senken die Zeit von Minuten auf Sekunden, ohne die Signaturprüfung zu schwächen |
| Hinweis „Für Sie ist keine Lizenz mehr frei" | Lizenzumfang erschöpft; die Anwendungen laufen trotzdem | Lizenzierung im Portal prüfen (Benutzer, Rechte, Lizenzen und Protokolle) |
| Neue AD-Gruppenmitgliedschaft wirkt erst nach Ab- und Anmelden | Kerberos-Ticket des Benutzers enthält die Gruppe noch nicht | Agent/PurgeUserTicketsBeforeSync=1 (GPO Kerberos-Tickets des Benutzers vor dem Benutzer-Sync löschen), Nebenwirkungen beachten |
| Moderne Apps stürzen beim Start ab | Mount-Wechsel durch Neustart-Serien (siehe oben) | Dienst stoppen, Gerät neu starten |
6. Anhang: Technische Referenz
6.1 Schalter
Die Schalter, die ein Administrator üblicherweise ändert. Setzbar per GPO (Spalte „ADMX"), per
Richtlinie Agent-Konfiguration oder lokal mit Set-ZPAgentConfiguration -<Schalter> <Wert>.
Die vollständige Liste mit den aktuellen Werten liefert Get-ZPAgentConfiguration auf dem
Gerät; jeder Schalter ist ein Parameter von Set-ZPAgentConfiguration.
| Schalter | Bereich | Standard | ADMX | Bedeutung |
|---|---|---|---|---|
MSIXSyncEnabled |
MSIX | aus | Sync MSIX einschalten | MSIX- und App-Attach-Abgleich (Computer und Benutzer) |
AppVSyncEnabled |
AppV | aus | Sync App-V einschalten | App-V-Pakete und Verbindungsgruppen für Computer und Benutzer |
PolicyProcessingEnabled |
Policy | aus | Sync Richtlinien einschalten | ZeroPortal-Richtlinien abrufen und anwenden |
SyncIntervalMinutes |
MSIX | 60 | Sync-Intervall | Intervall für Computer- und Benutzer-Sync (5 bis 1440) |
MSIXPackageRoot |
MSIX | leer | Paketquellen-Stammpfad überschreiben | Standortlokale Paketquelle (Abschnitt 3.9) |
AppAttachMountRoot |
MSIX | leer | – | Mount-Punkt für App-Attach-Images; leer = C:\ProgramData\NickIT\AppAttach |
AllowDowngrade |
MSIX | aus | – | Ältere Version über eine installierte neuere stellen; Richtlinie je Paketfamilie geht vor |
GlobalRemovalPolicy |
MSIX | Immediate |
– | Immediate, WhenIdle, OnReboot, Disabled |
DeferRemovalWhileInUse |
MSIX | an | – | Entfernen aufschieben, solange die Anwendung läuft |
RemovalIdleTimeoutHours |
MSIX | 24 | – | Spätestens nach n Stunden entfernen |
ServerFailover |
Agent | an | Server-Failover-Modus | Prioritätskette identischer Replikate; aus = Merge-All |
FailoverTimeoutSeconds |
Agent | 10 | Feld in Server-Failover-Modus | Wartezeit je Server auf die Antwort (1 bis 300) |
RandomServer |
Agent | aus | Zufällige Serverauswahl | Zufälliger Startserver je Lauf |
ServerBlacklistMinutes |
Agent | 10 | Server-Blacklist-Dauer | Ausgefallenen Server so lange meiden; 0 = aus |
PurgeUserTicketsBeforeSync |
Agent | aus | Kerberos-Tickets des Benutzers vor dem Benutzer-Sync löschen | klist purge vor jedem Benutzer-Sync |
TrustServerCertificate |
Agent | aus | – | Portalzertifikat beim ersten Kontakt übernehmen (MSI TRUSTCERT=1, nur Test) |
LogLevel |
Agent | Information |
Protokollierungsstufe | None, Error, Warning, Information, Debug |
LogPath |
Agent | leer | Alternativer Protokollpfad | Anderer Ordner für die Protokolle |
6.2 Registry
Drei Stämme: GPO = HKLM\SOFTWARE\Policies\NickIT\ZPAgent (gewinnt beim Lesen; der Agent
liest hier jeden Katalogschlüssel, auch ohne ADMX-Eintrag), Lokal =
HKLM\SOFTWARE\NickIT\ZPAgent (PowerShell, MSI-Parameter, Richtlinie Agent-Konfiguration),
Benutzer = HKCU\SOFTWARE\NickIT\ZPAgent.
| Stamm | Unterschlüssel | Inhalt |
|---|---|---|
| GPO | \Servers |
Wertname 1, 2, 3 … (Priorität), Daten URL oder Name\|URL |
| GPO | \Agent, \MSIX, \AppV, \Policy |
Schalter der Spalte ADMX in 6.1 |
| GPO | \Auth |
EnrollmentToken (Registrierungstoken) |
| GPO | \Privacy |
AnonymizeLogNames (in dieser Version ohne Wirkung) |
| GPO | \UI |
Tray-Vorgaben Language, Theme, ShowFrameworks, ShowTooltips; kein ADMX-Eintrag, nur von Hand |
| Lokal | \Agent, \MSIX, \AppV, \Policy |
Lokale Werte derselben Schalter |
| Lokal | \Auth |
ApiKey (Geräteschlüssel, DPAPI-geschützt), EnrollmentToken (MSI), ApiKeySeed (MSI APIKEY=, wird beim ersten Dienststart übernommen und gelöscht) |
| Lokal | \Servers\<Nr> |
Url, Name, GlobalRefreshEnabled, UserRefreshEnabled, RequestTimeoutSec |
| Lokal | \ServerBlacklist |
Wertname = Server-Nr., Daten = Ablauf (UTC-Ticks) |
| Lokal | \MSIX\ManagedPackages\<Familie> |
Maschinenweit verwaltete MSIX- und App-Attach-Pakete |
| Lokal | \AppV\ManagedPackages, \AppV\ManagedGroups, \AppV\ManagedUserPackages\<SID>, \AppV\ManagedUserGroups\<SID> |
Vom Agenten veröffentlichte App-V-Pakete und Verbindungsgruppen (Computer bzw. je Benutzer) |
| Lokal | \AppliedPolicies\AgentConfig |
Zustand vor einer Richtlinie Agent-Konfiguration, für das Zurücksetzen |
| Lokal | \UI |
Tray-Vorgaben für alle Benutzer des Geräts |
| Benutzer | \Agent |
DisplayName (Anzeigename des Benutzers im Portal) |
| Benutzer | \Auth |
ApiKey (Benutzerschlüssel lokaler Konten, DPAPI-geschützt) |
| Benutzer | \MSIX\UserRegistrations\<Familie> |
Für den Benutzer registrierte Pakete |
| Benutzer | \UI |
Tray-Einstellungen des Benutzers: Language, Theme, ShowFrameworks, ShowTooltips |
Das Tray-Symbol hat keinen Autostart-Eintrag unter Run; der Dienst startet es
(Agent/TrayAutostart). Von ZeroPortal-Richtlinien gesetzte Werte (Laufwerke, Registry,
Verknüpfungen …) liegen an ihrem jeweiligen Ziel, nicht unter ZPAgent.
6.3 Cmdlets des Moduls ZeroPortalAgent
| Cmdlet | Zweck |
|---|---|
Get-ZPAgentStatus |
Dienst erreichbar, Versionen, Zustand des Computer-Syncs, Serverliste |
Sync-ZPAgentPublishingServer [-Method All\|Computer\|User] |
Abgleich anstoßen; ohne -Method gelten die Sync-Schalter, mit -Method wird der Lauf erzwungen. Alias Invoke-ZPAgentSync |
Get-ZPAgentConfiguration [-MSIX] [-AppV] [-Agent] [-Policy] [-<Schalter>] |
Effektive Werte mit SetByGroupPolicy |
Set-ZPAgentConfiguration -<Schalter> <Wert> |
Lokalen Wert schreiben (HKLM, erhöhte Rechte) |
Enable-ZPAgentSync / Disable-ZPAgentSync -Msix -AppV -Policy -All |
Abgleichbereiche lokal schalten |
Get-ZPAgentSync |
Die drei Bereiche mit Zustand und Herkunft (GPO, lokal, Standard) |
Add- / Set- / Get- / Remove-ZPAgentPublishingServer |
Lokale Serverliste |
Set-ZPAgentDisplayName -Name <Text> [-Scope User\|Machine] |
Anzeigename im Portal (Benutzer ohne erhöhte Rechte) |
Get-ZPAgentPackage [-Machine] [-User] |
Vom Agenten verwaltete Pakete |
Get-ZPAgentMountedPackage [<Familie*>] |
Welches Image ein App-Attach-Paket tatsächlich nutzt |
Invoke-ZPAgentPendingRemoveSweep |
Aufgeschobene Deinstallationen jetzt ausführen |
Clear-ZPAgentLog |
Agent-Protokolle löschen |
6.4 Ereignis-IDs im Agent-Protokoll (Auswahl)
| ID | Stufe | Bedeutung |
|---|---|---|
| 2100 | INF | Dienststart: Zeitplan des Computer-Syncs |
| 2101 / 2519 / 2601 | INF | Computer-Sync, Benutzer-Sync, Benutzer-Sync-Aufgabe abgeschlossen (mit Zählern) |
| 2108 | INF | Kein Server erreicht, kurze Wiederholung geplant |
| 2500 / 2510 | INF | Katalog vom Server geholt (Computer / Benutzer); 2510 auch: Schlüssel per Registrierungstoken erhalten |
| 2507 / 2516 | INF | Framework wird noch gebraucht und bleibt (Computer / Benutzer) |
| 2538 | INF | Neuere Version bereits installiert, Anforderung gilt als erfüllt; auch Umstellung einer Benutzerregistrierung auf App Attach |
| 2541 | INF | Erlaubter Downgrade, neuere Version wird vorher entfernt |
| 2605 | INF | Kerberos-Tickets des Benutzers vor dem Sync geleert |
| 2701 / 2702 / 2703 / 2704 | INF/WRN | App-V-Abgleich aus, App-V-Client fehlt, Katalog geholt, Abruf fehlgeschlagen |
| 3410 | WRN | Bereitstellung dauerte länger als SlowDeployWarnSeconds (30), mit Ursache (Zertifikatskette, Sperrlisten) |
| 3500 | WRN | Aufräumlauf übersprungen, weil ein Abruf fehlschlug |
| 3503 / 3513 | WRN | Server nicht erreichbar, auf die Sperrliste gesetzt (Computer / Benutzer) |
| 3504 / 3514 | WRN | Server antwortete mit Fehler oder kein Server für diesen Lauf freigegeben |
| 3505 / 3515 | WRN | Kein Server erreichbar, Wiederholung des Durchlaufs |
| 3506 / 3516 | WRN | Kein Server erreicht, Offline-Cache wird genutzt (Computer / Benutzer) |
| 3510 | WRN | Lokale Version neuer, Downgrade nicht erlaubt |
| 3532 / 3533 | WRN | App-Attach-Image fehlt oder ist nicht erreichbar, Wiederholung |
| 3535 | WRN | Mount-Pfad nicht nutzbar, Rückfall auf den Standard |
| 3541 | WRN | Downgrade nicht möglich, neuere Version ließ sich nicht entfernen |
| 3544 | WRN | Formatwechsel verschoben, Anwendung läuft |
| 3600 | WRN | Richtlinienabruf fehlgeschlagen, Offline-Cache wird genutzt |
| 3620 | WRN | App Attach angefordert, kein Image im gewünschten Format, Rückfall auf MSIX |
| 4000 | ERR | Dienst konnte nicht starten (vollständige Ursache) |
| 4100 / 4110 | ERR | Geplanter Lauf abgestürzt / Benutzer-Sync-Aufgabe konnte nicht angelegt werden |
| 4500 / 4510 | ERR | Katalogabruf fehlgeschlagen (Computer / Benutzer) |
| 4501 / 4511 | ERR | Bereitstellung eines Pakets fehlgeschlagen (Computer / Benutzer), mit Fehlercode |
| 4502 / 4512 | ERR | Entfernen eines Pakets fehlgeschlagen (Computer / Benutzer) |
| 4531 | ERR | Einhängen eines App-Attach-Images fehlgeschlagen, Rückfall auf MSIX |
| 4600 / 4601 / 4602 | ERR | Richtlinienpaket fehlerhaft, Richtlinienverarbeitung fehlgeschlagen (Computer / Benutzer) |
| 4610 / 4611 | ERR | Registry-Richtlinie konnte nicht gesetzt / zurückgenommen werden |









