Jak odblokować komputer Mac, który został zablokowany za pomocą blokady „kurtyny” Apple Remote Desktop

28

Apple Remote Desktop ma funkcję „kurtyny”, za pomocą której klient zdalny może zablokować ekran komputera Mac, który jest zdalnie sterowany. Używam tego, gdy łączę się z moim komputerem Mac z mojego domowego komputera Mac. Mój komputer Mac wyświetla dużą ikonę kłódki i komunikat, a ja zdalnie kontroluję go z mojego domowego komputera Mac za pomocą Apple Remote Desktop (ARD).

Niestety istnieje błąd, który powoduje, że ekran zdalnego komputera Mac pozostaje zablokowany, nawet po jego odłączeniu. (Najnowsze ARD i OS X 10.8.2 na obu komputerach). Kiedy tak się dzieje, przychodzę do pracy następnego dnia, aby znaleźć dużą ikonę blokady i komunikat na ekranie mojego Maca. Mimo że jestem fizycznie obecny przed komputerem Mac, nie mogę znaleźć sposobu na odblokowanie ekranu.

Zwykle próbuję sshna komputerze Mac z innej maszyny i zabijam procesy. Próbowałem zabić ARDAgentproces, proces blokady ekranu (nie pamiętam nazwy) i cokolwiek innego, co mogę znaleźć z „ard” lub „remote” w nazwie procesu. Wydaje się, że żadna z tych rzeczy nie odblokowuje ekranu. W końcu uciekam się do tego, osascript -e ...by powiedzieć wszystkim moim działającym aplikacjom, aby z wdziękiem zakończyły pracę, a następnie uruchomiłem, shutdown -r nowaby ponownie uruchomić komputer.

Moje pytanie: czy istnieje sposób na skuteczne odblokowanie komputera Mac, który utknął na ekranie blokady ARD, przy użyciu sshlub w inny sposób?


Jeden ze sposobów na odtworzenie tego: Zaloguj się na docelowym komputerze Mac za pomocą Pulpitu zdalnego, zainicjuj tryb kurtyny, a następnie po zakończeniu wszelkich prac, które należy wykonać, wyloguj użytkownika na docelowym komputerze Mac, pozostając w trybie kurtyny. Spowoduje to, że komputer Mac stanie się niedostępny dla aplikacji Pulpit zdalny, a nawet fizyczny użytkownik komputera, a duża ikona kłódki pozostanie na ekranie docelowego komputera Mac.

Nie jestem pewien, co robię, aby wywołać tę sytuację, ale zdecydowanie nie wylogowuję się. Tak czy inaczej, wydaje się, że rozwiązanie powinno być takie samo.

John Siracusa
źródło
1
Bez bezpośredniej odpowiedzi na pytanie: Czy istnieje konkretny powód, dla którego używasz ARD zamiast Screen Sharing?
nohillside
1
Korzystam z ARD, ponieważ funkcja udostępniania ekranu nie ma tej funkcji „kurtyny” i nie chcę, aby ludzie w pracy mogli widzieć i uzyskiwać dostęp do mojego komputera Mac, gdy mnie tam nie ma.
John Siracusa,
Sugerowałbym użycie normalnego udostępniania ekranu i ekranu wirtualnego zamiast sprzętowego, ale jak na moje własne wybitne pytanie, wydaje się, że zniknęło poniżej 10,8 jako opcja, gdy używam 10,8 jako klienta ...
stuffe

Odpowiedzi:

11

Nie mam komputera Mac z ARD, aby to przetestować, ale to narzędzie słoneczne sugeruje, że może rozwiązać problem. Po szybkim spojrzeniu na kod źródłowy, po prostu wysyła komunikat CFNotificationCenter, aby wyjść z trybu kurtyny.

Nie jestem pewien, czy istnieje sposób na przyłączenie się do procesu wylogowania ARD, aby uruchomić go za każdym razem, gdy rozłączasz sesję, ale przynajmniej możesz go uruchomić za pośrednictwem SSH, jeśli to konieczne.

robmathers
źródło
1
To wygląda obiecująco! Spróbuję następnym razem, gdy będę mógł odtworzyć błąd.
John Siracusa,
1
Mimo wielu prób nadal nie udało mi się odtworzyć mojego błędu. Ponieważ nagroda wygasa jutro, przyjmuję tę odpowiedź w oparciu o założenie, że zadziała.
John Siracusa,
Ja również nie byłem w stanie go odtworzyć, ale znalazłem trochę dokumentacji na temat używania AppleScript do odblokowywania ekranów i opublikuję to jako osobną odpowiedź, nawet jeśli ta wydaje się być najlepszym miejscem na nagrodę za szczegóły na poziomie kodu na wewnętrzne funkcjonowanie CFNotificationCenter.
bmike
1
To działało idealnie. Jeśli w każdym razie niektóre osoby nadal napotykają ten problem (jak ja), możesz znaleźć kod na github.com/mattlavine/sunshine-ard .
frbl
2
Próbowałem tego na moim komputerze Mac z systemem Mojave i to nie działało, Fyi.
Brad Park
6

Najszybszym rozwiązaniem, jakie znalazłem, jest nawiązanie połączenia SSH z kontem administratora na zablokowanym komputerze zdalnym.

ssh "adminuser"@ip.address/or.computername

Rodzaj: ps -ax | grep AppleVNCServer

Chcesz linii, która czyta coś takiego

/System/Library/CoreServices/RemoteManagement/AppleVNCServer.bundle/Contents/Support/LockScreen.app/Contents/MacOS/LockScreen -session 256 -msgHex 

Zanotuj PID po lewej stronie tego.

następnie wprowadź:

sudo kill -9 "PID" 

Wymusi to ponowne uruchomienie ekranu blokady i ponowne udostępnienie.

Wiem, że to tak, jak wyjaśniono powyżej. Odbywa się to również na dwóch komputerach 10.8.2 z ARD 3.6.1.

tron_jones
źródło
To zadziałało dla mnie na El Cap dziś po południu (i uratowało dzień). Dzięki!
Mark
1
Próbowałem tego na Mojave, bez powodzenia.
Noah
3

Co do tego jest warte, jest to znany błąd w ARD i najwyraźniej istnieje już od jakiegoś czasu. Ten Apple KB ma artykuł na ten temat, ale nie ma sugestii, jak to naprawić. http://support.apple.com/kb/TS2401

Kluczowa część dokumentu:

Jeśli użyjesz Pulpitu zdalnego do przejęcia kontroli nad klientem w trybie kurtyny, a następnie zaloguj się lub wyloguj na kliencie zdalnym, sesja kontrolna zakończy się i nie będziesz mógł ponownie przejąć kontroli nad komputerem, dopóki nie zostanie ponownie uruchomiony. Dzieje się tak na kliencie z systemem Mac OS X 10.5 lub nowszym, a także występuje, jeśli zablokujesz ekran klienta przed przejęciem kontroli.

Rozkład

Przed wylogowaniem zamknij wszystkie okna zawierające poufne informacje, zakończ sesję kontrolną (i, jeśli to konieczne, odblokuj ekran). Nie wylogowuj się na zdalnym kliencie, kontrolując go w trybie kurtyny.

scottm32768
źródło
2

OK, nie mogę komentować używania ARD, nie mam go, ale może to być odpowiednie obejście, przynajmniej w międzyczasie.

Korzystając z normalnego udostępniania ekranu, możesz użyć wyświetlacza sprzętowego lub wirtualnego. Było to łatwe w użyciu w wersji 10.7, ale zostało zaciemnione raczej w wersji 10.8, a polecenie menu do przełączania wyświetlaczy zniknęło.

Aby skorzystać z wirtualnego wyświetlacza, oto, co musisz zrobić. Po pierwsze, poproś innego użytkownika niż normalny, który ma odpowiednie opcje udostępniania ekranu, a następnie zaloguj się:

  • Jeśli nikt nie jest zalogowany na komputerze docelowym, zawsze pojawi się ekran sprzętu pokazujący normalny ekran logowania
  • Jeśli użytkownik, którego próbujesz zalogować, jest już zalogowany, to zawsze przełączy się na tego użytkownika i użyje wyświetlacza sprzętowego
  • Jeśli zalogujesz się z innym użytkownikiem, który nie jest jeszcze zalogowany na ekranie sprzętowym, otrzymasz następujący komunikat i możliwość korzystania z wirtualnego wyświetlacza, co powoduje, że możesz robić, co chcesz, bez zmiany głównego ekranu i bez możliwości każdy może to obejrzeć

wprowadź opis zdjęcia tutaj

Nie jest to idealne, musisz upewnić się, że Twój drugi użytkownik ma odpowiednie prawa dostępu do plików i taki, że może być konieczne uzyskanie dostępu, lub może być konieczne zastosowanie niezręcznej praktyki opuszczania drugiego użytkownika (lub „fikcyjnego”) zalogowany, gdy wychodzisz z biurka, co pozwala ci używać swojego głównego identyfikatora do udostępniania ekranu, ale może to pomóc.

farsz
źródło
2

Apple podaje przykład pisania skryptów na ekranie blokady w rozdziale 9 Przewodnika administratora ARD .

Być może ten skrypt na stronie 174 mógłby zostać skrócony, aby wysłać sekwencję odblokowującą:

-- Start commanding the local copy of Remote Desktop
tell application "Remote Desktop"
  -- decide which list to perform this on, in this case it's called
     "WorkMac"
  set these_computers to computer list "WorkMac"
  -- unlock the screen when finished
  execute (make new unlock screen task) on these_computers
end tell 
bmike
źródło
2

Nie mogę odtworzyć dokładnej konfiguracji, ponieważ obecnie nie mam drugiego komputera z systemem 10.8.2 i 3.6.1, ale oto, co próbowałem:

Z mojego administracyjnego Maca 10.8.2 / 3.6.1 zablokowałem ekran na moim kliencie 10.6.8, wylogowałem się z klienta i odtworzyłem usterkę blokującą ekran. Zostałem odłączony od sesji ARD, a klient pozostał z ikoną ekranu blokady. Połączyłem się z klientem i po spróbowaniu trochę miłości z „kickstartu” uruchomiłem listę launchctl, która ujawniła zadanie „LockScreen”. Zabicie go bez wydania sygnału nie przyniosło żadnego efektu, ale wysłanie go -9 usunęło ikonę blokady z ekranu i po kilku sekundach załadowano okno logowania. Będziesz musiał wypróbować go w swoich warunkach, aby sprawdzić, czy ta sama technika działa na zablokowanym komputerze 10.8.2 / 3.6.1 i gdy problem jest spowodowany przez coś innego niż wylogowanie użytkownika.

Stuart Ramdeen
źródło
1
Zdecydowanie zabiłem ten proces, a potem zobaczyłem, że blokada pozostaje na ekranie. Spróbuję ponownie następnym razem, gdy powielę błąd, dla pewności.
John Siracusa,
Dobre informacje na temat rozwiązania problemu, ale zabicie procesu nie działa. Zobacz mój skrypt Apple, aby programowo wysłać odblokowanie.
bmike
2

Jeśli korzystasz z El Capitan, powyższe instrukcje dotyczące zabicia ekranu blokady nie będą działać. Jest pewien proces, który go uruchamia i nie mogłem go znaleźć launchctl list. Próbowałem również zamknąć ARD poprzez mój sshlogin, ale to też nie zadziałało. Najwyraźniej LockScreen.app i ARD są oddzielonymi procesami lub coś w tym rodzaju. Skończyło się na tym, że muszę shutdown -r nowwymusić restart. Jestem bardzo wkurzony, że Apple nie naprawił tego błędu ani nie przedstawił obejścia, które, wiesz, faktycznie działa PO tym fakcie.

icfantv
źródło
Rzeczywiście mam ten sam problem. Próbowałem zabić ekran blokady i inne działające demony, ale bez powodzenia. Poszukam różnych rozwiązań i opublikuję je tutaj, jeśli je znajdę.
frbl 14.04.16
Czy jest jakieś szczęście w znalezieniu rozwiązania?
tmm1
0

W aplikacji Pulpit zdalny otwórz listę systemową i zaznacz zdalne urządzenie, które ma status „Zablokowany ekran”. Rozwiń menu Interact i wybierz „Odblokuj ekran ...”

Natychmiast zobaczysz zmianę stanu systemu z „Zablokowanego ekranu” na „Dostępne”. Następnie możesz zainicjować nowe połączenie w trybie kurtyny.

tyager
źródło
Która to aplikacja Pulpitu zdalnego?
tmm1
Apple Remote Desktop.App v 3.9.
tyager