Number of time products are installed on a list of computers

I'm looking for a solution (in powershell for exemple) to retrieve a list of installed product, and how many time each products is installed over a list of computers, then show the result in a csv report file.

The idea is to pass a list of computers (it should be an important list) to the script, then, the script "scan" all computers in that list, and finally show me how many times all detected products are installed. And bonus, at the end of report, if possible, the number of computers scanned and the numbers offline.

Is that possible through powershell ? Or is it any existing free tool able to perform such task ?