Getting software vendor for App

dlondon
Valued Contributor

Is there a way to get Software Vendor info for different App's installed?
All I can think of is writing an extension attribute that checks the vendor for a particular App. 

Is there somewhere that this info is already being collected?

4 REPLIES 4

Anonymous
Not applicable

I cannot remember the URL, but as far, as I know, there should be a list at apple developers. 

dlondon
Valued Contributor

That's not quite what I meant.  Was trying to see if Jamf records the vendor info.  Apparently not.

Looks like I need to do some Extension Attributes.

As an example Notes.app might be made by Apple or Lotus so we need to differentiate the two

AntMac
Contributor

I've not come across anything in my travels in the JAMF Pro GUI that has this information natively displayed. My understanding is that API only supports App commands for items pushed from Mac Apps. More than happy to stand corrected if anyone else is aware of a way to do this. 

Maybe if you had an EA that pulled the bundle ID since that should have a vendor reference in it? 
eg

bash-3.2$ osascript -e 'id of app "Notes"'

com.apple.Notes

Which ever way you go please do post back if you get it sorted? This is something I've been curious about as well and Bundle ID is the only way I've found. 

dlondon
Valued Contributor

Yes - I have a couple of methods running.  My Jamf Success manager  suggested both the use of the mdls command and defaults command.  I have used defaults before but the mdls command looked a lot cleaner.  Here's some examples:

#!/bin/bash
# eaDeveloperNotes.app.bash
# 2022-06-27 David London
# Tries to determine Developer of Notes.app

if [ -d /System/Applications/Notes.app ]; then
    Developer=$(mdls -name kMDItemCopyright /System/Applications/Notes.app/ -raw)
    /bin/echo "<result>"$Developer"</result>"
elif [ -d /Applications/Notes.app ]; then
    Developer=$(mdls -name kMDItemCopyright /Applications/Notes.app/ -raw)
    /bin/echo "<result>"$Developer"</result>"
else
   /bin/echo "<result>NA</result>"
fi

Notes is an odd one as depending on the OS it's either in /Applications or /System/Applications

 

#!/bin/bash
# eaDeveloperUnity.app.bash
# 2022-06-27 David London
# Tries to determine Developer of Unity.app
# For some reason mdls produces null result for unity so will try using defaults as I tested that on a machine that gave null for mdls and I can get useful info now

if [ -d /Applications/Unity/Unity.app ]; then
    #Developer=$(mdls -name kMDItemCopyright /Applications/Unity/Unity.app -raw)
   Developer=$(defaults read /Applications/Unity/Unity.app/Contents/Info.plist CFBundleGetInfoString | cut -d' ' -f5-)
     /bin/echo "<result>"$Developer"</result>"
else
   /bin/echo "<result>NA</result>"
fi

 My intention is to have cleaner output when I am confident that results are accurate.  For example Apple as result instead of Copyright © 2011–2019 Apple Inc. All rights reserved.

The reason I am trying this for a small group of app's is that we are feeding the jamf inventory and the sccm inventory into ServiceNow to have a complete picture in one system.  That picture not only includes hardware but software.  Licensing and Software Purchasing is always a hard thing to get info on and so accurate info on installed software will help the people doing that.  They will be able to see whether block purchases make more sense or even site licenses.  Some app's that have the same name but different vendors can be identified by path but not always.  I wanted a plan B to offer so they could get the info they want without much extra work.