MeshCentral
MeshCentral copied to clipboard
Feature Request: List installed Software
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.
Good request. Bryan needs to add support for this in the MeshAgent.
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).
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.
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.
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
Yes, that is coming. I think Bryan added this to the agent for Windows.
This would be a great feature addition. If possible, some reporting features that may be helpful.
- List all software per computer in a group
- Same as first one but only show software installed in the past x days
- Option to email report to admin, group managers or both.
I'll appreciate this option very much
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?
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.
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.
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.
I see what you mean and your right, its always good to have some opensource competition in the RMM side as well
@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.
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 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"
}
]
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
I'll also look into filtering that particular exception from the eval response, so it doesnt freak people out
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!
added installedapps to console for windows - https://github.com/Ylianst/MeshCentral/commit/12c3e4ee53a6a8a4108e9a7946d6df60dcd7a280