Show only installed applications with deploy package and CLI question
Hello, I've recently hired on as a service desk representative and the company I work for is using the enterprise version of your product so I thought I'd start familiarizing myself with it more. I've already tried looking around for an online answer to these questions but haven't had any luck so I thought I'd try the forums. When I get back into the office I'll also play around a little to see if I can figure it out myself but I thought it couldn't hurt to also ask on the forums.
My first question is that when I bring up a computers list of installed applications how would I filter the results so that only the applications that have a corresponding PDQ Deploy package are shown? The filter would also need to be version insensitive. To clarify on this if my organization does not have say a PDQ Deploy package in use for an application like WinRAR but it is installed on a computer how would I exclude the listing for packages like that from the computers report on installed applications? Or if my organization has a deploy package for Mozilla Firefox 83.0 and the user has Mozilla Firefox 87.0 it would still show Mozilla Firefox.
And my second question relates to the PDQ Inventory CLI. Maybe it's because I'm still picking up on PDQ Terminology but I've been having difficulty identifying what the functions are of some CLI commands. I'm specifically looking for the PDQ Inventory command that can bring up the collection of installed applications for a specific computer.
Big thanks to anyone who can point me in the direction to getting these questions answered.
Comments
There's nothing that will do that natively. One way to get close is to look at the Collection Library collections the computer is a member of. There are a few Package Library packages that don't have a corresponding collection, but not many. I included a report at the bottom of this message. Save it as an XML file and import it.
That would be fairly difficult to accomplish. Inventory can't read Deploy's database like that, so you would have to retrieve the data from their databases and process it yourself with something like PowerShell. Also, application names don't always precisely match package names, so you're going to have a lot of edge cases to work around. If you want to give it a whirl, my PowerShell module named PdqStuff may help: https://www.powershellgallery.com/packages/PdqStuff
The Help command gives a REMARKS section for some commands. If you have questions about a command that doesn't have a REMARKS section, I'll gladly try to explain it.
Are you looking for a list of installed applications, not a Collection? If so, there's no command for that. I recommend running the Applications report and exporting the result (Save Data to File). You can even do that automatically with an Auto Report if you want.
Thank you for the detailed response. I was thinking it's likely that I'd have to read the database directly and do some processing in a scripting language to achieve that result but wanted to see if there happened to be a native implementation already. I'll look more closely into where exactly our database is stored as I've been able to find the backups on a network share but have not yet located the current database file.
From what I've seen of our current company's workflow with PDQ there is a lot of room for improvement so I'm just probing for the best path to take. When I last needed to deploy additional packages to a recently imaged computer for a software developer a coworker had me look them up in active directory, find their manager in Organization, look for another employee under that manager, look up that employees application report, and work through identifying what additional packages they had that PDQ could readily deploy.
It sounds like I'm going to want to create nested deployments based on job titles to streamline the process but it doesn't look like any groundwork has been laid for that yet. So I'm hoping to ease the burden a little bit by scripting the above process to be able to generate a list of suggested packages to deploy for a newly encountered job title.