Skip to main content

Mac OS X "SOE" continued

Testing this at the moment, 10.7.x changed the location that server favorites are stored. They used to be .inetloc files in ~/Library/Favorites but now they are stored in a plist array in ~/Library/Preferences/com.apple.sidebarlists.plist

Note though, you can actually add inetloc files into your User Template folder and new users will get them, they just don't get stored as files now when users are manually creating them.
#* Default user preferences.
#+ Add default server favorites in "Connect to Server"
for USER_TEMPLATE in `sudo ls /System/Library/User\ Template`
do
 if [ -r "/System/Library/User Template/${USER_TEMPLATE}/Library/Preferences" ]; then
  sudo /usr/libexec/PlistBuddy -c 'Add favoriteservers dict' "/System/Library/User Template/${USER_TEMPLATE}/Library/Preferences/com.apple.sidebarlists.plist" 
  sudo /usr/libexec/PlistBuddy -c 'Add favoriteservers:Controller string CustomListItems' "/System/Library/User Template/${USER_TEMPLATE}/Library/Preferences/com.apple.sidebarlists.plist" 
  sudo /usr/libexec/PlistBuddy -c 'Add favoriteservers:CustomListItems array' "/System/Library/User Template/${USER_TEMPLATE}/Library/Preferences/com.apple.sidebarlists.plist" 
  sudo /usr/libexec/PlistBuddy -c 'Add favoriteservers:CustomListItems:0 dict' "/System/Library/User Template/${USER_TEMPLATE}/Library/Preferences/com.apple.sidebarlists.plist" 
  sudo /usr/libexec/PlistBuddy -c 'Add favoriteservers:CustomListItems:0:Name string ${server1}' "/System/Library/User Template/${USER_TEMPLATE}/Library/Preferences/com.apple.sidebarlists.plist" 
  sudo /usr/libexec/PlistBuddy -c 'Add favoriteservers:CustomListItems:0:URL string ${server1}' "/System/Library/User Template/${USER_TEMPLATE}/Library/Preferences/com.apple.sidebarlists.plist" 
  sudo /usr/libexec/PlistBuddy -c 'Add favoriteservers:CustomListItems:1 dict' "/System/Library/User Template/${USER_TEMPLATE}/Library/Preferences/com.apple.sidebarlists.plist" 
  sudo /usr/libexec/PlistBuddy -c 'Add favoriteservers:CustomListItems:1:Name string ${server2}' "/System/Library/User Template/${USER_TEMPLATE}/Library/Preferences/com.apple.sidebarlists.plist" 
  sudo /usr/libexec/PlistBuddy -c 'Add favoriteservers:CustomListItems:1:URL string ${server2}' "/System/Library/User Template/${USER_TEMPLATE}/Library/Preferences/com.apple.sidebarlists.plist" 
  sudo /usr/libexec/PlistBuddy -c 'Add favoriteservers:CustomListItems:2 dict' "/System/Library/User Template/${USER_TEMPLATE}/Library/Preferences/com.apple.sidebarlists.plist" 
  sudo /usr/libexec/PlistBuddy -c 'Add favoriteservers:CustomListItems:2:Name string ${server3}' "/System/Library/User Template/${USER_TEMPLATE}/Library/Preferences/com.apple.sidebarlists.plist" 
  sudo /usr/libexec/PlistBuddy -c 'Add favoriteservers:CustomListItems:2:URL string ${server3}' "/System/Library/User Template/${USER_TEMPLATE}/Library/Preferences/com.apple.sidebarlists.plist" 
 fi
done

exit 0

Popular posts from this blog

Mac OS X "SOE" Day 7

Page Redirection > continued from day 6... In summary, here is my method for creating a Mac OS X 10.7.3 Standard Operating Environment "SOE" Image. Overview The goal is to create a "MASTER" non-booted SOE that can be used with multiple models and it multiple sites with different local requirements. My intention is to use this "MASTER" image in a manual restore procedure due to the fact netboot facilities cannot be made available to all the sites I support however the DMG files are netboot compatible. Requirements Lion Recovery Disk Assistant v1.0 "TARGET" workstation. A compatible workstation that will be used to install Mac OS X 10.7.3 and capture a DMG image(s). "ADMIN" workstation. A workstation with Disk Utility that you will use to capture your DMG image(s). External storage such as a USB HARD DISK. Setup Downloaded the Lion Recovery Disk Assi

Mac OS X "SOE" Day 6

Page Redirection > continued from day 5... Continuing on from the "firstboot" phase setup we need to script our "localiser" options. I previously set my build phase to autologin and run the firstboot script, the localiser phase essentially sits there and waits for you to run it. In my case I have an applescript GUI wrapper that requests some info to use in the localisation. I request a TAG number which is an organisational internal number and I also request a user name that will be set as the OWNER. NOTE : I ordered these specifically...not just because it makes sense logically but also technically. For example, setting the Language actually zaps a plist file (.GlobalPreferences) which you need to write to for Locale and Country info. This stuff is going to be totally dependant on your environment, as an example here is what I do. So what's the minimum we need in the "localiser" phase? Depends on how many sites you support,

Mac OS X "SOE" Day 5

Page Redirection > continued from day 4... Continuing on from the "build" phase setup we need to script our "firstboot" options. The last step in the build phase set our "firstboot" script as  "/var/root/firstboot.sh". So what's the minimum we need in the "firstboot" phase? There isn't really a minimum for this phase as you can do most of this stuff at localisation phase. The main things I do here relate to writing prefs that a machine specific ie, contain UUID or MACADDRESS Setting default screensaver Setting default menu extras Run Apple Software updates that require a booted OS Set the initial HOSTNAME, LOCALHOSTNAME and COMPUTERNAME Set the initial Energy Saver settings Disable some Network Services (firewire, bluetooth) Set the initial Network Services Order Disable IPv6 Couple things you will need to know for this stage, how to get the UUID and/or the MACADDRESS. Post 2010 macs seem to use t