You could push out the "detect_installed_32_bit_apps.sh" via a policy to all computers so that it writes the apps to /var/log/32bit_apps_installed.log, then create an Extension Attribute with the following as the EA script:
#!/bin/bash
apps=$(cat /var/log/32bit_apps_installed.log)
echo "<result>$apps</result>"
Then you could obviously create a report based on that once the results are in your inventory.
@amccarty You are the man! That worked perfectly- thanks so much for your help!
How are you creating the report? I am creating a smart group with that EA listed. However I am not getting a list of applications.
I have a script that will dump all locally installed 32bit apps into a CSV on your desktop
here is a gist of it
@amccarty Can you share how you set this up? I'm still new to Jamf and I'm not understanding how you got all of this working.
@kwoodard @Bnikel Hope the steps below help
1. Create the "detect_installed_32_bit_apps.sh" script under Computer Management > Script. The author is Der Flounder. He publishes a lot of useful materials on Apple stuff.
2. Create a computer policy with the "detect_installed_32_bit_apps.sh" script & Update Inventory
3. Create an extension attribute with the input type as Script and copy the script above from @amccarty


so I will say that dumping an entire log to an EA across your fleet is bad, and this is why. Every row in the log is a row in the database, multiplied by the number of clients you have. So, if you have 10 rows in the log, and 2,000 devices that is 20,000 rows in your EA table in the database for just this. The longer the log and the more devices the worse it gets. The jamf pro server is not really a data warehouse.
@tlarkin , how would you modify this too not be so potentially huge?
Thanks for the "how-to" on the report creation. Very helpful.
I would install your entire app catalog on a local system, and run code to report on 32bit apps. Then compound that with communications that end users need to test for their personal apps. Provide a tool to give them the data. Catalina has this built in to search for "legacy apps." If your deployment is small you can get away with shipping data to jamf pro via log or EA, but that does not scale. I don't have any specific numbers to give you, but I will say if you want to ship data and act on it, you should ship data to an actual data tool and not jamf.
If it helps- in my shop I made it clear to all the users that 32 bit Apps would not work in Catalina, and then tweaked rrouton's script so that it placed the list of 32 bit Apps on the user's desktop, and made this available in Self Service, enabling the users to easily check this themselves.
This way I made it the user's responsibility to check there were no apps they needed that would stop working after the upgrade.
You can also check out Legacy Software
in System Profiler

Hi @amccarty @hphan thanks this has been great help. I am new to Jamf Pro and this is my first upgrade cycle.
I have followed the instructions below, however I can’t figure out what criteria to use for the new Computer Smart Group.
I thought I could just select the 32-bit apps EA but then what argument do I use in the operator and value fields?
32-bit apps | is not | ????
!>optional image ALT text](

)
@acekicker77 I take it you're trying to create a group which just adds computers with any 32 bit app installed?
If you leave the operator as "is not" and leave the value blank, all computers with 32 bit apps installed will be added to the group as their "32 bit app" EA record will not be blank in the inventory.
If you're trying to be more specific and find Apps you already know are 32 bit, set the operator as "is Like" and put in part of the app name, e.g "Adobe Application Manager", and it will add any machine with that particular app installed to the group.
a one liner with Spotlight can do this too
mdfind -name "kMDItemContentType = com.apple.application-bundle && kMDItemExecutableArchitectures != x86_64"
RIP Adobe software
Yeah still would not recommend storing each app as an EA on each end point, that won't scale to well
Then it begs the question why they (Jamf) are suggesting this as a course of action?
@shane.brown
Every line of output in an EA is a row of data in the database. You could potentially be putting in dozens, to hundreds of lines per a device into the database. jamf is not a data warehouse, and I have been stating this for years. EAs are a very neat thing, but their design is to tag data attributes to a system, not pull in tons of client data. If you abuse that at scale, you are gonna have a bad time.
@kwoodard, Well, the link from Jamf you posted doesn't propose listing out all the apps on each Mac that are 32-bit. It's designed to return a simple integer of how many apps are 32-bit only, presumably to narrow down a list of Macs for follow up investigation. There's a huge difference between a full list of application names or paths and a single number being stored per device in the database.
From the article...
from here we can do a few things:
- if there are any 32-bit applications found, populate an extension attribute
- create an extension attribute that lists all application titles by comma-separated values
- output a file to the desktop, email it as an attachment, or push the contents to an external destination (such as a Helpdesk ticketing system)
I would love to know how to do this. I do not have a way to install every piece of software onto one computer and run a command to find all the 32-bit applications. I have to many unique boxes with one off software installs that were not installed via Jamf.
Ok, I stand corrected. I did not see that second bullet point when looking it over. It's interesting that the only script they post on the blog entry is the one to list the total number of 32-bit apps though. I wonder what Jamf's position on this is - if for example they really recommend listing out all the apps found or if going with the integer is better. It almost seems like they recommend the latter, but I don't know.
If it were me, I would probably use the integer method, and then do a follow up policy, scoped only to any Macs that show a value greater than 0, that ran a script to list out all the found 32-bit only apps, and perhaps upload them as a plain text attachment to the computer record for download later (using the API)
I guess it depends on how many legacy apps you expect to have, how many Macs you have in your fleet, how old the OSes on them are, and several other factors.
I have run the integer report and remoted into that box and ran the script that lists the titles. Some of my boxes have between 70-90 32-bit applications. I know a lot are pieces of Adobe. Some are old MS Office bits... The rest are a hodgepodge of old one-off applications like Test Gen. I need to get a list of these.
Ultimately, I want to have all of these loaded into Jamf and available via Self Service. My next big hurdle is getting our PC guys to STOP INSTALLING THINGS DIRECTLY onto a users Mac and to use Self Service instead. If something isn't on SS, LET ME KNOW SO I CAN ADD IT! (sorry, got a little carried away there...)
So, jamf is doing a few things here in this article:
- Using Spotlight to do an index search (which I agree with, I use meta data all the time)
- Creating an array of data of app name (but excluding path, or other valuable data)
- Dumping all this data in an EA, which runs at recon on every endpoint
- since it runs at every recon, you are gonna be running this forever until you turn it off
This will not work at scale. EAs are not meant to store data like a data warehouse, they are meant for simple string values, boolean, and integer data sets. As someone who has worked at scale with many jamf environments, this is something I would never recommend.
@tlarkin , what would you recommend then? Without being able to install all apps onto one computer to run this script, how would you proceed? How would you use Jamf to get this data from a large number of machines, where you are unable to physically touch some of them, or have software that has been installed directly on the computer and not uploaded to Jamf? I doubt I am alone with a situation like this.