牛骨文教育服务平台(让学习变的简单)

这个脚本会删除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