您的位置:首页 > 移动开发

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

2011-06-21 13:29 459 查看
这个脚本会删除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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐