Est-il possible d'obtenir les dernières fois que l'écran a été déverrouillé sous macOS?

21

Je serais extrêmement reconnaissant si quelqu'un m'aidait à déverrouiller le dernier écran (comme en allant dans le menu Apple> écran de verrouillage). Avec déverrouillage, je veux dire que lorsque vous verrouillez l'écran, vous devez le déverrouiller en entrant le mot de passe. Je suppose que cela est enregistré dans un fichier journal ou il y a une commande Terminal pour l'obtenir.

Je suppose que cela doit être possible car, lorsque vous utilisez le contrôle parental et que vous définissez une limite de temps pour un utilisateur, si l'utilisateur verrouille l'écran, le temps sur l'écran de verrouillage ne semble pas compter contre le temps autorisé, ce qui semble impliquent que les écrans de verrouillage sont enregistrés dans un fichier journal ??

Ce qui suit est dans une capture d'écran d'un extrait de la sortie du terminal après avoir exécuté le code High Sierra répertorié dans la réponse de @ JBis: entrez la description de l'image ici

Antonio23249
la source

Réponses:

12

Si vous allez dans l'application Console sur votre Mac (elle se trouve dans le dossier Applications / Utilities) et cliquez sur "Macs Analytics Data" qui apparaît sur le côté gauche de la fenêtre. Ce rapport a un message "loginwindow" et est horodaté avec le mot "screenlock" sur la même ligne. Je viens de verrouiller et de filtrer puis de le déverrouiller et j'ai reçu ce message. Vous pouvez récupérer tous les termes "loginwindow" et les termes "screenlock". Cela devrait vous donner une liste des moments où ces événements se sont produits.

Ce journal peut être localisé avec le Finder en cliquant dessus avec le bouton droit> révéler dans le Finder (au moins dans macOS High Sierra)

jmh
la source
1
Hou la la! cela semble être celui-là, mais il semble ne montrer que les 3 derniers jours, y a-t-il un moyen de voir plus de temps en arrière?
Antonio23249
Ça je ne sais pas. Désolé.
jmh
Je peux mieux dire que mes messages remontent à 5 jours. Il semble qu'une recherche sur "Lockscreen" soit la meilleure.
jmh
Merci beaucoup, que dois-je faire pour que vous receviez ce truc de prime? ..ne jamais fait avant.
Antonio23249
Au travail, nous devons obtenir la dernière utilisation de l'un des Mac que nous recevons pour réparation, cela peut être très utile. Pouvoir déverrouiller le mac est une bonne donnée que l'utilisateur utilisait réellement la machine.
Antonio23249
18

Il semble que différentes versions de macOS utilisent des journaux différents pour le repenser. Aucun d'entre eux, j'ai trouvé, n'affiche un journal différent pour une "connexion" ou un "déverrouillage" . J'ai répondu à la meilleure chose suivante: comment trouver toutes les connexions / déverrouillages. Les commandes de terminal suivantes vous montreront la date à laquelle une connexion ou un déverrouillage s'est produit.


Avec l'aide de cette réponse, et en passant une heure à parcourir les journaux, j'ai compris ceci:

PS Vous pouvez également utiliser la --lastbalise utile pour vous limiter à une heure spécifique par rapport à maintenant. Par exemple, --last 5mce ne serait que les 5 dernières minutes, --last 5hles 5 dernières heures et les --last 5d5 derniers jours.


macOS Mojave

Vérifiez les tentatives de déverrouillage bloquées (mot de passe invalide ou Touch ID):

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

Explication: La commande examine les journaux et recherche ceux qui proviennent du processus "loginwindow"et contiennent LUIAuthenticationServiceProvider activate]_block_invoke.


Vérifiez les tentatives de déverrouillage valides (mot de passe valide ou Touch ID):

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

Explication: La commande examine les journaux et recherche ceux qui proviennent du processus "loginwindow"et contiennent LUIAuthenticationServiceProvider deactivateWithContext:]_block_invoke.


macOS High Sierra

WIP

Vérifiez les tentatives de déverrouillage bloquées (mot de passe invalide ou Touch ID):

...


Vérifiez les tentatives de déverrouillage valides (mot de passe valide ou Touch ID):

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

macOS Sierra

Vérifiez les tentatives de déverrouillage bloquées (mot de passe invalide ou 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"

Vérifiez les tentatives de déverrouillage valides (mot de passe valide ou Touch ID):

log show --style syslog --predicate 'process == "loginwindow"' --debug --info | grep "SecKeychainLogin result: 0, password was supplied"
JBis
la source
J'ai essayé les deux et ils ne retournent rien. Vous semblez viser dans la bonne direction. Je ne suis pas très alphabétisé avec Terminal, qu'est-ce que ces recherches, le system.log?, Je n'ai trouvé aucun "UIAuthenticationServiceProvider deactivateWithContext:] _ block_invoke" dans le system.log. Merci beaucoup pour vos efforts, j'en ai vraiment besoin.
Antonio23249
@ Antonio23249 Voir la mise à jour.
JBis
Salut, Merci encore ... eh bien, cela ne semble pas fonctionner, j'ai verrouillé puis déverrouillé l'écran à 16:42:50 puis redémarré la machine et 16:06:10, j'ai attendu quelques minutes pour donner le enregistre le temps de rattraper son retard. Selon cela, le dernier déverrouillage a eu lieu le 2018-07-28 17: 13: 28.241846 + 0100 non? Il s'agit d'un Mac Mini 2014 sur macOS High Sierra 10.13.6
Antonio23249
Une connexion peut également déclencher ce journal car une connexion le déverrouille bien. L'événement 16:42:50 s'est-il même montré? Théoriquement, ce devrait être le deuxième.
JBis
J'ai ajouté une capture d'écran du résultat à mon message d'origine ci-dessus (je ne pouvais pas l'ajouter ailleurs). Je l'ai ajouté à nouveau, la première capture d'écran que j'ai ajoutée n'était pas correcte
Antonio23249
1

MacOS Catalina a un format de journal différent de Mojave. Sur la base de la réponse de JBis , j'ai écrit un script pour Catalina appelé lockunlock.sh

#!/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'

Pour arriver au terme de recherche souhaité, j'ai verrouillé et déverrouillé mon ordinateur pour m'assurer qu'il y avait des événements, puis j'ai consulté la dernière minute du journal avec

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

Cela vous donne les secondes écoulées depuis le dernier déverrouillage / verrouillage:

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())'
}
Mine réjouie
la source
-1

Terminal ouvert et type

last

cela devrait fournir des informations de journal

voici la page de manuel de cette commande:

dernier manuel

Alexandre Babeanu
la source
Merci pour votre réponse, êtes-vous sûr que l'on montre des déverrouillages d'écran? il semble ne montrer que les connexions réelles
Antonio23249
Vous avez raison, @ Antonio23249. Un déverrouillage d'écran n'est pas une nouvelle connexion. lastaffiche uniquement les dernières connexions. From man last: Last listera les sessions des utilisateurs, ttys et hôtes spécifiés, dans l'ordre inverse. Chaque ligne de sortie contient le nom d'utilisateur, le terminal à partir duquel la session a été effectuée, tout nom d'hôte, les heures de début et de fin de la session et la durée de la session. Si la session est toujours en cours ou a été interrompue par un crash ou un arrêt, le dernier l'indiquera.
IconDaemon
Merci pour votre réponse de toute façon, j'ai commencé à en bénéficier. Je suppose que cela doit être possible car, lorsque vous utilisez le contrôle parental et que vous définissez une limite de temps pour un utilisateur, si l'utilisateur verrouille l'écran, le temps sur l'écran de verrouillage ne semble pas compter contre le temps autorisé, ce qui semble impliquent que les écrans de verrouillage sont enregistrés dans un fichier journal ??
Antonio23249