这个脚本会删除Dock程序默认的自动添加App Store.app图标到用户Dock上的行为。
具体的操作使用参见脚本说明。
#!/bin/bash # ------------------------------------------------------------------------ # Removing App Store icon from User's Dock: # # Script name: RmAppStoreIcon.sh # # Copy Right: # Copy Right 2011 Tony Liu, all right reserved. # # Description: # If you don't want end user to have App Store icon on their Dock, this is right for you. # Why bother this? because most enterprise environment policies don't like people purchasing # stuff online, ie App Store. # # The system wide Dock icon is stored in the plist file: # /System/Library/CoreServices/Dock.app/Contents/Resources/English.lproj/default.plist # # This script needs PlistBuddy command line tools installed on your OS, which is included in most # of Apple packages. it's easy to be found anyway. Or pack commands in a installation package. # # You can use the following command to remove it: # plistbuddy -c "delete :persistent-apps:0" /System/Library/CoreServices/Dock.app/Contents/Resources/English.lproj/default.plist # # For newly login users, Dock.app will put the App Store icon on user's Dock automatically. # For logged in users, the App Store icon is already sits on their Dock. # To remove for all users, a the best practise example likes this: # removeSysAppStoreIcon # removeAllUserAppStoreIcon # # Another approch: removing the "App Store.app" from /Applications folder totally. # # For some situation, you may want end users to use it at home, but not in enterprise environment. # do the restriction within MCX or Workgroup Manager. # # History: # Initial: Tony 2011-06-20 # # ------------------------------------------------------------------------ # How to use these commands: # call removeAllUserAppStoreIcon to remove for all users # call removeUserAppStoreIcon USERNAME, to remove USERNAME user's App Store icon. # call removeSysAppStoreIcon to remove from system wide. # ------------------------------------------------------------------------ function RemoveAppStore { defaultPlist="$1" #currentSet=`plistbuddy -c "print :persistent-apps" $defaultPlist` #currentSet=${currentSet/":"} index=0 while [ true ] do curAppIcon=`plistbuddy -c "print :persistent-apps:$index" $defaultPlist` echo "$index" "$curAppIcon" if [ -n "$curAppIcon" ]; then isAppStore=`echo $curAppIcon | grep "App Store"` if [ -n "$isAppStore" ]; then sudo plistbuddy -c "delete :persistent-apps:$index" $defaultPlist echo "Deleted App Store @ $index" break else let index=index+1 fi else break fi done } function removeSysAppStoreIcon { RemoveAppStore "/System/Library/CoreServices/Dock.app/Contents/Resources/English.lproj/default.plist" } function removeUserAppStoreIcon { RemoveAppStore "/Users/$1/Library/Preferences/com.apple.Dock.plist" } function removeAllUserAppStoreIcon { for aUser in `ls -1 /Users` do removeUserAppStoreIcon "$aUser" done } RemoveAppStore "/Users/schooladmin/Desktop/default.plist" exit 0
Tony liu, June 2011
Calgary