Skip to main content

Fileset recipe to block applications by name (macOS Script)

The Fileset will block the supplied list of applications on your macOS machines by running a script every 5 seconds on your client machines.

Step-by-step guide

Download, edit and associate the below Fileset. 

  1. Download the "macOS - Block Applications.fileset.zip" below.
    macOS - Block Applications Including macOS Install Apps.fileset.zip
  2. Import the "macOS - Block Applications.fileset" into the Filesets tab of the Filewave Admin. 
  3. Edit the Fileset to include the appropriate list of applications to block.

    Select the install_block_application.sh file and then Get Info


Edit the Executable > Launch Arguments to include the binary name of any app to be blocked, e.g Messages, FaceTime, and Keychain Access

  1. Associate the Fileset to a handful of test machines so you can see the behavior of the Fileset before mass deploying to all of your devices. 
  2. After that, you are Done!

Binary Names
To find the name of the binary to block, take a look at the application's contents. Every App has the same directory structure > ApplicationName.app/Contents/MacOS/ApplicationName, where ApplicationName is the binary to block, e.g.
FaceTime
/Applications/FaceTime.app/Contents/MacOS/FaceTime

Terminal
/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal

If you are wanting to block an Application with a space in the name like Keychain Access, you will need to have quotes(") around the name. So you would add, "Keychain Access", to Executable > Launch Arguments.

Block Install macOS installers

To block users running macOS installers, e.g Install macOS Catalina.app,  add the following Launch Argument as per the steps below:

osinstallersetupd

For greater control over the application installers of macOS, with user interaction, take a look at the alternate method (designed just for this task) in the following KB: macOS - Block Apple Install macOS Application

However, this will block all Install macOS Apps.  If you wish to block one installer, e.g Catalina, but have workflows that require earlier versions to install, consider the following Fileset example.

Inside the install_block_applications.sh script you will find a 'case' block.  This section should be edited to meet your requirements.  Currently, this example blocks Catalina only but demonstrates how you could include other install Apps or how you can capture all other installers.

case \$process_details in
 
    *"Catalina"*)
        echo "Catalina"
        pkill -x "osinstallersetupd"
        ;;
    *"Mojave"*)
        echo "Found: Mojave"
        echo "Nothing to do"
        ;;
    *)
        echo "Found: \$process_details"
        echo "Allowed.  Nothing to do"
        ;;
esac