Como desbloquear um Mac que foi bloqueado com o bloqueio de tela "cortina" do Apple Remote Desktop

28

O Apple Remote Desktop possui um recurso de "cortina" que um cliente remoto pode usar para bloquear a tela do Mac que está sendo controlado remotamente. Uso isso quando me conecto ao meu Mac profissional a partir do Mac doméstico. A tela do meu trabalho no Mac mostra um grande ícone de cadeado e uma mensagem enquanto eu o controlo remotamente no meu Mac em casa usando o Apple Remote Desktop (ARD).

Infelizmente, há algum tipo de bug que faz com que a tela do Mac remoto permaneça bloqueada, mesmo depois que eu a desconectei. (ARD e OS X 10.8.2 mais recentes nas duas máquinas.) Quando isso acontece, trabalho no dia seguinte para encontrar o grande ícone de cadeado e a mensagem na tela do meu Mac. Apesar de agora estar fisicamente presente na frente do Mac, não consigo encontrar uma maneira de desbloquear a tela.

Normalmente, eu tento sshacessar o Mac a partir de outra máquina e matar processos. Eu tentei matar o ARDAgentprocesso, o processo de bloqueio de tela (não consigo lembrar o nome) e qualquer outra coisa que eu possa encontrar com "ard" ou "remote" no nome do processo. Nenhuma dessas coisas parece desbloquear a tela. Eventualmente, eu recorro a usar osascript -e ...para dizer a todos os meus aplicativos em execução para encerrar normalmente, e então eu corro shutdown -r nowpara reiniciar a máquina.

Minha pergunta: existe uma maneira de desbloquear com sucesso um Mac que está preso na tela de bloqueio ARD, usando sshou não?


Uma maneira de reproduzir isso: faça login no Mac de destino com a Área de Trabalho Remota, inicie o modo Cortina e, depois de terminar o trabalho a ser feito, efetue logout do usuário no Mac de destino enquanto ainda estiver no modo Cortina. Isso deixará o Mac inacessível ao aplicativo Área de Trabalho Remota e até mesmo a um usuário físico do computador, com o ícone de cadeado grande ainda na tela do Mac de destino.

Não tenho certeza do que estou fazendo para desencadear essa situação, mas definitivamente não estou saindo. De qualquer maneira, parece que a solução deve ser a mesma.

John Siracusa
fonte
1
Sem responder diretamente à sua pergunta: Existe um motivo específico para o uso do ARD em vez do compartilhamento de tela?
nohillside
1
Estou usando o ARD porque o compartilhamento de tela não possui esse recurso de "cortina" e não quero que as pessoas no trabalho possam ver e acessar meu Mac quando não estiver lá.
31812 John Siracusa
Eu sugeriria usar o compartilhamento de tela normal e a exibição virtual em vez da de hardware, mas, de acordo com uma pergunta excelente, parece ter desaparecido sob 10,8 como opção ao usar 10,8 como cliente ...
stuffe

Respostas:

11

Eu não tenho um Mac com ARD para testar isso, mas este sol-ard utilidade sugere que ele pode corrigir o problema. De uma rápida olhada no código-fonte, ele envia uma mensagem do CFNotificationCenter para sair do modo cortina.

Não tenho certeza se existe uma maneira de conectar-se ao processo de logout do ARD para que essa execução seja executada toda vez que você desconectar sua sessão, mas pelo menos você pode executá-la via SSH conforme necessário.

robmathers
fonte
1
Isso parece promissor! Vou tentar na próxima vez que conseguir reproduzir o bug.
31412 John Siracusa
1
Apesar de muitas tentativas, ainda não consegui reproduzir meu bug. Como a recompensa expira amanhã, vou aceitar essa resposta com base no pressuposto de que ela funcionará.
9788 John
Também não consegui reproduzi-lo, mas encontrei alguma documentação sobre como usar o AppleScript para desbloquear telas e publicarei isso como uma resposta separada, mesmo que este pareça o melhor lugar para a recompensa pelos detalhes no nível de código em o funcionamento interno do CFNotificationCenter.
bmike
1
Isso funcionou perfeitamente. Se, de qualquer forma, algumas pessoas ainda tiverem esse problema (como eu), você poderá encontrar o código em github.com/mattlavine/sunshine-ard .
frbl
2
Eu tentei isso no meu Mac rodando Mojave, e não funcionou, fyi.
Brad Parks
6

Essa solução mais rápida que encontrei é fazer uma conexão SSH com uma conta de administrador no computador remoto bloqueado.

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

Tipo: ps -ax | grep AppleVNCServer

Você quer a linha que lê algo como

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

Anote o PID que está à esquerda disso.

depois digite:

sudo kill -9 "PID" 

Isso forçará a reinicialização da tela de bloqueio e a disponibilizará novamente.

Eu sei que isso é como o post acima apenas explicou. Isso também é feito em duas máquinas 10.8.2 executando o ARD 3.6.1.

tron_jones
fonte
Isso funcionou para mim no El Cap esta tarde (e salvou o dia). Obrigado!
Mark
1
Tentei isso no Mojave, sem sorte.
Noah
3

Pelo que vale, esse é um bug conhecido na ARD e aparentemente existe há algum tempo. Este KB da Apple tem um artigo sobre o assunto, mas nenhuma sugestão sobre como corrigi-lo. http://support.apple.com/kb/TS2401

Parte principal do documento:

Se você usar a Área de Trabalho Remota para controlar um cliente usando o modo Cortina, faça logon ou logoff no cliente remoto, a sessão de controle será encerrada e você não poderá controlar o computador novamente até que seja reiniciado. Isso ocorre no cliente executando o Mac OS X 10.5 ou posterior e também ocorrerá se você bloquear a tela do cliente antes de assumir o controle.

Resolução

Antes de sair, feche todas as janelas com informações confidenciais, encerre a sessão de controle (e desbloqueie a tela, se necessário). Não efetue logoff no cliente remoto enquanto o controla no modo Cortina.

scottm32768
fonte
2

OK, não posso comentar sobre o uso de ARD, não o tenho, mas isso pode ser uma solução alternativa adequada, pelo menos enquanto isso.

Usando o compartilhamento de tela normal, você tem a opção de usar a tela de hardware ou a virtual. Isso foi fácil de usar na versão 10.7, mas foi ofuscado na versão 10.8 e o comando do item de menu para alternar as exibições desapareceu.

Para usar a exibição virtual, eis o que você precisa fazer. Primeiramente, tenha outro usuário como o normal, com as opções relevantes de compartilhamento de tela permitidas, e faça o login:

  • Se ninguém estiver conectado à máquina de destino, você sempre terá a tela Hardware mostrando a tela de login normal
  • Se você é o usuário que você tenta logar como já está logado, ele sempre muda para esse usuário e usa a tela de hardware
  • Se você fizer login com outro usuário que ainda não esteja logado na tela do hardware, receberá a seguinte mensagem e a capacidade de usar a tela virtual, o que resulta em poder fazer o que você quiser sem alterar a tela principal e sem possibilidade de alguém sendo capaz de assistir

insira a descrição da imagem aqui

Isso não é perfeito, você precisa garantir que o usuário secundário possua os direitos de acesso relevantes aos arquivos e de tal forma que possa precisar acessar, ou talvez seja necessário adotar a prática incômoda de deixar o usuário secundário (ou "falso") quando você sai da mesa, permitindo que você use seu ID primário sobre o compartilhamento de tela, mas isso pode ajudar.

abafar
fonte
2

A Apple fornece um exemplo de como criar um script na tela de bloqueio no Capítulo 9 do Guia de administração do ARD .

Talvez esse script na página 174 possa ser reduzido para enviar apenas a sequência de desbloqueio:

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

Não consigo reproduzir sua configuração exata, pois atualmente não tenho uma segunda máquina executando 10.8.2 e 3.6.1, mas aqui está o que tentei:

No meu Mac do administrador 10.8.2 / 3.6.1, bloqueei a tela do meu cliente 10.6.8, saí do cliente e reproduzi a falha de bloqueio da tela. Eu fui desconectado da minha sessão de ARD e o cliente permaneceu com o ícone da tela de bloqueio. Entrei no cliente e, depois de tentar obter algum amor com o 'kickstart', corri a lista launchctl, que revelou um trabalho 'LockScreen'. Matá-lo sem emitir um sinal não teve efeito, mas enviar -9 removeu o ícone de cadeado da tela e após alguns segundos a janela de login foi carregada. Você precisará experimentá-lo sob suas condições para verificar se a mesma técnica funciona em uma máquina 10.8.2 / 3.6.1 bloqueada e quando o problema é causado por algo diferente do usuário que está efetuando logout.

Stuart Ramdeen
fonte
1
Definitivamente, eu acabei com esse processo e vi o bloqueio permanecer na tela. Vou tentar novamente na próxima vez que reproduzir o bug, apenas para ter certeza.
John Siracusa
Boas informações em uma avenida de solução de problemas, mas matar o processo não funciona. Veja meu AppleScript para enviar o desbloqueio programaticamente.
bmike
2

Se você estiver no El Capitan, as instruções acima, que envolvem a interrupção da tela de bloqueio, não funcionarão. Há algum processo que continua iniciando e não consegui encontrá-lo usando launchctl list. Também tentei desligar o ARD através do meu sshlogin, mas isso também não funcionou. Aparentemente, o LockScreen.app e o ARD são processos dissociados ou algo assim. Acabei tendo que fazer um shutdown -r nowpara forçar uma reinicialização. Estou bastante chateado por a Apple não ter corrigido esse bug ou ter fornecido uma solução alternativa que, você sabe, realmente funciona APÓS o fato.

icfantv
fonte
Na verdade, eu tenho esse mesmo problema. Tentei matar a tela de bloqueio e outros daemons correndo, mas sem sorte. Vou procurar soluções diferentes e publicá-las aqui, se encontrar alguma.
frbl 14/04/16
Alguma sorte em encontrar uma solução?
tmm1 28/04
0

No aplicativo Área de trabalho remota, abra a lista do sistema e realce uma máquina remota que mostre o status "Tela bloqueada". Puxe para baixo o menu Interagir e escolha "Desbloquear tela ..."

Você verá imediatamente o status do sistema mudar de "Tela bloqueada" para "Disponível". Você pode iniciar uma nova conexão no modo cortina.

tyager
fonte
Que aplicativo de área de trabalho remota é esse?
tmm1 28/04
Apple Remote Desktop.App v 3.9.
tyager 30/04