O pressionamento de tecla precisa estar em um bloco de informes de eventos do sistema ...
osascript -e 'tell application "System Events"' -e 'log out' -e 'keystroke return' -e end
Estou tentando criar um script no ARD que me permita fazer logout de um usuário. Agora eu tenho um script que inicia o logout, mas quero que ele seja executado em vez de esperar 60 segundos. O script atualmente é:
osascript -e 'tell application "System Events" to log out'
Como eu disse, isso funciona, mas eu quero que ele pressione o botão de retorno no diálogo de logout. O script que tentei fazer é que:
osascript -e 'tell application "System Events" to log out' -e 'keystroke return'
que não funciona.
Existe uma maneira, possivelmente dizendo ao sistema para pressionar Cmd + Opte + q , então Digitar , para sair sem esperar que o tempo limite expire?
O evento da Apple é a maneira mais robusta de fazer isso (mas ainda pode ser bloqueado por um aplicativo emperrado).
Digitar os caracteres especiais é complicado ... aqui está um bloco que você pode usar em um script ou via ARD.
osascript -e 'ignoring application responses' -e 'tell application "loginwindow" to «event aevtrlgo»' -e end
Os caracteres «e» são digitados por opção- \ e shift-option-\ respectivamente.
O evento rlgo
( kAEReallyLogOut
) da Apple efetua logout sem mostrar uma caixa de diálogo de confirmação:
tell application "loginwindow" to «event aevtrlgo»
tell application "System Events" to log out
envia loginwindow
a logo
( kAELogOut
) evento da Apple. Os eventos da Apple estão listados em AERegistry.h
.