OSX Lion에서 스크립팅 된 빠른 사용자 전환


2

나는 일련의 기계들에 대한 빠른 사용자 전환을 자동화하고 싶다. 내 현재의 깨진 솔루션은 온라인에서 발견 된 Leopard / SL 스크립트에서 수정 한이 아 니 스 스크립트 스 니펫입니다.

set thePassword to "foo"
set N to "1027"
do shell script "/System/Library/CoreServices/Menu\\ Extras/User.menu/Contents/Resources/CGSession -switchToUserID " & N
delay 0.8
tell application "System Events"
  keystroke thePassword
  delay 1
  keystroke return
end tell

암호가 성공적으로 입력 된 것으로 보이지만 keystroke return사용자 로그인에 실패합니다 (화면이 진동하여 실패한 시도임을 나타냄). 재미있는 점은 수동으로 Enter 키를 누르면 로그인이 완료된다는 것입니다 (그러므로 암호가 성공적으로 입력되었다는 주장)

어떤 아이디어?

감사!


구체적인 생각은 없지만, tab로그인 한 다음 버튼을 눌러 로그인해야합니까?
slhck

@ sllck : 아니, 그것을 시도, 행운을 빕니다. 생각해 줘서 고마워!
Rom1

암호를 입력하는 것을 자동화하는 것보다 사용자에게 전환을 자동화하는 것이 좋을 것입니다. 어떤 이벤트로든 스크립트가 손상 될 수 있다고 생각하십시오.
Tamara Wijsman 2011 년

답변:


1

내가 잘못 생각할 수있는 점을 말할 수는 없지만 몇 년 전에 해결 방법이 있습니다.

'Intel iMacs에서 키 스트로크 리턴'응용 프로그램에 "시스템 이벤트"

본질적으로,이 게시물의 저자는 매우 유사한 시나리오에서 리턴 키는 PowerPC iMac에서 성공적으로 로그인을 시작한다고 말합니다. Intel 시스템에서 스크립트는 디스플레이 절전 시간 초과를 1 분으로 설정하고 65 초를 기다린 다음 디스플레이가 잠자기 상태가되면 "키 스트로크 리턴"이 작동합니다. (!)

꽤 끔찍한 소리가 들리 겠지만, 어쩌면 당신은 이것으로 실행할 수있는 것을 적용 할 수 있습니다.


0

스크립트의 두 가지 주요 버전이 떠 다니는 것처럼 보입니다.

첫 번째 방법은 "키 입력 회수"가 두 번 ( 소스 ) 복제된다는 것을 제외하고는 사용자와 유사합니다 .

osascript <<EOF
tell application "System Events"
keystroke "USERNAME"
keystroke tab
delay 0.5
keystroke "PASSWORD"
delay 0.5
keystroke return
keystroke return
end tell
EOF 

누군가 두 번이면 충분하지 않다는 것을 알아 냈습니다.

osascript <<EndOfMyScript
tell application "System Events"
keystroke "USERNAME"
keystroke tab
delay 0.5
keystroke "PASSWORD"
delay 0.5
keystroke return
keystroke tab
delay 0.5
keystroke "PASSWORD"
delay 0.5
keystroke return
keystroke return
keystroke return
keystroke return
keystroke return
end tell
EndOfMyScript

다른 사용자 가이 솔루션을 선호 하는 반면 로그인 창에 "기타 ..."가 표시된 사용자 목록이있는 경우에 사용할 수 있습니다.

osascript <<EOT
set username_ to "username"
set password_ to "password"
tell application "System Events"
key code 125 -- Down Arrow
key code 125 -- Down Arrow
delay 1
key code 125 -- Down Arrow
key code 125 -- Down Arrow
key code 125 -- Down Arrow
key code 125 -- Down Arrow
key code 125 -- Down Arrow
key code 125 -- Down Arrow
delay 0.5
key code 36 -- Return
delay 1
tell process "SecurityAgent" to set value of text field 1 of group 1 of window 1 to username_
tell process "SecurityAgent" to set value of text field 2 of group 1 of window 1 to password_
click button "Log In" of window 1 of application process "SecurityAgent"
end tell
EOT

(Mac 사용자가 아닌 사용자가 응답 함)

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.