Wie installiere ich den Inventar-Agent?
Kurzantwort
Abschnitt betitelt „Kurzantwort“Erstelle im Modul Discovery im Bereich Inventar-Agents einen Enrollment-Token
(wird genau einmal angezeigt), lade über „Agent herunterladen” das Skript
notory_agent.py und führe es auf dem Endgerät mit den Umgebungsvariablen
NOTORY_URL und NOTORY_TOKEN aus, einmalig zum Test, danach zeitgesteuert
(Aufgabenplanung / cron / launchd). Der Agent meldet Betriebssystem und installierte
Software und legt das Asset automatisch an bzw. aktualisiert es.
Voraussetzungen
Abschnitt betitelt „Voraussetzungen“Modul Discovery, ab Tarif Pro. Auf dem Endgerät genügt Python 3.8+. Das Referenzskript kommt ohne Zusatzpakete aus und läuft unter Windows, Linux und macOS. Neue Geräte zählen gegen das Asset-Limit deiner Lizenz.
Anleitung
Abschnitt betitelt „Anleitung“-
Bereich „Inventar-Agents” öffnen. Wähle Discovery und scrolle zur Karte Inventar-Agents. Vergib unter Name eine Bezeichnung für den Token (z. B. „Notebooks Vertrieb”) und klicke auf „Token erstellen”.
Screenshot ausstehenddiscovery-agent-01Karte 'Inventar-Agents' im Modul Discovery mit Namensfeld und Schaltfläche 'Token erstellen'Die Karte 'Inventar-Agents': Enrollment-Tokens erstellen. -
Token sofort kopieren. Notory zeigt den Token genau einmal an („Enrollment-Token: jetzt kopieren, es wird nicht erneut angezeigt”). Er beginnt mit
invagt_. Bewahre ihn sicher auf. Später lässt er sich nur widerrufen, nicht erneut anzeigen.Screenshot ausstehenddiscovery-agent-02Einmalige Anzeige des neu erstellten Enrollment-Tokens mit Kopier-SchaltflächeDer Enrollment-Token wird genau einmal angezeigt: sofort kopieren. -
Agent herunterladen. Klicke auf „Agent herunterladen”. Du erhältst das Skript
notory_agent.py(identisch für Windows, Linux und macOS). -
Auf dem Endgerät ausführen. Setze die beiden Umgebungsvariablen und starte das Skript testweise:
Windows (PowerShell) $env:NOTORY_URL = "https://demo.notory.io/api/v1"$env:NOTORY_TOKEN = "invagt_dein_token"python notory_agent.pyLinux / macOS export NOTORY_URL="https://demo.notory.io/api/v1"export NOTORY_TOKEN="invagt_dein_token"python3 notory_agent.pyBei Erfolg meldet das Skript
OK: 200 …. -
Zeitgesteuert einplanen. Damit die Daten aktuell bleiben, plane den Aufruf regelmäßig ein: Windows: Aufgabenplanung (z. B. täglich), Linux: cron (z. B.
@daily), macOS: launchd oder cron. In der Liste der Agents siehst du je Token „Zuletzt gesehen”; über Widerrufen deaktivierst du einen Token dauerhaft.
Enrollment-Token erstellen (Administrator, User-Token mit Scope write). Das Feld
token erscheint nur in dieser einen Antwort:
curl -X POST https://demo.notory.io/api/v1/discovery/agent/enrollments \ -H "Authorization: Bearer inv_dein_token" \ -H "Content-Type: application/json" \ -d '{ "name": "Notebooks Vertrieb" }'{ "id": "0190f3d0-4a10-7b20-8c30-1d40e50f6a70", "tenant_id": "3d9b0c12-4e5a-4f88-b1c7-2a9e6d4f0011", "name": "Notebooks Vertrieb", "active": true, "last_seen_at": null, "created_at": "2026-07-08T11:00:00Z", "token": "invagt_9hK2mQx7Lp4RwT8vZn3cYd6fBs1gAj5u"}Agent-Skript herunterladen (Administrator; os = windows, linux oder macos):
curl -H "Authorization: Bearer inv_dein_token" \ "https://demo.notory.io/api/v1/discovery/agent/download?os=linux" \ --output notory_agent.pyBericht senden: Das macht normalerweise der Agent selbst; der Aufruf authentifiziert
sich mit dem Enrollment-Token (invagt_…), nicht mit einem Benutzer-Token:
curl -X POST https://demo.notory.io/api/v1/discovery/agent/report \ -H "Authorization: Bearer invagt_9hK2mQx7Lp4RwT8vZn3cYd6fBs1gAj5u" \ -H "Content-Type: application/json" \ -d '{ "machine_id": "4c4c4544-0042-3510-8054-b7c04f4d3732", "hostname": "NB-VERTRIEB-07", "os": "Windows", "os_version": "10.0.26200", "manufacturer": "Lenovo", "model": "ThinkPad T14 Gen 4", "serial_number": "PF-3X9K2L", "software": [ { "name": "Mozilla Firefox", "version": "140.0" }, { "name": "7-Zip", "version": "24.08" } ] }'{ "asset_id": "0190f3d1-5b20-7c30-9d40-2e50f60a7b81", "created": true, "software_count": 2}Token widerrufen: POST /api/v1/discovery/agent/enrollments/{id}/revoke
(Administrator). Danach antwortet der Report-Endpunkt für diesen Token mit 401.
Mögliche Fehler: 401 (Token fehlt, ungültig oder widerrufen), 403 (kein
Administrator, Modul nicht im Tarif oder Asset-Limit erreicht bei neuem Gerät), 400
(unbekanntes os beim Download), 422 (Validierung: z. B. fehlende machine_id).
Was passiert dabei?
Abschnitt betitelt „Was passiert dabei?“- Agent-Authentifizierung: Der Token wird serverseitig nur als Hash gespeichert.
Deshalb ist er nach der Erstellung nie wieder einsehbar. Jeder Bericht authentifiziert
sich per
Authorization: Bearer invagt_…; ein widerrufener Token wird sofort mit401abgelehnt. Der Token ist fest an deinen Mandanten gebunden. - Upsert statt Duplikat: Der Agent sendet eine stabile
machine_id(Windows: MachineGuid, Linux:/etc/machine-id, macOS: IOPlatformUUID). Notory sucht ein Asset mit dieser Kennung (external_id): gefunden → aktualisieren, sonst → neu anlegen (Typ Hardware, Status Aktiv, Name = Hostname). Wiederholte Berichte erzeugen also keine Duplikate. - Lizenz-Prüfung (Gating): Nur neue Geräte zählen gegen das Asset-Limit; ist es
erreicht, lehnt Notory den Bericht mit
403ab. Updates bestehender Assets sind immer möglich. - Gespeicherte Daten: Hersteller, Modell und Seriennummer landen in den Stammfeldern;
OS, OS-Version, IP-Adresse und die Software-Liste (max. 2000 Einträge) in den
Zusatzfeldern des Assets, zusammen mit
agent_last_report(Zeitstempel des letzten Berichts). - „Zuletzt gesehen”: Mit jedem Bericht aktualisiert Notory
last_seen_atdes Tokens. So erkennst du in der Agent-Liste, welche Geräteflotte aktiv meldet.