MeshCentral icon indicating copy to clipboard operation
MeshCentral copied to clipboard

Feature Request: List installed Software

Open ghplw opened this issue 5 years ago • 19 comments

As well as retrieving hardware information it would also be great to be able to list all the installed software and versions with a log that shows when software is added, updated or removed and the option to provide alerts on these changes.

ghplw avatar Jul 31 '19 14:07 ghplw

Good request. Bryan needs to add support for this in the MeshAgent.

Ylianst avatar Jul 31 '19 15:07 Ylianst

Along with this it would be extremely beneficial if it could also pull/track the licensing info for those applications that let you see it (for software tracking/auditing purposes).

PathfinderNetworks avatar Aug 01 '19 00:08 PathfinderNetworks

I think pulling licensing would be difficult as there is no standard way of doing this and a lot of software is cloud based licensing now. My understanding of the scope of MeshCentral (at least at this time) is to focus on getting information and tools for support, troubleshooting and maintenance rather than managing software deployments and licensing.

That said, once the bulk scheduled scripting components are implemented you could use that functionality to automatically pull that information for the apps you use and push that out to a file or even an online database.

ghplw avatar Aug 01 '19 03:08 ghplw

Agreed that there is no standard way to get license information. Bryan has been looking today at getting installed software list on Windows and he made progress on that. Once in the agent, there is plenty of server-side work required.

Ylianst avatar Aug 01 '19 05:08 Ylianst

Oh YES! much greatly appreciated feature, I would love to see what these users add to their system and keep up with it.. So much excellent work is going on

johnnyq avatar Aug 02 '19 19:08 johnnyq

Yes, that is coming. I think Bryan added this to the agent for Windows.

Ylianst avatar Aug 02 '19 21:08 Ylianst

This would be a great feature addition. If possible, some reporting features that may be helpful.

  1. List all software per computer in a group
  2. Same as first one but only show software installed in the past x days
  3. Option to email report to admin, group managers or both.

openmoto avatar Sep 23 '19 17:09 openmoto

I'll appreciate this option very much

leleb avatar Nov 19 '19 20:11 leleb

Going briefly back to the concept of pulling licencing info, that sounds like a great idea for a plugin once that API becomes more complete. I wonder what the feasibility of having plugins depend on each other is. @ryanblenis: Could there be a License Information plugin that provides the core licence tracking functionality, then have separate plugins to gather the actual license information from each of e.g. MS Office, Adobe Creative Cloud, etc. that depend on it to present the info they've gathered in the web UI?

And going back to the topic at hand:

I think Bryan added this to the agent for Windows.

@krayon007: Is this accurate? Is the agent already able to acquire the list of installed software? or is this still a planned future development?

MailYouLater avatar Nov 20 '19 19:11 MailYouLater

As it is currently implemented, plugins can access any MeshCentral properties, such as the MongoDB instance and collections, NeDB instances, etc. (Hence they can create, store, and share data at the lowest level). They can also communicate by utilizing the same callHook functionality that the core MeshCentral files have. callHook is basically an emitter that checks for the existence of a hook in all the installed plugins, then runs them with whatever parameters or data is included in the call- so this would be an optimal way for plugins to interact with each other. So yes, this type of interactivity is entirely possible.

ryanblenis avatar Nov 20 '19 19:11 ryanblenis

Technically this can be closed as MeshCentral focuses on remote access and not Remote Monitoring and Management of Devices. An RMM tool such as the Free and Opensource TacticalRMM or paid Non Free Or Non Opensource NinjaRMM etc should be used instead paired with MeshCentral for Remote Access.

If this solution works for you @ghplw can you please close this, as I don't have the option to.

johnnyq avatar Feb 16 '22 21:02 johnnyq

I, respectfully, disagree. I would like to see more RMM type features added to MeshCentral. More than just remote access. It's already grown well beyond a simple remote access tool.

PathfinderNetworks avatar Feb 16 '22 23:02 PathfinderNetworks

I see what you mean and your right, its always good to have some opensource competition in the RMM side as well

johnnyq avatar Feb 17 '22 00:02 johnnyq

@krayon007: Is this accurate? Is the agent already able to acquire the list of installed software? or is this still a planned future development?

Apparently I never updated the discussions on this, but yes, this functionality has been in the agent for a while, at least on windows. Its just not in the web ux.

The easiest way to see the data, is to go to the console tab, and run the command: eval "require('win-info').installedApps().then(function (apps){sendConsoleText(JSON.stringify(apps,null,1));});"

Just note that in the current released agent, this command actually doesn't work, becuase of the previous bug where the agent is displaying "0" in stdout, which is causing the JSON to get corrupt with this particular command. But once we release an agent update to address that, (and a few other things), this command will work correctly, as I already verified it with the agent on my dev machine.

I'll probably add a console command, so that you can more easily access this information, without having to run it with an eval.

krayon007 avatar Feb 17 '22 22:02 krayon007

Just note that in the current released agent, this command actually doesn't work, becuase of the previous bug where the agent is displaying "0" in stdout, which is causing the JSON to get corrupt with this particular command. But once we release an agent update to address that, (and a few other things), this command will work correctly, as I already verified it with the agent on my dev machine. I'll probably add a console command, so that you can more easily access this information, without having to run it with an eval.

Hi! Is the updated agent available? Thanks!

pscrespo avatar Jun 30 '22 14:06 pscrespo

@pscrespo if you go into the console of any remove device, copy+paste in the command from @krayon007 it returns data but shows an error for some reason? my agent is Mar 25 2022, 2986635969

>  eval "require('win-info').installedApps().then(function (apps){sendConsoleText(JSON.stringify(apps,null,1));});"
Command returned an exception error: TypeError: cyclic input
[
 {
  "name": "Microsoft Office Home and Business 2019 - en-us",
  "version": "16.0.15225.20288",
  "location": "C:\\Program Files\\Microsoft Office"
 },
 {
  "name": "Mesh Agent",
  "location": "C:\\Program Files\\Hestor Ltd\\Mesh Agent\\"
 },
 {
  "name": "Mozilla Firefox (x64 en-GB)",
  "version": "93.0",
  "location": "C:\\Program Files\\Mozilla Firefox"
 },
 {
  "name": "Mozilla Maintenance Service",
  "version": "93.0"
 },
 {
  "name": "Intel(R) Network Connections 23.4.0.19",
  "version": "23.4.0.19",
  "location": "C:\\Program Files\\Intel\\Wired Networking\\"
 },
 {
  "name": "Microsoft Visual C++ 2013 x64 Additional Runtime - 12.0.40664",
  "version": "12.0.40664"
 },
 {
  "name": "VLC media player 3.0.16 (64-bit)",
  "version": "3.0.16.0",
  "location": "C:\\Program Files\\VideoLAN\\VLC\\"
 },
 {
  "name": "Microsoft Visual C++ 2010  x64 Redistributable - 10.0.40219",
  "version": "10.0.40219"
 },
 {
  "name": "7-Zip 19.00 (x64 edition)",
  "version": "19.00.00.0"
 },
 {
  "name": "Microsoft Visual C++ 2012 x64 Additional Runtime - 11.0.61030",
  "version": "11.0.61030"
 },
 {
  "name": "Microsoft Visual C++ 2013 x64 Minimum Runtime - 12.0.40664",
  "version": "12.0.40664"
 },
 {
  "name": "Microsoft Visual C++ 2008 Redistributable - x64 9.0.30729.6161",
  "version": "9.0.30729.6161"
 },
 {
  "name": "Intel(R) Network Connections 23.4.0.19",
  "version": "23.4.0.19",
  "location": "C:\\Program Files\\Intel\\Wired Networking\\"
 },
 {
  "name": "Google Chrome",
  "version": "103.0.5060.66"
 },
 {
  "name": "Office 16 Click-to-Run Licensing Component",
  "version": "16.0.15225.20288"
 },
 {
  "name": "Office 16 Click-to-Run Extensibility Component",
  "version": "16.0.15225.20150"
 },
 {
  "name": "Office 16 Click-to-Run Localization Component",
  "version": "16.0.14131.20278"
 },
 {
  "name": "Local Administrator Password Solution",
  "version": "6.2.0.0"
 },
 {
  "name": "HotDocs Player 11 (64bit)",
  "version": "11.210.7257",
  "location": "C:\\Program Files (x86)\\HotDocs\\"
 },
 {
  "name": "Microsoft Visual C++ 2022 X64 Minimum Runtime - 14.31.31103",
  "version": "14.31.31103"
 },
 {
  "name": "Microsoft Visual C++ 2022 X64 Additional Runtime - 14.31.31103",
  "version": "14.31.31103"
 },
 {
  "name": "Microsoft Visual C++ 2005 Redistributable (x64)",
  "version": "8.0.61000"
 },
 {
  "name": "Microsoft Visual C++ 2012 x64 Minimum Runtime - 11.0.61030",
  "version": "11.0.61030"
 },
 {
  "name": "Local Administrator Password Solution",
  "version": "6.2.0.0"
 }
]

si458 avatar Jun 30 '22 15:06 si458

That error is normal, as when you use an eval, the webui just tried to serialize the object. In this case the object returned has a back pointer on one of the child objects pointing to the parent, which the built in Json serializer doesnt like, which is why it says it has a cyclic reference. I'll add a console command that can be de done server side, that you'll be ae to use right away, until the the ui can be updated to reflect some of the new telemetry that can be acquired

krayon007 avatar Jun 30 '22 20:06 krayon007

I'll also look into filtering that particular exception from the eval response, so it doesnt freak people out

krayon007 avatar Jun 30 '22 20:06 krayon007

Hi! Silly me, I quoted another part of the message. I was referring to the console command, without "eval". Edited the original message to add that quote. About the "eval", it works. Thanks!

pscrespo avatar Jul 04 '22 12:07 pscrespo

added installedapps to console for windows - https://github.com/Ylianst/MeshCentral/commit/12c3e4ee53a6a8a4108e9a7946d6df60dcd7a280

si458 avatar Nov 09 '23 18:11 si458