McAfee installation issues

New Contributor III

Hi All,

i am having great difficulty deploying to machines running MacOS Catalina and Big Sur. Some may not be using the but the script with some success. I am unable to find where this sits on the ePO as it always downloads the

I've found many articles as to why the installer isnt working on the most recent OS which are:

  1. About the read-only system volume in macOS Catalina - Apple Support - Apple created a read-only volume from Catalina also noted in thread Solved: Problem deploying McAfee EPO to bigsur - Jamf Nation Community - 241670
  2. Deploying McAfee products with Jamf Pro software - there's an existing bug located in the on Line 5 that needs to be changed to From temp_directory=`sudo mktemp -d McAfeeSmartInstall_XXXXXX` To temp_directory=`sudo mktemp -d /tmp/McAfeeSmartInstall_XXXXXX`
  3. Smart Installer displays a password logon prompt in silent mode ( - disabling the admin prompt when the installer is running by changing line 45 and 46, and set the Absolute path, instead of the symbolic link: From:
    sudo cp -f $temp_directory/coninfo.xml /tmp/coninfo.xml
    open -W -a "$temp_directory/$APP_FILE_NAME" --args -c "/tmp/coninfo.xml" "$@"

    sudo cp -f $temp_directory/coninfo.xml /private/tmp/coninfo.xml
    "$temp_directory/$APP_FILE_NAME/Contents/MacOS/McAfeeSmartInstall" -c "/private/tmp/coninfo.xml" -s -g

None of which seems to resolve my issue.

Scenario 1:

I created a postinstall script to run in the package i created which dumps the in the /private/tmp directory. Permission on the /tmp is 777 and the file is 755. The post install script was taken from McAfee-Agent/ at master · franton/McAfee-Agent · GitHub with changes to reflect my environment. I try executing the package locally i receive the error

Creating temporary directory...
chmod: /private/tmp/PKInstallSandbox.UxwMKL/Scripts/mcafeeenterpriseagent5.7.3.t6Z7Wv//tmp/McAfeeSmartInstall_YMWT0Q: No such file or directory

If i change line 5 to temp_directory=`sudo mktemp -d McAfeeSmartInstall_XXXXXX` the installer hangs (package installation) at installer[11292]: PackageKit: Enqueuing install with framework-specified quality of service (utility). If i execute the directly from terminal everything works as expect. This is the same when using JAMF remote to execute the package. When i try to execute using the policy it fails on creating a temporary directory. So JAMF is executing it differently in different scenarios. 


At this point i am completely stuck on how to fix this issue. i have tried numerous fixes which i did not explain to keep the thread short. Has anyone came around to resolving this issue.  


New Contributor III

I was able to resolve this issue speaking with Jamf support. It turns out when a policy is ran it uses the root user.

There is a small difference between running policies with a policy versus with Jamf Remote. Policies run via policy are executed as the root user, whereas policies executed via Jamf Remote are executed as the management account with root privileges.

For example, if a script says to change some file in ~/Documents/somefile.txt, when run from Jamf Remote this is going to modify a file in: /Users/$managementAccount/Documents/somefile.txt.
However if run via policy then this would modify a file in: /var/root/Documents/somefile.txt, which most of the time will not work, since there is not typically a Documents directory in /var/root.

To avoid this, i explicitly changed the directory in the script before it begins the installation.  Taking this post install script from McAfee-Agent/ at master · franton/McAfee-Agent · GitHub , after line 42 i changed the directory  adding "cd /private/tmp". This resolved my issue 

Contributor II

Following your example, I've got a pkg mostly working.

The kicks off and launches the GUI which bounces for several minutes. It finally stops bouncing, but the pkg/ never closes out.

New Contributor III

How are you running the script? 

New Contributor III

Here's how im executing the script in Jamf as a policy


# Script to install latest McAfee version from script.
# Should also upgrade any previous software before proceeding.

# Author :
# Version : 1.0 - Initial Version

# Set up log file, folder and function

if [ ! -d "$LOGFOLDER" ];

echo $( date )" - Starting installation of McAfee Agent" > $LOG

# Check to see if function has been called correctly
if [ -z "$1" ]
echo $( date )" - logme function call error: no text passed to function! Please recheck code!"
exit 1

# Log the passed details
echo "" >> $LOG
echo $( date )" - "$1 >> $LOG
echo "" >> $LOG

# Check for existing McAfee agent. Upgrade if present. Full install if not.

logme "Installing McAfee Agent."
cd /private/tmp
/private/tmp/ 2>&1 | tee -a ${LOG}

# Now make the agent check for policies and other tasks

/bin/sleep 30

logme "Checking for new policies"
/Library/McAfee/agent/bin/cmdagent -c 2>&1 | tee -a ${LOG}

/bin/sleep 10

logme "Collecting and sending computer properties to ePO server"
/Library/McAfee/agent/bin/cmdagent -p 2>&1 | tee -a ${LOG}

/bin/sleep 10

logme "Forwarding events to ePO server"
/Library/McAfee/agent/bin/cmdagent -f 2>&1 | tee -a ${LOG}

/bin/sleep 10

logme "Enforcing ePO server policies"
/Library/McAfee/agent/bin/cmdagent -e 2>&1 | tee -a ${LOG}

# Delete script
rm -rf /private/tmp/

#Check-in to JAMF
/usr/local/jamf/bin/jamf recon

#Grab new profiles
/usr/local/jamf/bin/jamf manage

# All done!

logme "Installation script completed"

New Contributor III

In the past I had always just created a pkg and ran the "Install - McAfee Agent" script as a postinstall script all within the pkg.

This time around it does not seem to like that approach.

I was able to get it working by running the "Install - McAfee Agent" from a policy... Just like what you are doing.