C# get a list of programs instatlled on a remote machine (Add/Remove Programs)?
Posted on 2014-11-27
I am looking at a good way I can interrogate remote machines to work out what software is installed
in Add/Remove programs via C#.
The issue is the various methods return different results.
Some people say don't use Win32_product. Some were saying this is bad for performance.
However the other methods don't seem to return the correct count.
Here are some interesting results....
Add/Remove control panel applet - 108 programs installed
Now compare this to the various methods:
select * from win32_product - 186 items.
select * from Win32reg_AddRemovePrograms - 71 objects.
select * from Win32Reg_AddRemovePrograms64 - 71 objects.
So why is there such a variance - I would of thought they should be *exactly* the same if not
What are other peoples thought on the best method?
Why such a variance?
If I don't mind a performance hit is there anything wrong with using Win32_product?