Change AutoLogin from AppleScript

hello,

this grew out of an idea i had after reading this post:

http://bbs.applescript.net/viewtopic.php?id=14141

it will give you a list of ‘users’ and let you pick the one you want to have ‘autoLogin’ when you start the computer. hopefully this will be useful to someone:


set getUsers to (do shell script "/usr/bin/nireport / /users name uid | grep \"5[0-9][0-9]\"")

set howMany to number of paragraphs in getUsers
set theUsers to {missing value}
set i to 1
repeat while i ≤ howMany
	if i = 1 then
		set theUsers to word 1 of paragraph i of getUsers as list
	else
		set theUsers to (theUsers & word 1 of paragraph i of getUsers)
	end if
	set i to (i + 1)
end repeat

set autoLoginUser to (choose from list theUsers)

if autoLoginUser is not false then
	do shell script "/usr/bin/defaults write /Library/Preferences/com.apple.loginwindow autoLoginUser " & autoLoginUser with administrator privileges
	display dialog "User " & autoLoginUser & " is now the default Auto Login."
end if

Slick Waltr. So slick that I’ve moved it to Code Exchange

hello,

i found a bug in the code for this. the new code also adds the UID of the autoLoginUser:

set getUsers to (do shell script "/usr/bin/nireport / /users name uid | grep \"5[0-9][0-9]\"")

set howMany to number of paragraphs in getUsers
set theUsers to {missing value}
set i to 1
repeat while i ≤ howMany
	if i = 1 then
		set theUsers to word 1 of paragraph i of getUsers as list
	else
		set theUsers to (theUsers & word 1 of paragraph i of getUsers)
	end if
	set i to (i + 1)
end repeat

set autoLoginUser to (choose from list theUsers)

if autoLoginUser is not false then
	set userInf to (do shell script "/usr/bin/nireport / /users name uid | grep " & autoLoginUser)
	set userNum to word 2 of userInf
	do shell script "/usr/bin/defaults write /Library/Preferences/com.apple.loginwindow autoLoginUser " & autoLoginUser with administrator privileges
	do shell script "/usr/bin/defaults write /Library/Preferences/com.apple.loginwindow autoLoginUserUID " & userNum with administrator privileges
	display dialog "User " & autoLoginUser & " is now the default Auto Login."
end if

it seems to work better. as always, comments welcome.

Thanks guys, I have used your advice to create a couple of scripts that enable & disable autologin, to use when auto-deploying a mac lab.

To enable autologin, I created an applescript, which calls the following shell scripts:

I found that I also needed the kcpassword file (/private/etc/kcpassword) - to get this, enable autologin manually in system preferences, then make a backup of this file and keep in a separate location, then copy back to its original location as part of your script, eg:

And to disable autologin (in our lab, this is part of a shell script that gets run as a loginhook):

Hope this helps someone?