OSX脚本:禁止系统自动添加AppStore图标到用户Dock上

最后更新于:2022-04-01 10:56:45

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