Czy jest jakiś sposób, aby ostatni raz ekran został odblokowany w systemie macOS?


21

Byłbym niezmiernie wdzięczny, gdyby ktoś pomógł mi odblokować ostatni ekran (na przykład przechodząc do menu Apple> ekran blokady). Z odblokowaniem mam na myśli, że kiedy blokujesz ekran, musisz go odblokować, wprowadzając hasło. Wydaje mi się, że jest to zarejestrowane w jakimś pliku dziennika lub istnieje polecenie terminalu, aby to uzyskać.

Myślę, że musi to być możliwe, ponieważ kiedy korzystasz z kontroli rodzicielskiej i ustawiasz limit czasowy dla użytkownika, jeśli użytkownik zablokuje ekran, czas na ekranie blokady wydaje się nie wliczać do dozwolonego czasu, który wydaje się sugerować, że ekrany blokady są zarejestrowane w pliku dziennika?

Poniżej znajduje się zrzut ekranu fragmentu wyjścia terminala po uruchomieniu kodu High Sierra wymienionego w odpowiedzi @ JBis: wprowadź opis zdjęcia tutaj

Odpowiedzi:


12

Jeśli przejdziesz do aplikacji konsoli na komputerze Mac (znajduje się ona w folderze Aplikacje / Narzędzia) i klikniesz „Macs Analytics Data”, która pojawi się po lewej stronie okna. Ten raport ma komunikat „loginwindow” i jest opatrzony czasem i ma słowo „screenlock” w tej samej linii. Właśnie zamknąłem ekran, a następnie odblokowałem i dostałem ten komunikat. Możesz wymieniać wszystkie warunki „loginwindow” i warunki „screenlock”. Powinno to dać Ci listę przypadków, w których te zdarzenia miały miejsce.

Ten dziennik można zlokalizować za pomocą Findera, klikając go prawym przyciskiem myszy> pokaż w wyszukiwarce (przynajmniej w systemie macOS High Sierra)


1
Łał! wydaje się, że to jeden, ale wydaje się, że pokazuje tylko ostatnie 3 dni, czy jest sposób, aby zobaczyć więcej czasu?
— Antonio23249

Tego nie wiem. Przepraszam.
— jmh

Najlepsze, co mogę powiedzieć, że moje wiadomości cofną się o 5 dni. Wygląda na to, że wyszukiwanie w „Lockscreen” jest najlepsze.
— jmh

Wielkie dzięki, co powinienem zrobić, aby otrzymać te nagrody? .. nigdy wcześniej tego nie robiłem.
— Antonio23249

W pracy musimy uzyskać ostatnie użycie dowolnego Maca, który otrzymamy do naprawy, może to bardzo pomóc. Możliwość odblokowania Maca to dobra informacja, że ​​użytkownik faktycznie korzystał z urządzenia.
— Antonio23249

18

Wygląda na to, że różne wersje systemu macOS używają różnych dzienników, aby to reprezentować. Żadne z nich, jak znalazłem, nie pokazuje innego dziennika dla „logowania” lub „odblokowania” . Odpowiedziałem na następną najlepszą rzecz: Jak znaleźć wszystkie loginy / odblokowania. Następujące polecenia terminala pokażą datę, kiedy nastąpiło logowanie lub odblokowanie.


Z pomocą tej odpowiedzi i spędzając godzinę przeglądając logi, wymyśliłem to:

PS Możesz dodatkowo użyć pomocnego --lastznacznika, aby ograniczyć czas do określonego czasu. Na przykład --last 5mbyłyby to tylko ostatnie 5 minut, --last 5hostatnie 5 godzin i --last 5dostatnie 5 dni.


macOS Mojave

Sprawdź, czy nie ma zablokowanych prób odblokowania (nieprawidłowe hasło lub identyfikator dotykowy):

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

Objaśnienie: Polecenie przejrzy dzienniki i znajdzie te, które pochodzą z procesu "loginwindow"i zawierają LUIAuthenticationServiceProvider activate]_block_invoke.


Sprawdź prawidłowe próby odblokowania (prawidłowe hasło lub identyfikator Touch ID):

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

Objaśnienie: Polecenie przejrzy dzienniki i znajdzie te, które pochodzą z procesu "loginwindow"i zawierają LUIAuthenticationServiceProvider deactivateWithContext:]_block_invoke.


macOS High Sierra

WIP

Sprawdź, czy nie ma zablokowanych prób odblokowania (nieprawidłowe hasło lub identyfikator dotykowy):

...


Sprawdź prawidłowe próby odblokowania (prawidłowe hasło lub identyfikator Touch ID):

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

macOS Sierra

Sprawdź, czy nie ma zablokowanych prób odblokowania (nieprawidłowe hasło lub identyfikator dotykowy):

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

Sprawdź prawidłowe próby odblokowania (prawidłowe hasło lub identyfikator Touch ID):

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

Próbowałem obu i nic nie zwracają. Wydaje się, że celujesz we właściwym kierunku. Nie znam się zbyt dobrze na terminalu, co szukają, system.log ?, nie mogłem znaleźć żadnego „UIAuthenticationServiceProvider dezaktywowaćWithContext:] _ block_invoke” w system.log. Bardzo dziękuję za twój wysiłek, naprawdę tego potrzebuję.
— Antonio23249

@ Antonio23249 Zobacz aktualizację.
— JBis

Cześć, jeszcze raz dziękuję… cóż, to nie działa, zablokowałem, a następnie odblokowałem ekran o 16:42:50, a następnie ponownie uruchomiłem maszynę i 16:06:10, czekałem kilka minut, aby dać rejestruje czas do nadrobienia. Zgodnie z tym ostatnie odblokowanie miało miejsce w dniu 2018-07-28 17: 13: 28.241846 + 0100, prawda? To jest Mac Mini 2014 na macOS High Sierra 10.13.6
— Antonio23249

Cóż, logowanie może również wyzwalać ten dziennik, ponieważ logowanie go dobrze odblokowuje. Czy wydarzenie 16:42:50 w ogóle pokazało? Teoretycznie powinien to być drugi.
— JBis

Dodałem zrzut ekranu wyniku do mojego oryginalnego postu powyżej (nie mogłem go dodać nigdzie indziej). Dodałem go ponownie, pierwszy zrzut ekranu, który dodałem, był nieprawidłowy
— Antonio23249

2

MacOS Catalina ma inny format dziennika niż Mojave. W oparciu o odpowiedzi od JBis , napisałem skrypt o nazwie Catalina 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'

Aby dotrzeć do poszukiwanego terminu, zablokowałem i odblokowałem komputer, aby upewnić się, że wystąpiły zdarzenia, a następnie przeglądałem ostatnią minutę dziennika

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

0

Daje to sekundy od ostatniego odblokowania / blokady:

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())'
}

-1

Otwórz terminal i wpisz

last

powinno to dostarczyć informacji dziennika

oto strona instrukcji tego polecenia:

ostatnia instrukcja


Dzięki za odpowiedź, czy jesteś pewien, że jeden pokazuje odblokowanie ekranu? wydaje się, że pokazuje tylko rzeczywiste logowanie
— Antonio23249,

Masz rację, @ ​​Antonio23249. Odblokowanie ekranu nie jest nowym loginem. lastpokazuje tylko ostatnie logowanie. Od man last: Ostatni wyświetli listę sesji określonych użytkowników, tty i hostów, w odwrotnej kolejności. Każdy wiersz wyniku zawiera nazwę użytkownika, tty, z którego przeprowadzono sesję, dowolną nazwę hosta, czasy rozpoczęcia i zakończenia sesji oraz czas trwania sesji. Jeśli sesja nadal trwa lub została przerwana przez awarię lub zamknięcie, ostatnia będzie to oznaczać.
— IconDaemon

W każdym razie dziękuję za odpowiedź. Zacząłem za to nagrodę. Myślę, że musi to być możliwe, ponieważ kiedy korzystasz z kontroli rodzicielskiej i ustawiasz limit czasowy dla użytkownika, jeśli użytkownik zablokuje ekran, czas na ekranie blokady wydaje się nie wliczać do dozwolonego czasu, który wydaje się sugerować, że ekrany blokady są zarejestrowane w pliku dziennika?
— Antonio23249
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.