36 votos

¿Hay alguna forma de obtener las últimas veces que se desbloqueó la pantalla en MacOS?

Estaría inmensamente agradecido si alguien me ayudara a conseguir los últimos desbloqueos de pantalla (como por ejemplo yendo al menú Apple > pantalla de bloqueo). Con desbloquear me refiero a que cuando se bloquea la pantalla luego hay que desbloquearla introduciendo la contraseña. Supongo que esto queda registrado en algún archivo de registro o hay algún comando de Terminal para conseguirlo.

Supongo que esto debe ser posible porque, cuando se utiliza el control parental y se establece un límite de tiempo para un usuario, si el usuario bloquea la pantalla, el tiempo en la pantalla de bloqueo no parece contar contra el tiempo permitido, lo que parece implicar que las pantallas de bloqueo se registran en algún archivo de registro?

Lo siguiente es una captura de pantalla de un extracto de la salida del terminal después de ejecutar el código de High Sierra que aparece en la respuesta de @JBis: enter image description here

28voto

Pirooz Puntos 486

Parece que las diferentes versiones de MacOS utilizan diferentes registros para representar esto. Ninguno de los cuales, he encontrado, mostrar un registro diferente para un "login" o un "unlock" . He respondido a lo siguiente: cómo encontrar todos los inicios de sesión/desbloqueos. Los siguientes comandos de terminal le mostrarán la fecha en el tiempo en que se produjo un inicio de sesión o desbloqueo.


Con la ayuda de este respuesta, y pasando una hora buscando en los registros me di cuenta de esto:

P.D. También puede utilizar el útil --last para limitar a un tiempo específico relativo al ahora. Por ejemplo --last 5m sólo serían los últimos 5 minutos, --last 5h serían las últimas 5 horas, y --last 5d serían los últimos 5 días.


MacOS Mojave

Comprueba si hay intentos de desbloqueo bloqueados (contraseña inválida o Touch ID):

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

Explicación: El comando buscará en los registros y encontrará los que son del proceso "loginwindow" y contienen LUIAuthenticationServiceProvider activate]_block_invoke .


Compruebe si los intentos de desbloqueo son válidos (contraseña válida o Touch ID):

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

Explicación: El comando buscará en los registros y encontrará los que son del proceso "loginwindow" y contienen LUIAuthenticationServiceProvider deactivateWithContext:]_block_invoke .


MacOS High Sierra

WIP

Comprueba si hay intentos de desbloqueo bloqueados (contraseña inválida o Touch ID):

...


Compruebe si los intentos de desbloqueo son válidos (contraseña válida o Touch ID):

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

MacOS Sierra

Comprueba si hay intentos de desbloqueo bloqueados (contraseña inválida o 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"

Compruebe si los intentos de desbloqueo son válidos (contraseña válida o Touch ID):

log show --style syslog --predicate 'process == "loginwindow"' --debug --info | grep "SecKeychainLogin result: 0, password was supplied"

0 votos

He probado los dos y no devuelven nada. Parece que apuntas en la dirección correcta. No soy muy ducho con el Terminal, ¿qué buscan esos, el system.log?, no he encontrado ningún "UIAuthenticationServiceProvider deactivateWithContext:]_block_invoke" en el system.log. Muchas gracias por tu esfuerzo, realmente necesito esto.

0 votos

@Antonio23249 Ver actualización.

0 votos

Hola, gracias de nuevo bueno, parece que esto no funciona, bloqueé y luego desbloqueé la pantalla a las 16:42:50, reinicié la máquina y a las 16:06:10, esperé un par de minutos para dar tiempo a que los registros se pusieran al día. Según esto el último desbloqueo fue el 2018-07-28 17:13:28.241846+0100 ¿verdad? Se trata de un Mac Mini 2014 en macOS High Sierra 10.13.6

20voto

john Puntos 11

Si va a la aplicación Console en su Mac (se encuentra en la carpeta Aplicaciones/ Utilidades) y hace clic en "Datos de análisis de Macs" que aparece en la parte izquierda de la ventana. Este informe tiene un mensaje "loginwindow" y está estampado con una hora y tiene la palabra "screenlock" en la misma línea. Acabo de bloquear y desbloquear la pantalla y me aparece ese mensaje. Podrías hacer un grep de todos los términos "loginwindow" y los términos "screenlock". Esto debería darte una lista de las veces que ocurrieron estos eventos.

Este registro se puede localizar con el Finder haciendo clic con el botón derecho sobre él > revelar en el finder (al menos en MacOS High Sierra)

1 votos

Wow! ese parece ser el indicado, pero parece mostrar solo los últimos 3 días, ¿hay alguna forma de ver más tiempo atrás?

0 votos

Eso no lo sé. Lo siento.

0 votos

Lo mejor que puedo decir es que mis mensajes se remontan a hace 5 días. Parece que una búsqueda en "Lockscreen" es mejor.

3voto

hatboysam Puntos 1191

MacOS Catalina tiene un formato de registro diferente al de Mojave. Se basa en el responder de JBis , escribí un script para Catalina llamado 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'

Para llegar al término de búsqueda deseado, bloqueé y desbloqueé mi ordenador para asegurarme de que había eventos, y luego vi el último minuto de registro con

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

1 votos

He desarrollado un script más sofisticado y lo he publicado en github.com/lesgrieve/lockunlock . Esto funciona con Catalina y Big Sur.

2voto

alanng Puntos 21

En Catalina la solución a la que finalmente llegué es:

  1. Terminal abierta
    • Si no está conectado como administrador, utilice su username para autenticar primero como "nombre de usuario" de administrador. Yo uso esto porque estoy comprobando el historial de inicio de sesión de mi hijo en su Mac sin tener que cerrar la sesión y perturbar sus cosas.
  2. log show --last 1d | grep "UserActivity Assertion"
    • Si desea ver más o menos historia hacia atrás en el tiempo, cambie el "1d" a "2h" o "10m" (consulte la documentación ejecutando man log ).
    • Si se omite el --last modificador, tardará mucho tiempo en ejecutarse, quizá más de 10 minutos.

Esto parece mostrar de forma fiable cada vez que la máquina fue despertada del sueño por el usuario desbloqueando la pantalla de bloqueo con su contraseña.

0voto

Alex Ivasyuv Puntos 1750

Puedes buscar en system.log por loginwindow. Esto mostrará un montón de registros. Mucho más fácil sería utilizar el último comando en la terminal que enumera los inicios de sesión en su sistema.

last -10 YOURUSERNAME

10 limitará la salida a 10 entradas

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X