Installed Applications - RPM

(imported topic written by cstoneba)

My goal is to be able to create a filter that shows only a certain software package (i.e. BESclient). The issue I am having is that the analysis “Installed RPM Package List- Red Hat Enterprise Linux” and “Installed RPM Package List - SuSE Linux Enterprise” has a seperate property for each server version and architecture. The way it stands now, I would need to create a filter and have a an entry for each property of the 2 analyses (about 100 different properties). Does anyone have a workaround, or a better way to do it?

I already have a single analysis that pulls back the installed applications for Win, AIX, and Sun (all within a single property).

(imported comment written by BenKus)

Hey cstoneba,

What format are you looking for? like a custom report that you can search for an installed app?

Do you have DSS SAM installed?

Ben

(imported comment written by cstoneba)

yes, a custom report. Right now for Windows, I am going into webreports > Explore Data > computers, then creating a filter using the retrieved property “Installed App - Win, AIX, Sun” that I created, specifing only certain apps. I would like to have another rp that I can speicify the apps for all the others LInux OS.

By applying this filter to and selecting the column “Installed App - Win, AIX, Sun” in the computer list, I can then show which assets have which of my specific applications installed.

No, we do not have DSS SAM.

(imported comment written by BenKus)

Are you looking for a report like this?

http://forum.bigfix.com/viewtopic.php?id=884

Ben

(imported comment written by cstoneba)

no, because this report doesn’t show which computers have the specified application installed.

(imported comment written by MattBoyd)

I have a custom report that does exactly what you want… but only for Windows applications at the moment. When I get some time I’ll try to figure out how hard it would be to add in different platforms, which is something I wanted to do anyway.

(imported comment written by cstoneba)

I created a single retrieved property that works for Win, AIX, and Sun, but I need it (or a second one) to do all SuSE and all Redhat.

If (name of operating system as lowercase contains “win”) then (unique values of ((if (exists value “DisplayName” of it AND exists value “DisplayName” of it as string) then (value “DisplayName” of it as string) else ( “” )) & (if (exists value “DisplayVersion” of it) then ( " | " & value “DisplayVersion” of it as string) else ( “” ))) of keys whose (exists value “UninstallString” of it AND not exists value “SystemComponent” of it AND (it does not contain “Hotfix” AND it does not contain “Security Update for” AND it does not contain “Update for” AND it does not contain “Security Update for Windows” AND it does not contain “Update for Windows” AND it does not contain “Security Update for Microsoft” AND (length of it > 0) AND (number of substrings " " of it < length of it)) of (value “DisplayName” of it as string)) of key “HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall” of registry) else if (name of operating system as lowercase contains “aix”) then (unique values of names of products of object repository) else if (name of operating system as lowercase contains “sun”) then (unique values of params “PKGINST” of pkginfos of pkgdb) else “OS not supported”

(imported comment written by SystemAdmin)

for RHEL (and possibly Suse) you could add ‘packages of rpm’ or, for a bit less info ‘names of packages of rpm’

(imported comment written by cstoneba)

That would work, but if you have the Linux RPM Patching site loaded, take a look at the analysis “Installed RPM Package List - SuSE…”. As you can see, they have a seperate property per SLE version and architecture. What is that? How can I get all these properties merged into a single property?

(imported comment written by NoahSalzman)

Just copy the SuSE stuff from the analysis and make them more “else if” conditions on your property… right?

(imported comment written by cstoneba)

i suppose, but like i said above, there are some 100 different properties that make up the SuSE and RedHat properties. It seems very time consuming, i was just thinking there must be an easier way.

(imported comment written by Kenz91)

Boyd

Want to share the Windows one ?

(imported comment written by MattBoyd)

I can’t get the compressed archive to attach, so here it is: Iboyd Lån Uten Sikkerhet | Kredittlån 2021

It borrows some relevance from Zak’s Installed Application Audit web report, which isn’t really maintained anymore (that I know of). Here’s how to set it up:

Prerequisite: You must activate the analysis “Application Information (Windows)” from the BES Inventory and License site.

  1. Extract the files from the archive.

  2. Copy the CUSTOM folder to INSTALLDIR\BesReportsServer\wwwroot\Javascript. In my case, this is c:\Program Files (x86)\BigFix Enterprise\BES Server\BESReportsServer\wwwroot\JavaScript.

  3. Log into web reports and import Application Search v1.1.beswrpt (http://:52312/webreports?page=ImportReport)

  4. Browse to the report and test it.

Here’s what it’s supposed to look like:

Clicking on an application entry in the table should bring up a dialog that lists all of the computers that have that particular application (and specific version) installed. Results can be exported to PDF, Excel, or the Clipboard. The report works best in Chrome of Firefox, but should work just fine in IE for those that enjoy self-inflicted pain and suffering :stuck_out_tongue:

The “Remove invalid characters” checkbox is there in case you’re running a version of Web Reports that wasn’t handling special characters properly (fixed in the latest version). If you get a Javascript error while performing a search, try checking that box. It does significantly slow down the query.

I’m looking for feedback, so if you have suggestions on how to improve this, I’d love to hear them.

(imported comment written by cstoneba)

this is cool, but again not really what I’m looking for. I want a report of somesort that I can say “show me computers that have Firefox, Java, and Adobe 9” and I will get a list of all those clients, regardless of OS.

(imported comment written by MattBoyd)

Hey cstoneba,

I realize that report isn’t really what you were looking for… I posted it because Kenz asked. Sorry about the thread-jack.

Here’s some session relevance I had in mind to get you started…

(names of items 0 of it, values of results(item 0 of it, item 1 of it)) of (bes computers, bes properties whose (name of it starts with “RHEL” and name of it ends with “Package List”))

EDIT: That’s way too inefficent. Good luck getting that to run without timing out. Here’s better query:

(names of items 0 of it, values of results(item 0 of it, item 1 of it)) of (bes computers whose (operating system of it as lowercase starts with “linux”), bes properties whose (name of it starts with “RHEL” and name of it ends with “Package List”))

(imported comment written by BenKus)

Here is an optimization trick… Reversing the tuple order should make it faster:

(names of items 1 of it, values of results(item 0 of it, item 1 of it)) of (bes properties whose (name of it starts with “RHEL” and name of it ends with “Package List”), bes computers whose (operating system of it as lowercase starts with “linux”))

The reason for this is that way that tuples are evaluated, the items in the tuple are evaluated left to right so if you put your property lookup first, then it won’t need to be evaluated for each computer…

Ben

(imported comment written by MattBoyd)

Thanks Ben, that really good information to know. I also realized that empty results (“N/A”) were being included, so I added some relevance to account for that:

(names of items 1 of it, values whose (it != “N/A”) of results(item 0 of it, item 1 of it)) of (bes properties whose (name of it starts with “RHEL” and name of it ends with “Package List”), bes computers whose (operating system of it as lowercase starts with “linux”))

(imported comment written by cstoneba)

boyd, it looks like your report (which is pretty cool I may say) only works with analyses that are in the site “BES Inventory and License”, correct?

(imported comment written by MattBoyd)

Yes. It’s only retrieving the results of the first property of the Application Information analysis. I prefer to use the analysis properties that BigFix provides whenever possible, but that doesn’t mean that you have to.

It wouldn’t be hard to customize the relevance (it’s in the JavaScript portion of the code) to reference a different analysis/property. As long as the results are in a similar format, it shouldn’t break the report. It should be easy to either add the Linux RPM info into this existing report, or create a “copy” of this report and modify the relevance to return Linux RPM results.

(imported comment written by cstoneba)

if I wanted it to work for my custom analyis “Installed Apps - Win, AIX, Sun” (ID=00-6075"), how would I do it? I tried tweaking lines 149, 152, 220, & 220 but no luck - “Error retrieving results: Singular expression refers to nonexistent object.”