আমি একটি স্ক্রিপ্ট আমি hints.macworld.com মন্তব্য পাওয়া ডাকা একটি নির্দিষ্ট ব্যবহারকারীকে পাল্টাতে নিবন্ধ । আমার এটিতে সমস্যা ছিল তাই আমি যদি এটি কাজ করি তবে তা পেতে এটি টুইট করি। পাসওয়ার্ডটি কীচেইনে সংরক্ষিত রয়েছে, তাই আপনাকে ক্লিয়ারটেক্সটে লগইন পাসওয়ার্ড সংরক্ষণ করার বিষয়ে চিন্তা করার দরকার নেই। আপনি এখানে সংক্ষেপে খুঁজে পেতে পারেন ।
--This script MUST be named "Switch to User.scpt", where User is the name of the user to switch to.
--You must first make a password item (a.k.a. a key) for the other user's password using Keychain Access, and call it "", where "user" is the other user's name and with the description "User Login". The script assumes that you make this key in your login.keychain, which is the default one.
--The first time you run this script, you will be prompted to allow Keychain Scripting to access the password of the key.
--This script requires "Enable access for assistive devices" to be enabled in the Universal Access system preference pane.
set username to word -1 of my findReplace(".scpt", "", (path to me as text))
-- Invoke Fast User Switching. The `id -ur username` part gets the uid number that corresponds to the username and substitutes it at the end of the CGSession command
do shell script "/System/Library/CoreServices/'Menu Extras'/User.menu/Contents/Resources/CGSession -switchToUserID `id -ur " & username & "`"
-- Use universal access to enter the text and to click the button
tell application "System Events"
repeat
if (do shell script "stat -f %Su /dev/console") is username then exit repeat
-- Get the password for the username
try
set pswd to (do shell script "security find-generic-password -g -s \"" & username & "\" -D \"User Login\" 2>&1 1>/dev/null | sed -e 's/password: \"//' -e 's/\"//'")
on error
exit repeat
end try
if exists window 1 of application process "SecurityAgent" then
tell process "SecurityAgent" to set value of text field 1 of window 1 to pswd
key code 36
exit repeat
else
tell application "SecurityAgent" to quit
do shell script "/System/Library/CoreServices/'Menu Extras'/User.menu/Contents/Resources/CGSession -switchToUserID `id -ur " & username & "`"
end if
end repeat
end tell
on findReplace(findText, replaceText, sourceText)
set ASTID to AppleScript's text item delimiters
set AppleScript's text item delimiters to findText
set sourceText to text items of sourceText
set AppleScript's text item delimiters to replaceText
set sourceText to sourceText as text
set AppleScript's text item delimiters to ASTID
return sourceText
end findReplace
লগইন স্ক্রিনটি শুরু করার জন্য আমার কাছে আরও একটি স্ক্রিপ্ট রয়েছে। আপনি এখানে সংক্ষেপে খুঁজে পেতে পারেন
do shell script "'/System/Library/CoreServices/Menu Extras/User.menu/Contents/Resources/CGSession' -suspend"
দুটি স্ক্রিপ্ট আমার কুইকিলবারের ক্যাটালগে রয়েছে। ব্যবহারকারীর অ্যাকাউন্টগুলির মধ্যে স্যুইচ করা কয়েক সেকেন্ডের ব্যাপার।