Как разблокировать Mac, заблокированный с помощью «шторной» блокировки экрана Apple Remote Desktop

28

Apple Remote Desktop имеет функцию «занавес», которую удаленный клиент может использовать для блокировки экрана Mac, которым удаленно управляют. Я использую это, когда я подключаюсь к своему рабочему Mac с моего домашнего Mac. На экране моего рабочего Mac отображается большой значок блокировки и сообщение, пока я удаленно управляю им со своего домашнего Mac с помощью Apple Remote Desktop (ARD).

К сожалению, есть какая-то ошибка, из-за которой экран удаленного Mac остается заблокированным даже после того, как я от него отключился. (Последние версии ARD и OS X 10.8.2 на обеих машинах.) Когда это произойдет, я приду на работу на следующий день, чтобы найти большой значок замка и сообщение на экране моего Mac. Несмотря на то, что я сейчас физически присутствую перед Mac, я не могу найти способ разблокировать экран.

Я обычно пытаюсь sshпроникнуть в Mac с другой машины и убить процессы. Я пытался убить ARDAgentпроцесс, процесс блокировки экрана (я не могу вспомнить имя) и все, что я могу найти с помощью «ard» или «remote» в имени процесса. Ни одна из этих вещей, кажется, не разблокирует экран. В конце концов, я прибегаю к использованию, osascript -e ...чтобы сказать всем моим запущенным приложениям, что нужно корректно завершить работу, а затем запускаю, shutdown -r nowчтобы перезагрузить машину.

Мой вопрос: есть ли способ успешно разблокировать Mac, который застрял на экране блокировки ARD, используя sshили иным образом?


Один из способов воспроизвести это: войти на целевой Mac с помощью удаленного рабочего стола, активировать режим «занавес», а затем, завершив любую работу, выйти из системы на целевом Mac, находясь в режиме «занавес». Это сделает Mac недоступным для приложения удаленного рабочего стола и даже физического пользователя компьютера, при этом на экране целевого Mac все еще остается большой значок блокировки.

Я не уверен, что я делаю, чтобы вызвать эту ситуацию, но я определенно не выходить из системы. В любом случае, похоже, что решение должно быть таким же.

Джон Сиракуза
источник
1
Не отвечая на ваш вопрос напрямую: есть ли конкретная причина, по которой вы используете ARD вместо совместного использования экрана?
холме
1
Я использую ARD, потому что Screen Sharing не имеет этой функции «занавеса», и я не хочу, чтобы люди на работе могли видеть и получать доступ к моему Mac, когда меня там нет.
Джон Сиракуза
Я бы предложил использовать обычное совместное использование экрана и виртуальный дисплей, а не аппаратный, но, по моему нерешенному вопросу, он, похоже, исчез под 10,8 в качестве опции при использовании 10,8 в качестве клиента ...
Stuffe

Ответы:

11

У меня нет Mac с ARD, чтобы проверить это, но эта утилита sunshine-ard предлагает решить проблему. Беглый взгляд на исходный код, он просто отправляет сообщение CFNotificationCenter, чтобы выйти из режима шторки.

Я не уверен, есть ли способ подключиться к процессу выхода из ARD, чтобы запускать его каждый раз, когда вы отключаете сеанс, но по крайней мере вы можете запускать его через SSH по мере необходимости.

robmathers
источник
1
Это выглядит многообещающе! Я попробую это в следующий раз, когда смогу воспроизвести ошибку.
Джон Сиракуза
1
Несмотря на множество попыток, я все еще не смог воспроизвести мою ошибку. Поскольку срок действия награды истекает завтра, я собираюсь принять этот ответ, исходя из предположения, что он будет работать.
Джон Сиракуза
Я тоже не смог воспроизвести его, но я нашел некоторую документацию о том, как использовать AppleScript для разблокировки экранов, и опубликую его как отдельный ответ, хотя этот вид кажется лучшим местом для награды за детали уровня кода на внутренняя работа CFNotificationCenter.
bmike
1
Это сработало отлично. Если в любом случае некоторые люди все еще сталкиваются с этой проблемой (например, я), вы можете найти код на github.com/mattlavine/sunshine-ard .
августа
2
Я попробовал это на моем Mac под управлением Мохаве, и это не сработало, к вашему сведению.
Брэд Паркс
6

Это самое быстрое решение, которое я нашел, - это установить SSH-соединение с учетной записью администратора на удаленном компьютере, который заблокирован.

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

Тип: ps -ax | grep AppleVNCServer

Вы хотите строку, которая читает что-то вроде

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

Запишите PID слева от этого.

затем введите:

sudo kill -9 "PID" 

Это заставит перезапустить экран блокировки и снова сделать его доступным.

Я знаю, что это похоже на только что объясненный пост. Это также делается на двух машинах 10.8.2 с ARD 3.6.1.

tron_jones
источник
Это сработало для меня на El Cap сегодня днем ​​(и спасло день). Спасибо!
Марк
1
Пробовал это на Мохаве, не повезло.
Ноя
3

Что бы это ни стоило, это известная ошибка в ARD и, по-видимому, уже давно. В этой статье Apple KB есть статья, но нет предложений о том, как это исправить. http://support.apple.com/kb/TS2401

Ключевая часть документа:

Если вы используете Remote Desktop для управления клиентом в режиме Curtain, а затем войдете или выйдите из системы на удаленном клиенте, сеанс управления завершится, и вы не сможете снова получить контроль над компьютером, пока он не будет перезапущен. Это происходит на клиенте, работающем под управлением Mac OS X v10.5 или более поздней версии, и также происходит, если вы заблокируете экран клиента перед тем, как брать контроль.

разрешение

Перед выходом из системы закройте все окна с конфиденциальной информацией, завершите сеанс управления (и при необходимости разблокируйте экран). Не выходите из системы на удаленном клиенте, контролируя его в режиме Curtain.

scottm32768
источник
2

Хорошо, я не могу комментировать использование ARD, у меня его нет, но это может быть подходящим обходным путем, по крайней мере, пока.

Используя обычное совместное использование экрана, вы можете использовать либо аппаратный, либо виртуальный дисплей. Это было легко использовать на 10.7, но оно было запутано на 10.8, и команда пункта меню для переключения дисплеев пропала.

Чтобы использовать виртуальный дисплей, вот что вам нужно сделать. Во-первых, пригласите другого пользователя к вашему обычному пользователю, у которого разрешены соответствующие параметры общего доступа к экрану, затем войдите в систему:

  • Если никто не вошел в систему на целевом компьютере, вы всегда получите аппаратное отображение, показывающее обычный экран входа
  • Если пользователь, которого вы пытаетесь авторизовать, уже вошел в систему, он всегда будет переключаться на этого пользователя и использовать аппаратный дисплей.
  • Если вы войдете в систему с другим пользователем, который еще не вошел на аппаратном дисплее, вы получите следующее сообщение и возможность использовать виртуальный дисплей, в результате чего вы сможете делать все что угодно, не меняя главный экран и не имея возможности любой, кто может смотреть это

введите описание изображения здесь

Это не идеально, вам нужно убедиться, что ваш вторичный пользователь имеет соответствующие права доступа к файлам и, таким образом, вам может потребоваться доступ к ним, или вам может понадобиться принять неловкую практику оставления вашего вторичного (или «фиктивного») пользователя Вы вошли в систему, когда уходите со своего рабочего места, что позволяет вам использовать свой основной идентификатор для общего доступа к экрану, но это может помочь.

stuffe
источник
2

Apple предоставляет пример сценария блокировки экрана в главе 9 Руководства администратора ARD .

Возможно, этот сценарий на странице 174 можно сократить, чтобы просто отправить последовательность разблокировки:

-- 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
источник
2

Я не могу воспроизвести ваши точные настройки, так как в настоящее время у меня нет второй машины под управлением 10.8.2 и 3.6.1, но я попробовал вот что:

С моего Mac Mac 10.8.2 / 3.6.1 я заблокировал экран на моем клиенте 10.6.8, вышел из клиента и воспроизвел ошибку блокировки экрана. Я был отключен от сеанса ARD, а клиент остался со значком экрана блокировки. Я подключился к клиенту, и после попытки получить некоторую любовь от «kickstart», я запустил список launchctl, который показал работу «LockScreen». Уничтожение без выдачи сигнала не имело никакого эффекта, но отправка -9 убрала значок блокировки с экрана, и через несколько секунд загрузилось окно входа в систему. Вам нужно будет попробовать его в ваших условиях, чтобы убедиться, что этот же метод работает на заблокированном компьютере 10.8.2 / 3.6.1 и когда проблема вызвана чем-то иным, чем выход пользователя из системы.

Стюарт Рамдин
источник
1
Я определенно убил этот процесс, а затем увидел, что блокировка остается на экране. Я попробую это снова в следующий раз, когда воспроизведу ошибку, просто чтобы быть уверенным.
Джон Сиракуза
Хорошая информация о способе устранения неполадок, но уничтожение процесса не работает. Посмотрите мой appleScript, чтобы отправить разблокировку программно.
bmike
2

Если вы находитесь на El Capitan, приведенные выше инструкции, включающие убийство экрана блокировки, не сработают. Есть какой-то процесс, который продолжает его запускать, и я не смог найти его с помощью launchctl list. Я также пытался отключить ARD через мой sshлогин, но это тоже не сработало. Очевидно, что LockScreen.app и ARD - это не связанные между собой процессы или что-то в этом роде. Я вынужден был сделать shutdown -r nowперезагрузку. Я очень расстроен, что Apple не исправила эту ошибку и не предложила обходной путь, который, на самом деле, работает после этого.

icfantv
источник
Действительно, у меня такая же проблема. Я пытался убить экран блокировки и другие работающие демоны, но безуспешно. Я поищу разные решения и выложу их здесь, если найду.
frbl
Удачи в поиске решения?
tmm1
0

В приложении «Удаленный рабочий стол» откройте список систем и выделите удаленный компьютер, на котором отображается состояние «Заблокированный экран». Раскройте меню Interact и выберите «Разблокировать экран ...»

Вы сразу увидите изменение состояния системы с «Заблокированного экрана» на «Доступен». Затем вы можете инициировать новое соединение в режиме шторки.

tyager
источник
Какое приложение удаленного рабочего стола это?
tmm1
Apple Remote Desktop.App v 3.9.
tyager