Cómo desbloquear una Mac que ha sido bloqueada con el bloqueo de pantalla "cortina" de Apple Remote Desktop

28

Apple Remote Desktop tiene una función de "cortina" que un cliente remoto puede usar para bloquear la pantalla de la Mac que se controla de forma remota. Lo uso cuando me conecto a mi Mac de trabajo desde la Mac de mi casa. La pantalla de mi Mac de trabajo muestra un ícono de candado grande y un mensaje mientras lo controlo de forma remota desde la Mac de mi casa usando Apple Remote Desktop (ARD).

Desafortunadamente, hay un error de algún tipo que hace que la pantalla remota de la Mac permanezca bloqueada, incluso después de desconectarme. (Último ARD y OS X 10.8.2 en ambas máquinas.) Cuando esto sucede, entro al trabajo al día siguiente para encontrar el ícono de bloqueo grande y el mensaje en la pantalla de mi Mac. A pesar de estar físicamente presente frente a la Mac, no puedo encontrar una manera de desbloquear la pantalla.

Por lo general, intento sshingresar a la Mac desde otra máquina y matar procesos. He intentado eliminar el ARDAgentproceso, el proceso de bloqueo de pantalla (no recuerdo el nombre) y cualquier otra cosa que pueda encontrar con "ard" o "remoto" en el nombre del proceso. Ninguna de estas cosas parece desbloquear la pantalla. Finalmente, recurro a usar osascript -e ...para decirle a todas mis aplicaciones en ejecución que se cierren con gracia, luego corro shutdown -r nowpara reiniciar la máquina.

Mi pregunta: ¿hay alguna manera de desbloquear con éxito una Mac que está atascada en la pantalla de bloqueo ARD, usando ssho no?


Una forma de reproducir esto: inicie sesión en la Mac de destino con Escritorio remoto, inicie el modo Cortina y luego, después de finalizar cualquier trabajo que se haya realizado, cierre la sesión del usuario en la Mac de destino mientras aún se encuentra en modo Cortina. Esto dejará la Mac inaccesible para la aplicación de Escritorio remoto e incluso un usuario físico de la computadora, con el ícono de candado grande todavía en la pantalla de la Mac de destino.

No estoy seguro de lo que estoy haciendo para desencadenar esta situación, pero definitivamente no estoy cerrando sesión. De cualquier manera, parece que la solución debería ser la misma.

John Siracusa
fuente
1
Sin responder su pregunta directamente: ¿Hay alguna razón específica por la que está usando ARD en lugar de Compartir pantalla?
nohillside
1
Estoy usando ARD porque Screen Sharing no tiene esta función de "cortina", y no quiero que las personas en el trabajo puedan ver y acceder a mi Mac cuando no estoy allí.
John Siracusa
Hubiera sugerido usar el uso compartido de pantalla normal y la pantalla virtual en lugar del hardware, pero según una pregunta pendiente, parece haber desaparecido bajo 10.8 como opción cuando se usa 10.8 como cliente ...
estuffe

Respuestas:

11

No tengo una Mac con ARD para probar esto, pero esta utilidad sunshine-ard sugiere que puede solucionar el problema. Desde un rápido vistazo al código fuente, solo envía un mensaje CFNotificationCenter para salir del modo de cortina.

No estoy seguro de si hay una manera de conectarse al proceso de cierre de sesión ARD para que se ejecute cada vez que desconecte su sesión, pero al menos podría ejecutarlo a través de SSH según sea necesario.

ladrones
fuente
1
¡Eso parece prometedor! Lo intentaré la próxima vez que pueda reproducir el error.
John Siracusa
1
A pesar de muchos intentos, todavía no he podido reproducir mi error. Como la recompensa expira mañana, voy a aceptar esta respuesta en base a la suposición de que funcionará.
John Siracusa
Yo tampoco he podido reproducirlo, pero encontré algo de documentación sobre cómo usar AppleScript para desbloquear pantallas y lo publicaré como una respuesta separada a pesar de que este parece ser el mejor lugar para la recompensa por el detalle del nivel de código en El funcionamiento interno de CFNotificationCenter.
bmike
1
Esto funcionó perfectamente. Si en algún caso algunas personas aún se encuentran con este problema (como yo), puede encontrar el código en github.com/mattlavine/sunshine-ard .
frbl
2
Intenté esto en mi Mac ejecutando Mojave, y no funcionó, para tu información.
Brad Parks,
6

La solución más rápida que he encontrado es hacer una conexión SSH a una cuenta de administrador en la computadora remota que está bloqueada.

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

Tipo: ps -ax | grep AppleVNCServer

Quieres la línea que dice algo como

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

Anote el PID que está a la izquierda de esto.

luego ingrese:

sudo kill -9 "PID" 

Esto obligará a reiniciar la pantalla de bloqueo y volverá a estar disponible.

Sé que esto es como la publicación anterior que acabo de explicar. También se realiza en dos máquinas 10.8.2 con ARD 3.6.1.

tron_jones
fuente
Esto funcionó para mí en El Cap esta tarde (y salvó el día). ¡Gracias!
Mark
1
Intenté esto en Mojave, sin suerte.
Noah
3

Por lo que vale, este es un error conocido en ARD y aparentemente ha existido por un tiempo. Este KB de Apple tiene un artículo al respecto, pero no hay sugerencias sobre cómo solucionarlo. http://support.apple.com/kb/TS2401

Parte clave del documento:

Si usa Escritorio remoto para tomar el control de un cliente usando el modo Cortina, luego inicie o cierre sesión en el cliente remoto, la sesión de control finalizará y no podrá volver a tomar el control de la computadora hasta que se reinicie. Esto ocurre en el cliente que ejecuta Mac OS X v10.5 o posterior, y también ocurrirá si bloquea la pantalla del cliente antes de tomar Control.

Resolución

Antes de cerrar sesión, cierre cualquier ventana con información confidencial, finalice la sesión de control (y Desbloquee la pantalla si es necesario). No cierre sesión en el cliente remoto mientras lo controla en modo Cortina.

scottm32768
fuente
2

OK, no puedo comentar sobre el uso de ARD, no lo tengo, pero esta puede ser una solución adecuada, al menos mientras tanto.

Al usar el uso compartido de pantalla normal, tiene la opción de usar la pantalla de hardware o la virtual. Esto fue algo fácil de usar en 10.7, pero se ha ofuscado en lugar de 10.8 y el comando del elemento del menú para cambiar de pantalla desapareció.

Para usar la pantalla virtual, esto es lo que debe hacer. En primer lugar, tenga otro usuario normal que tenga las opciones relevantes para compartir pantalla permitidas, luego inicie sesión:

  • Si nadie ha iniciado sesión en la máquina de destino, siempre obtendrá la pantalla de hardware que muestra la pantalla de inicio de sesión normal
  • Si el usuario que intenta iniciar sesión ya está conectado, siempre cambiará a ese usuario y usará la pantalla de hardware
  • Si inicia sesión con otro usuario que aún no ha iniciado sesión en la pantalla de hardware, recibirá el siguiente mensaje y la capacidad de usar la pantalla virtual, lo que le permite hacer lo que quiera sin cambiar la pantalla principal y sin posibilidad de cualquiera que pueda verlo

ingrese la descripción de la imagen aquí

Esto no es perfecto, debe asegurarse de que su usuario secundario tenga los derechos de acceso relevantes a los archivos y tal vez tenga que acceder, o puede que tenga que adoptar la práctica incómoda de dejar a su usuario secundario (o "ficticio") inició sesión cuando abandona el escritorio, lo que le permite utilizar su ID principal para compartir la pantalla, pero puede ser útil.

stuffe
fuente
2

Apple proporciona un ejemplo de cómo escribir la pantalla de bloqueo en el Capítulo 9 de la Guía de administración de ARD .

Quizás ese script en la página 174 podría acortarse para enviar simplemente la secuencia de desbloqueo:

-- 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
fuente
2

No puedo reproducir su configuración exacta ya que actualmente no tengo una segunda máquina con 10.8.2 y 3.6.1, pero esto es lo que probé:

Desde mi Mac de administración 10.8.2 / 3.6.1 bloqueé la pantalla en mi cliente 10.6.8, cerré la sesión del cliente y reproduje la falla de bloqueo de pantalla. Me desconecté de mi sesión ARD y el cliente permaneció con el icono de la pantalla de bloqueo. Me comuniqué con el cliente y después de tratar de obtener un poco de amor de 'kickstart', ejecuté la lista de launchctl que reveló un trabajo 'LockScreen'. Matarlo sin emitir una señal no tuvo ningún efecto, pero enviarlo a -9 eliminó el ícono de bloqueo de la pantalla y después de unos segundos se cargó la ventana de inicio de sesión. Tendrá que probarlo bajo sus condiciones para verificar que esta misma técnica funcione en una máquina bloqueada 10.8.2 / 3.6.1 y cuando el problema sea causado por algo distinto al cierre de sesión del usuario.

Stuart Ramdeen
fuente
1
Definitivamente eliminé ese proceso y luego vi que el bloqueo permanecía en la pantalla. Lo intentaré nuevamente la próxima vez que reproduzca el error, solo para asegurarme.
John Siracusa
Buena información sobre una vía de solución de problemas, pero matar el proceso no funciona. Vea mi applecript para enviar el desbloqueo programáticamente.
bmike
2

Si estás en El Capitán, las instrucciones anteriores que involucran matar la pantalla de bloqueo no funcionarán. Hay algún proceso que lo sigue iniciando y no pude encontrarlo usando launchctl list. También intenté cerrar ARD a través de mi sshinicio de sesión, pero tampoco funcionó. Aparentemente, LockScreen.app y ARD son procesos desacoplados o algo así. Terminé teniendo que hacer un shutdown -r nowpara forzar un reinicio. Estoy bastante enojado porque Apple no ha solucionado este error o ha proporcionado una solución que, ya sabes, realmente funciona DESPUÉS del hecho.

icfantv
fuente
De hecho, tengo este mismo problema. Intenté matar la pantalla de bloqueo y otros demonios corriendo, pero no tuve suerte. Buscaré diferentes soluciones y las publicaré aquí si encuentro alguna.
frbl
¿Alguna suerte encontrando una solución?
tmm1
0

En la aplicación Escritorio remoto, abra la lista del sistema y resalte una máquina remota que muestra el estado de "Pantalla bloqueada". Despliegue el menú Interact y elija "Desbloquear pantalla ..."

Inmediatamente verá el cambio de estado del sistema de "Pantalla bloqueada" a "Disponible". Luego puede iniciar una nueva conexión en modo de cortina.

tyager
fuente
¿Qué aplicación de escritorio remoto es esta?
tmm1
Apple Remote Desktop.App v 3.9.
tyager