Wie kann man feststellen, wann der Bildschirm das letzte Mal in macOS entsperrt wurde?

21

Ich wäre sehr dankbar, wenn mir jemand helfen würde, den letzten Bildschirm freizuschalten (z. B. indem ich zum Apple-Menü> Bildschirm sperren gehe). Mit entsperren meine ich, wenn Sie den Bildschirm sperren, müssen Sie ihn durch Eingabe des Passworts entsperren. Ich denke, dies ist in einer Protokolldatei registriert oder es gibt einen Terminal-Befehl, um dies zu erhalten.

Ich denke, dies muss möglich sein, denn wenn Sie die Kindersicherung verwenden und ein Zeitlimit für einen Benutzer festlegen und der Benutzer den Bildschirm sperrt, scheint die Zeit auf dem Sperrbildschirm nicht mit der zulässigen Zeit zu zählen, die zu sein scheint implizieren, dass Sperrbildschirme in einer Protokolldatei registriert sind?

Das Folgende ist in einem Screenshot eines Auszugs aus der Terminalausgabe, nachdem der in @ JBis 'Antwort aufgeführte High Sierra-Code ausgeführt wurde: Geben Sie hier die Bildbeschreibung ein

Antonio23249
quelle

Antworten:

12

Wenn Sie auf Ihrem Mac zur Konsolen-App wechseln (diese befindet sich im Ordner "Programme / Dienstprogramme") und auf "Macs Analytics-Daten" klicken, die auf der linken Seite des Fensters angezeigt wird. Dieser Bericht hat die Meldung "Loginwindow" und ist mit einer Zeit versehen. In derselben Zeile befindet sich das Wort "Screenlock". Ich habe nur gesperrt und Bildschirm und dann entsperrt und ich habe diese Nachricht erhalten. Sie können alle Begriffe "Loginwindow" und "Screenlock" auswählen. Dies sollte Ihnen eine Liste der Zeiten geben, zu denen diese Ereignisse aufgetreten sind.

Dieses Protokoll kann mit Finder gefunden werden, indem Sie mit der rechten Maustaste darauf klicken> im Finder anzeigen (zumindest in macOS High Sierra).

jmh
quelle
1
Beeindruckend! das scheint der eine zu sein, aber es scheint nur die letzten 3 Tage zu zeigen, gibt es eine Möglichkeit, mehr Zeit zurück zu sehen?
Antonio23249
Das weiß ich nicht. Es tut uns leid.
jmh
Am besten kann ich sagen, dass meine Nachrichten 5 Tage zurückliegen. Es sieht so aus, als wäre eine Suche auf "Lockscreen" am besten.
jmh
Vielen Dank, was soll ich tun, damit du dieses Kopfgeld bekommst? ..nie zuvor getan.
Antonio23249
Bei der Arbeit müssen wir die letzte Verwendung für einen der Macs erhalten, die wir zur Reparatur erhalten. Dies kann sehr hilfreich sein. Das Entsperren des Mac ist ein gutes Datenelement, das der Benutzer tatsächlich auf dem Computer verwendet hat.
Antonio23249
18

Es scheint, dass verschiedene Versionen von macOS unterschiedliche Protokolle verwenden, um dies zu wiederholen. Ich habe festgestellt, dass keines davon ein anderes Protokoll für ein "Login" oder ein "Unlock" anzeigt . Ich habe das nächstbeste beantwortet: So finden Sie alle Logins / Unlocks. Die folgenden Terminalbefehle zeigen Ihnen das Datum an, zu dem eine Anmeldung oder Entsperrung stattgefunden hat.


Mit Hilfe dieser Antwort und einer Stunde Durchsuchen der Protokolle habe ich Folgendes herausgefunden:

PS Sie können das hilfreiche --lastTag zusätzlich verwenden , um eine bestimmte Zeit relativ zu jetzt zu begrenzen. Zum Beispiel --last 5mwären nur die letzten 5 Minuten, --last 5hwären die letzten 5 Stunden und --last 5dwären die letzten 5 Tage.


macOS Mojave

Suchen Sie nach blockierten Entsperrversuchen (ungültiges Passwort oder Touch ID):

log show --style syslog --predicate 'process == "loginwindow"' --debug --info | grep "LUIAuthenticationServiceProvider activate]_block_invoke"

Erläuterung: Der Befehl durchsucht die Protokolle und findet diejenigen, die aus dem Prozess stammen "loginwindow"und enthalten LUIAuthenticationServiceProvider activate]_block_invoke.


Auf gültige Entsperrversuche prüfen (gültiges Passwort oder Touch ID):

 log show --style syslog --predicate 'process == "loginwindow"' --debug --info | grep "LUIAuthenticationServiceProvider deactivateWithContext:]_block_invoke"

Erläuterung: Der Befehl durchsucht die Protokolle und findet diejenigen, die aus dem Prozess stammen "loginwindow"und enthalten LUIAuthenticationServiceProvider deactivateWithContext:]_block_invoke.


macOS High Sierra

WIP

Suchen Sie nach blockierten Entsperrversuchen (ungültiges Passwort oder Touch ID):

...


Auf gültige Entsperrversuche prüfen (gültiges Passwort oder Touch ID):

log show --style syslog --predicate 'process == "loginwindow"' --debug --info | grep "LAClient evaluatePolicy:options:uiDelegate:reply:]_block_invoke"

macOS Sierra

Suchen Sie nach blockierten Entsperrversuchen (ungültiges Passwort oder Touch ID):

log show --style syslog --predicate 'process == "loginwindow"' --debug --info | grep "Verify password called with PAM auth set to YES, but pam handle == nil"

Auf gültige Entsperrversuche prüfen (gültiges Passwort oder Touch ID):

log show --style syslog --predicate 'process == "loginwindow"' --debug --info | grep "SecKeychainLogin result: 0, password was supplied"
JBis
quelle
Ich habe beide ausprobiert und sie geben nichts zurück. Sie scheinen in die richtige Richtung zu zielen. Ich bin nicht sehr gut mit Terminal vertraut, was suchen diese, das system.log?, Ich konnte kein "UIAuthenticationServiceProvider deactivateWithContext:] _ block_invoke" im system.log finden. Vielen Dank für Ihre Mühe, ich brauche das wirklich.
Antonio23249
@ Antonio23249 Siehe Update.
JBis
Hallo, nochmals vielen Dank ... nun, das scheint nicht zu funktionieren. Ich habe den Bildschirm um 16:42:50 Uhr gesperrt und dann entsperrt. Dann habe ich die Maschine neu gestartet und um 16:06:10 Uhr habe ich ein paar Minuten gewartet, um das zu geben protokolliert die Zeit zum Aufholen. Demnach war die letzte Freischaltung am 28.07.2018 um 17: 13: 28.241846 + 0100 richtig? Dies ist ein Mac Mini 2014 auf macOS High Sierra 10.13.6
Antonio23249
Nun, ein Login löst möglicherweise auch dieses Log aus, weil ein Login es gut entsperrt. Hat sich das 16:42:50 Event überhaupt gezeigt? Theoretisch sollte es der zweite sein.
JBis
Ich habe meinem ursprünglichen Beitrag oben einen Screenshot des Ergebnisses hinzugefügt (ich konnte ihn nirgendwo anders hinzufügen). Ich habe es wieder hinzugefügt, der erste Screenshot, den ich hinzugefügt habe, war nicht richtig
Antonio23249
1

MacOS Catalina hat ein anderes Protokollformat als Mojave. Basierend auf der Antwort von JBis habe ich ein Skript für Catalina namens lockunlock.sh geschrieben

#!/bin/sh
PERIOD=1d
if [[ $# -ge 1 ]]; then
    PERIOD=$1
fi
echo "Times of Mac screen lock and unlock events in the past ${PERIOD}:"
SEARCH_FOR="going inactive, create activity semaphore|releasing the activity semaphore"
log show --style syslog --predicate 'process == "loginwindow"' --debug --info --last ${PERIOD} | grep -E "${SEARCH_FOR}" | cut -c '1-32 141-155'

Um zum gewünschten Suchbegriff zu gelangen, habe ich meinen Computer gesperrt und entsperrt, um sicherzustellen, dass Ereignisse aufgetreten sind, und dann die letzte Minute des Protokolls mit angezeigt

log show --style syslog --predicate 'process == "loginwindow"' --debug --info --last 1m | less
Les Grieve
quelle
0

Dies gibt Ihnen die Sekunden seit dem letzten Entsperren / Sperren:

function  getlastunlock-darwin() {
    date="$(log show --style syslog --predicate 'process == "loginwindow"' --debug --info --last 1d | command rg "going inactive, create activity semaphore|releasing the activity semaphore" | tail -n1 |cut -c 1-31)" fromnow
}
function fromnow() {
    python3 -c 'import datetime ; from dateutil.parser import parse ; import os
date = parse(os.environ["date"])
print((datetime.datetime.now(date.tzinfo) - date).total_seconds())'
}
Glückliches Gesicht
quelle
-1

Terminal öffnen und eingeben

last

Dies sollte Protokollinformationen liefern

Hier ist die Handbuchseite dieses Befehls:

letztes Handbuch

Alexandre Babeanu
quelle
Vielen Dank für Ihre Antwort. Sind Sie sicher, dass der Bildschirm entsperrt ist? es scheint nur tatsächliche Anmeldungen zu zeigen
Antonio23249
Sie sind richtig, @ Antonio23249. Eine Bildschirmsperrung ist keine neue Anmeldung. lastzeigt nur die letzten Anmeldungen an. Von man last: Last listet die Sitzungen der angegebenen Benutzer, ttys und Hosts in umgekehrter Zeitreihenfolge auf. Jede Ausgabezeile enthält den Benutzernamen, das tty, von dem aus die Sitzung durchgeführt wurde, einen beliebigen Hostnamen, die Start- und Stoppzeiten für die Sitzung und die Dauer der Sitzung. Wenn die Sitzung noch andauert oder durch einen Absturz oder Herunterfahren unterbrochen wurde, wird dies zuletzt angezeigt.
IconDaemon
Trotzdem danke für deine Antwort, ich habe ein Kopfgeld dafür angefangen. Ich denke, dies muss möglich sein, denn wenn Sie die Kindersicherung verwenden und ein Zeitlimit für einen Benutzer festlegen und der Benutzer den Bildschirm sperrt, scheint die Zeit auf dem Sperrbildschirm nicht mit der zulässigen Zeit zu zählen, die zu sein scheint implizieren, dass Sperrbildschirme in einer Protokolldatei registriert sind?
Antonio23249