Installation & Betrieb

PoisonZero installieren: vollständige Referenz

PoisonZero installiert auf jedem Gerät einen kleinen Daemon, der die Memory-Dateien Ihrer Agenten lokal überwacht. Diese Seite dokumentiert den Installer von Anfang bis Ende: die Befehle für die Schnellinstallation, jede Umgebungsvariable, das Datenverzeichnis je Betriebssystem, den Dienst, der den Daemon ausführt, und wie Sie ihn unbeaufsichtigt ausrollen.

Lesezeit ~9 Min · Installation & Betrieb

Überblick

Was der Installer tut, der Reihe nach:

  • Lädt das passende Daemon-Binary von https://poisonzero.com/dl/latest (Linux/macOS/Windows, amd64 oder arm64).
  • Verifiziert seine SHA-256-Checksumme gegen die veröffentlichte SHA256SUMS; bricht bei jeder Abweichung ab.
  • Installiert einen privilegierten Dienst und enrollt das Gerät optional über einen Installationsschlüssel aus dem Panel.
Die Dienst-Installation braucht erhöhte Rechte: root (sudo) auf Linux/macOS, eine Administrator-PowerShell auf Windows. Mit PZ_FETCH_ONLY=1 nur herunterladen und verifizieren.

Voraussetzungen, die vor der Installation geprüft werden:

  • x86-64: AVX2 (Intel Haswell/2013+, AMD Zen+).
  • ARM64: i8mm (Apple M2+; Apple M1 nicht unterstützt).
  • Windows: Datenverzeichnis auf einem NTFS-Laufwerk.

Schnellinstallation

Erzeugen Sie im Panel einen Installationsschlüssel (oder verwenden Sie einen alten Code je Gerät) und führen Sie den Befehl für Ihre Plattform aus:

bashTerminal
curl -fsSL https://poisonzero.com/install.sh | sudo \
  PZ_ENROLL_CODE="ihr-code" sh
powershellPowerShell
$env:PZ_ENROLL_CODE="ihr-code"
irm https://poisonzero.com/install.ps1 | iex
  • Ohne vorab gesetzten Code fragt der Installer nach dem Installationsschlüssel (auf einem echten Terminal zusätzlich Beschleunigungs-/Tier- und Headless-Auswahl); nach einer App-ID wird nur beim alten Verfahren je Gerät gefragt.
  • Ein Installationsschlüssel ist mehrfach nutzbar bis zu seiner Einlösungsgrenze; ein alter Code je Gerät bleibt ein Einmal-Code.
  • Bereits enrollt und ohne neuen Code erneut ausgeführt = Upgrade: tauscht das Binary, startet den Dienst neu, behält Ihre Credentials.
Updates laufen automatisch. Einmal pro Gerät installieren; erneut ausführen nur, um das Enrollment zu ändern oder einen Binary-Tausch zu erzwingen.

Installationsschlüssel

Erzeugen Sie einen Installationsschlüssel im Panel unter Installationsschlüssel. Er ist der empfohlene Weg, Geräte zu enrollen:

  • Mehrfach nutzbar: Ein Schlüssel enrollt Geräte bis zu der Einlösungsgrenze, die Sie bei der Erzeugung festlegen; jedes Enrollment zählt auf diese Grenze.
  • Nur einmal angezeigt: Kopieren Sie ihn bei der Erzeugung - das Panel zeigt ihn danach nicht erneut.
  • Widerrufbar: Im Panel widerrufen stoppt sofort weitere Einlösungen; bereits enrollte Geräte laufen weiter.
  • Keine App-ID nötig: Das Backend vergibt jedem Gerät seine Kennung erst bei der Einlösung.
Das alte Verfahren - ein Gerät im Panel anlegen, um eine passende App-ID und einen Einmal-Code zu erhalten - funktioniert unverändert weiter. Nutzen Sie es für ältere Installer oder bestehende Integrationen.

Umgebungsvariablen

Nageln Sie jede Option über eine Umgebungsvariable fest, um die Installation nicht-interaktiv auszuführen:

VariableWerteDefaultWirkung
PZ_ENROLL_CODEInstallationsschlüsselkeinerDer Installationsschlüssel aus dem Panel. Für ein frisches Enrollment erforderlich; er genügt allein, da das Backend die Gerätekennung vergibt. Wird ein frischer Schlüssel auf einem enrollten Gerät erneut übergeben, erzwingt das ein bewusstes Re-Enroll.
PZ_APP_IDApp-IDkeinerAlt und optional: nur zusammen mit einem älteren Code je Gerät nötig, der vor den Installationsschlüsseln geprägt wurde. Allein wird sie ignoriert.
PZ_HEADLESSnone, standard, strictnoneNagelt den Nutzer-Dialog-Umgang auf einer Maschine ohne Desktop-Nutzer fest. none erkennt automatisch aus dem angemeldeten Nutzer; standard/strict schreiben eine headlessmode-Datei, die der Daemon liest.
PZ_BACKENDcpu, gpucpuBeschleunigungs-Backend. Nur CPU ist der empfohlene, sicherste Standard. GPU ist Opt-in und zeigt einen Sicherheitshinweis; die GPU-Engine ist noch nicht veröffentlicht.
PZ_TIERenterprise, ultraenterpriseProdukt-Tier. ultra impliziert GPU und ist fail-closed ohne CPU-Fallback; enterprise mit GPU fällt auf eine funktionierende Nur-CPU-Installation zurück.
PZ_FETCH_ONLY1nicht gesetztLädt und verifiziert nur das Binary und beendet sich dann. Kein Dienst wird installiert, daher sind keine erhöhten Rechte nötig.
PZ_FETCH_DESTPfad./poisonzero (.\poisonzero.exe auf Windows)Zielpfad für das verifizierte Binary bei PZ_FETCH_ONLY=1.
PZ_SETUP_AGENTSKomma-Liste, z. B. claude,codexnicht gesetztKlinkt den lokalen /poisonzero-Statistikbefehl in die genannten Agenten ein (Claude Code, Codex, Gemini, Cursor). Rein lokal, Opt-in.
PZ_SETUP_STATUSLINE1nicht gesetztFügt die PoisonZero-Statusline in Claude Code hinzu (~/.claude/settings.json). Eine bestehende Statusline wird nie ersetzt.
PZ_DRY_RUN1nicht gesetztGibt den aufgelösten Modus (fresh/re-enroll/upgrade) aus und beendet sich vor jedem Seiteneffekt. Nützlich, um Automatisierung zu testen.
POISONZERO_DATA_DIRPfadOS-Default (siehe unten)Überschreibt das Datenverzeichnis, das Daemon und Installer nutzen.
Linux/macOS akzeptieren zusätzlich ein Flag --headless none|standard|strict (gewinnt gegen PZ_HEADLESS); das Windows-Deploy-Skript nimmt -Headless.

Datenverzeichnis und Dateien

Binary: /usr/local/bin/poisonzero (Linux/macOS), <ProgramFiles>\PoisonZero\poisonzero.exe (Windows). Datenverzeichnis je OS:

OSDatenverzeichnisEigentümer
Linux/var/lib/poisonzero (enroll-Datei unter /etc/poisonzero/enroll)poisonzero:poisonzero
macOS/Library/Application Support/PoisonZeroroot:wheel
Windows<ProgramData>\PoisonZeroSYSTEM / Administratoren

Dateien im Datenverzeichnis:

  • credentials - gespeichertes Geräte-Token; seine Existenz markiert das Gerät als enrollt und wird beim Upgrade nie überschrieben.
  • enroll - Einmal-Enrollment-Eingabe (der Installationsschlüssel, plus appId beim alten Verfahren), die poisonzero enroll beim ersten Start verbraucht.
  • headlessmode - nur vorhanden, wenn standard/strict festgenagelt wurde; fehlend oder leer = Auto-Erkennung.
  • vault/ - Quarantäne-Speicher für zurückgenommene Inhalte.

Dienst / Daemon

Läuft als privilegierter Hintergrunddienst, ein Mechanismus je OS:

OSTypName & Statusbefehl
Linuxsystemd-Unit (root)poisonzero.service · systemctl status poisonzero
macOSlaunchd-LaunchDaemoncom.poisonzero.daemon · launchctl print system/com.poisonzero.daemon
WindowsScheduled Task (SYSTEM, bei Boot)PoisonZero · Get-ScheduledTask -TaskName PoisonZero
  • Windows nutzt einen Scheduled Task, keinen Windows-Dienst: Das Go-Binary lädt sein Modell beim ersten Start und würde das Start-Timeout des Service Control Managers verpassen.
  • Ein Desktop-Notifier läuft in jeder Nutzersitzung für den Nutzer-Dialog: XDG-Autostart (Linux), LaunchAgent pro Nutzer (macOS), Run-Key-VBS-Wrapper (Windows).

Unbeaufsichtigte Installation (Intune / SCCM)

Setzen Sie den Installationsschlüssel in der Umgebung und führen Sie denselben Einzeiler aus; mit vorhandenem Code und ohne Terminal läuft er ohne Rückfragen:

bashUnbeaufsichtigt
PZ_ENROLL_CODE="ihr-code" \
  sh -c "$(curl -fsSL https://poisonzero.com/install.sh)"
powershellUnbeaufsichtigt
$env:PZ_ENROLL_CODE="ihr-code"
irm https://poisonzero.com/install.ps1 | iex
Ergänzen Sie PZ_DRY_RUN=1, um den aufgelösten Modus (fresh/re-enroll/upgrade) auszugeben und vor jeder Änderung zu beenden.

Nur herunterladen und verifizieren

PZ_FETCH_ONLY=1 lädt das Binary, verifiziert seine SHA-256-Checksumme und schreibt es auf die Platte, ohne einen Dienst zu installieren (keine erhöhten Rechte):

bashNur laden
curl -fsSL https://poisonzero.com/install.sh | PZ_FETCH_ONLY=1 sh
# schreibt ./poisonzero (überschreiben mit PZ_FETCH_DEST)
powershellNur laden
$env:PZ_FETCH_ONLY="1"; irm https://poisonzero.com/install.ps1 | iex
# schreibt .\poisonzero.exe (überschreiben mit $env:PZ_FETCH_DEST)
Die Checksummen-Verifikation ist auf jedem Weg Pflicht; ein manipulierter oder abgeschnittener Download wird nie installiert.

Gerät prüfen

  1. Prüfen Sie mit dem Statusbefehl für Ihr OS (Tabelle oben), dass der Dienst läuft.
  2. Öffnen Sie das Panel: Das enrollte Gerät erscheint mit seinem Status in Ihrer Geräteliste.
  3. Um ein Gerät auf einen frischen Installationsschlüssel umzustellen, führen Sie den Installer mit neuer PZ_ENROLL_CODE erneut aus - es enrollt sauber neu.

Deinstallieren

Stoppen Sie den Dienst, entfernen Sie dann Binary und Datenverzeichnis:

bashDeinstallieren
sudo systemctl disable --now poisonzero.service
sudo rm -f /usr/local/bin/poisonzero
sudo rm -rf /var/lib/poisonzero /etc/poisonzero
bashDeinstallieren
sudo launchctl bootout system /Library/LaunchDaemons/com.poisonzero.daemon.plist
sudo rm -f /Library/LaunchDaemons/com.poisonzero.daemon.plist /usr/local/bin/poisonzero
sudo rm -rf "/Library/Application Support/PoisonZero"
powershellDeinstallieren
Unregister-ScheduledTask -TaskName PoisonZero -Confirm:$false
icacls "$env:ProgramFiles\PoisonZero\poisonzero.exe" /reset
Remove-Item -Recurse -Force "$env:ProgramFiles\PoisonZero", "$env:ProgramData\PoisonZero"
Statt deinstallieren pausieren? Der Schutz ist von Grund auf fail-closed, das Entfernen des Dienstes ist also der saubere Weg, ihn ganz zu stoppen.
War das hilfreich?

Schützen Sie jedes Gerät mit einem Befehl.

Kostenlos für Linux, macOS und Windows. Einmal installieren, Updates laufen automatisch.

Sign me up