I have been asked to perform a software audit on approximately 750 computers running XP Pro. I downloaded a program called Winaudit which professes to list applications recorded in the Registry. However not all software manufacturers use the registry fields correctly (or even sensibly) as some applications record a date as the program name, others use the program name field to record 'Update' or 'Hotfix', which is useless. Microsoft unfortunately are one of them!!!
The problem comes when I try to filter out software we're not interested in (like Windows Updates or MS Office, as these are common to ALL of our machines). Visio 2000 for example registers 110 seperate apps in the registry, many with names like 'Forms and Charts', or 'Solutions' or 'Page Layout Wizard', which could refer to a multitude of other software apps. And I need to be able to determine which entries are allowable Freeware, which are Shareware, which are full licence programs etc.
So assuming that the Registry is useless in terms of determining what software is installed on any PC, how else could I do this? I decided to look at just listing the contents of the Program Files folder, but this too is fraught with non-conformity. Some programs have the publisher name as the top level Program Files entry, with the programs themselves stored in sub-folders. Others, like SAS (Statistical Software) install to the C: drives root folder.
It is not possible to draw up a list of 'permissable apps' because we are a university and have departments as diverse as Mechanical Engineering and Geography, Medicine and Art, Maths and History, Law, Physics, Horticulture, so you can see the scope of the problem here.
So my question is this: Does anyone have any idea how I can programmatically query a PC running XP for its installed applications and store that data to a MySQL data table?







0 Comments