Sophos Endpoint unter Windows per CLI scannen
Für einen einzelnen Verdachtsfall genügt oft der Scan aus der lokalen Oberfläche. In einem RMM-Runbook, bei einer Incident Response oder für einen definierten Pfad ist die Windows-CLI genauer. Sie wird mit Sophos Endpoint installiert und meldet Detections zusätzlich an Sophos Central.
Planung, Scheduled Scans, Laufzeitanalyse und File-Scanner-Health behandelt der übergeordnete Artikel Sophos Endpoint Scans planen und troubleshooten.
Pfad und Hilfe
Das Werkzeug liegt standardmässig unter:
C:\Program Files\Sophos\Endpoint Defense\sophosinterceptxcli.exe
Öffnen Sie PowerShell unter dem Konto, dessen Zugriff für einen gezielten Scan gelten soll. Der Aufrufoperator & startet den in Anführungszeichen gesetzten Programmpfad; help scan zeigt die Scanoptionen der installierten Version:
& "C:\Program Files\Sophos\Endpoint Defense\sophosinterceptxcli.exe" help scan
Die Hilfe der lokal installierten Version ist massgebend. Das Werkzeug gehört zum Windows-Agenten; für macOS gilt dieser Pfad nicht.
Ausführungsmodell vor dem Start
- Shell: Alle Beispiele unten sind PowerShell-Befehle. In
cmd.exeentfällt der Aufrufoperator&; mischen Sie die beiden Schreibweisen nicht. - Rechte: Ein User-Scan auf Datei, Ordner oder Laufwerk erbt die Rechte des aufrufenden Kontos. Ein Systemscan mit
--systemläuft dagegen mit den Rechten des lokalen Systemprozesses. Eine administrative Shell ist nicht pauschal Voraussetzung und erweitert einen User-Scan nicht über die tatsächlich verfügbaren Zugriffsrechte hinaus. - Platzhalter: Die Beispielpfade
C:\Users\Public\Downloads,C:\IR\EvidenceundD:\sind durch den freigegebenen Zielpfad zu ersetzen. Es werden keine spitzen Klammern als Literal eingegeben. - Wirkung:
scanstartet unmittelbar einen Scan. Ohne--nouierscheint der Fortschrittsdialog; Ergebnisse stehen in Sophos Endpoint, erkannte Bedrohungen werden an Sophos Central gemeldet. - Ausgabe: Mit
--nouierscheint keine Oberfläche, Detections werden nachstdoutgeschrieben und der Prozess endet erst nach Abschluss.--jsonersetzt bei nicht fatalem Verlauf die normalestdout-Ausgabe durch ein JSON-Objekt.
Systemscan ausführen
Ein vollständiger Systemscan läuft mit den Rechten des lokalen Systemprozesses:
& "C:\Program Files\Sophos\Endpoint Defense\sophosinterceptxcli.exe" scan --system --full --noui
Ein schneller Systemscan konzentriert sich auf häufig verwendete Dateien, laufende und kürzlich ausgeführte Prozesse, Autostarts, MBR und Arbeitsspeicher:
& "C:\Program Files\Sophos\Endpoint Defense\sophosinterceptxcli.exe" scan --system --quick --noui
Bei --system werden keine zusätzlichen Targets angegeben. Dateien, auf die der lokale Systemprozess keinen Zugriff hat, etwa benutzergebundene EFS-Inhalte, können dadurch ungescannt bleiben.
Datei, Ordner oder Laufwerk scannen
Ein gezielter Scan läuft mit den Rechten des aufrufenden Benutzers:
& "C:\Program Files\Sophos\Endpoint Defense\sophosinterceptxcli.exe" scan --noui "C:\Users\Public\Downloads"
Ein komplettes Laufwerk benötigt den abschliessenden Backslash:
& "C:\Program Files\Sophos\Endpoint Defense\sophosinterceptxcli.exe" scan --noui "D:\"
D: ohne Backslash bezeichnet normalerweise nur das aktuelle Verzeichnis dieses Laufwerks. UNC-Pfade werden unterstützt, sofern das aufrufende Konto Zugriff besitzt.
Wildcards sind in Ordner- und Dateinamen möglich, nicht aber in Laufwerksnamen. Eine Expansion im letzten Pfadelement ist verlässlicher als ein Wildcard-Ausdruck in einem übergeordneten Ordner.
Archive und ausführliche Ausgabe
Mit --expand_archives werden unterstützte Archive geöffnet und deren Inhalte geprüft. Das erhöht Laufzeit und I/O und wird deshalb gezielt eingesetzt.
--noui unterdrückt die Oberfläche und wartet bis zum Ende des Scans. Erst zusammen damit ist --verbose gültig:
& "C:\Program Files\Sophos\Endpoint Defense\sophosinterceptxcli.exe" scan --noui --verbose --expand_archives "C:\IR\Evidence"
Eine sehr grosse Verbose-Ausgabe wird nicht unkontrolliert in RMM-Logs geschrieben. Pfade können Benutzernamen und sensible Projektinformationen enthalten.
Exitcodes korrekt behandeln
| Code | Bedeutung |
|---|---|
0 | Scan erfolgreich, keine Malware gefunden |
1 | Fehler bei der Befehlsverarbeitung |
2 | unerwarteter Fehler beim Start des Werkzeugs |
3 | mindestens eine Bedrohung erkannt |
4 | mindestens eine Datei mit Scanfehler |
5 | mindestens eine verschlüsselte Datei |
6 | mindestens ein nicht unterstütztes Format |
7 | mindestens eine Datei nicht zugreifbar |
Wenn mehrere Zustände auftreten, liefert das Werkzeug den schwerwiegendsten Code. Ein Wert ungleich null bedeutet deshalb nicht automatisch Malware. Umgekehrt ist Code 0 kein Beweis, dass jede denkbare Datei erreichbar und jede Cloud-Abfrage möglich war.
JSON für Automatisierung
--json schreibt am Ende ein strukturiertes Ergebnis nach stdout. Ausser bei fatalen Fehlern mit Code 1 oder 2 kann ein Skript die Zusammenfassung und bei einem User Scan die betroffenen Dateien direkt auswerten:
$cli = "C:\Program Files\Sophos\Endpoint Defense\sophosinterceptxcli.exe"
$json = & $cli scan --noui --json "C:\Users\Public\Downloads"
$exitCode = $LASTEXITCODE
if ($json) {
$result = $json | ConvertFrom-Json
$result.summary
}
exit $exitCode
Bei einem User Scan enthält die Ausgabe unter anderem Targets, Detections, Scanfehler, nicht unterstützte, unzugängliche, verschlüsselte und beschädigte Dateien. Das JSON-Objekt eines System Scans enthält nur type und summary; Dateilisten sind nicht enthalten.
Live Protection und Ausnahmen
Scans verwenden Live Protection für aktuelle SophosLabs-Informationen. Ohne Netzwerk oder bei deaktivierter Live Protection ist die Bewertung weniger vollständig.
Ein gezielter User Scan respektiert globale und Policy-Ausnahmen. Eine ausgenommene Datei wird durch den manuellen CLI-Aufruf nicht plötzlich vollumfänglich geprüft. Vor einer Incident-Untersuchung wird deshalb kontrolliert, welche Ausnahmen tatsächlich greifen.
Validierung und Eskalation
Ein produktives Runbook sollte:
- Vor dem Start prüfen, dass die CLI am dokumentierten Pfad vorhanden ist, und mit
help scandie lokal verfügbaren Optionen bestätigen. - Scope und maximale Laufzeit begrenzen.
stdout,stderrund Exitcode getrennt sichern.- Code
3als Detection behandeln, andere Codes differenziert auswerten. - Ergebnis mit Central Events und Health korrelieren.
- Keine automatische Ausnahme oder Löschung allein aufgrund des Exitcodes erstellen.
Der Scan ist validiert, wenn der Prozess beendet ist, der Exitcode separat vorliegt und die erwartete Ausgabe erfasst wurde. Code 3 wird mit Sophos-Central-Ereignissen abgeglichen und nach dem Threat-Cleanup-Runbook eskaliert. Bei Codes 4 bis 7 werden die in einem User Scan genannten Dateien geprüft. Ein System Scan liefert keine Dateiliste; deshalb werden dessen JSON- und Konsolenausgabe gesichert und eskaliert. Codes 1 oder 2 sowie wiederholte Agentfehler werden mit Endpoint Self Help und SDU untersucht. Das sind keine gleichbedeutenden Malware-Befunde.
Häufige Fragen
Warum findet ein Systemscan keine EFS-verschlüsselte Benutzerdatei?
Ist Exitcode 7 eine Malware-Erkennung?
Offizielle Quellen
- Sophos Endpoint: Scan from the command line – Installationspfad, Befehle, Optionen, Targets, Rechte, Wirkung, Konsolenausgabe, Exitcodes und JSON-Schema.