Skip to main content

Hey everyone,



I need to get a list of installed software on our ends users' macs .. the way I know of is by going to computers in Jamf Pro dashboard => Search => Export => I choose the file type => Applications then I get a list of software installed but this one also contains the build-in apps like Weather, Calendar .. etc



I can filter it myself but thought to ask and see if there are better ways to get what I want.



Thanks in advance

Hey MacJunior,


Bit late to this thread but if you want the specific users' applications a good way to do this would be using an API call.


If you use a GET request you can fetch the Mac user and inventory data and organize the response in a legible way (usually I prefer to do Json format). You can also filter the grouping of this data by user department or position for further legibility.


The API endpoint I've used within PowerShell in the past specifically for this has been:


$UserPosition = "position" //Specify which position to look for users in.

$YourJamfURL = "yourjamf.jamfcloud.com"
$endPoint = "api/v1/computers-inventory?section=USER_AND_LOCATION&section=APPLICATIONS&section=HARDWARE&page=0&page-size=150&sort=general.name%3Aasc&filter=userAndLocation.position%3D%3D%22$userPosition%22"

$fullUrl = "https://$YourJamfURL/$endpoint"

$ApiResponse = Invoke-RestMethod -Uri $fullUrl -Headers @{Authorization = "Bearer $apiToken"; accept = "application/json" } -Method Get //This will return a PSCustomObject that is segmented the same way in which the json file is laid out.

Please note you need to verify your Jamf API user credentials and generate an access token to make the GET request.


Hey MacJunior,


Bit late to this thread but if you want the specific users' applications a good way to do this would be using an API call.


If you use a GET request you can fetch the Mac user and inventory data and organize the response in a legible way (usually I prefer to do Json format). You can also filter the grouping of this data by user department or position for further legibility.


The API endpoint I've used within PowerShell in the past specifically for this has been:


$UserPosition = "position" //Specify which position to look for users in.

$YourJamfURL = "yourjamf.jamfcloud.com"
$endPoint = "api/v1/computers-inventory?section=USER_AND_LOCATION&section=APPLICATIONS&section=HARDWARE&page=0&page-size=150&sort=general.name%3Aasc&filter=userAndLocation.position%3D%3D%22$userPosition%22"

$fullUrl = "https://$YourJamfURL/$endpoint"

$ApiResponse = Invoke-RestMethod -Uri $fullUrl -Headers @{Authorization = "Bearer $apiToken"; accept = "application/json" } -Method Get //This will return a PSCustomObject that is segmented the same way in which the json file is laid out.

Please note you need to verify your Jamf API user credentials and generate an access token to make the GET request.


Forgot to mention that this query returns the applications data for ALL specified users within the position.


 


Additionally I made a typo, "$userPosition" variable should actually be "$UserPosition".


Reply