If you need to check what software is installed on a Windows computer, you can open the Add/Remove Programs view of the Control Panel (it is also known as Programs and Components view on the latest versions of Windows). It displays a list of installed applications and updates and provides you with a useful information about software vendor, installation date, installation size and other data. In general this information is good enough to analyze installed software if you like to know just a list of installed applications. When network administrators or auditors perform a software audit they use this view to get a list of installed programs on a computer. Unfortunately the Add/Remove Programs view doesn’t allow to export data to a file, so software auditors usually fill audit forms manually using the information displayed on the screen.
It is very convenient to use the Add/Remove Programs view to see a list of installed software on a computer, but if you need to audit many computers, it doesn’t sound like a good idea, because the manual forms feeling using displayed information can take several weeks in a large organization. Is there a way to optimize this? Fortunately there are solutions that can automate collecting of software inventory information from computers across an organizations. Nowadays almost all computers are collected to the local network, so it is possible to connect software inventory information remotely over a network.
If you need to collect inventory information from a local or remote PC, you can consider using Windows Management Instrumentation (WMI). WMI is the infrastructure created by Microsoft for management data and operations on Windows-based operating systems. It can be used to supply management data, including software inventory information, to other parts of the operating system and external systems. WMI is designed for programmers who use C/C++, the Microsoft Visual Basic application, or a scripting language that has an engine on Windows and handles Microsoft ActiveX objects. If you are familiar with any scripting language you can write a script that can collect a list of installed programs from a remote PC and write it to a file. You can run this script for every computer in your network and get a complete software inventory database.
What are limitations of using WMI? First of all WMI is not a tool, it’s a programmer interface, so if you don’t have good programming skills, it will be hard to write a script that uses WMI. Also when WMI is used to extract data from remote PCs it relies on a special network infrastructure that should be configured on a proper way. Unfortunately this infrastructure is disabled by default starting from Windows Vista, so before you can run WMI scripts, you need to enable it in your network. Except of this WMI technology doesn’t have weak spots, so you can use it to extract any available hardware and software inventory information.
If you are not a technical geek who can quickly understand WMI program interfaces and write a script that can extract a list of installed programs from remote PCs, you can follow a traditional way and look for a software inventory tool. Some of inventory tools are commercial, some are free. There are tools targeted at software audit only, others are targeted at wider scope of computers inventory. If you are looking for a freeware solution for software audit, you can try EMCO Network Software Scanner. This tool allows collecting software inventory information from network PCs into a centralized database, so you can review collected data and export them to a file. It also provides functionality to track software changes and detect applications and updates that were installed and uninstalled in a time period between to software audits. EMCO Network Software Scanner can be used free of charge for personal and commercial purposes and it doesn’t have any limitations for a size of network that can be audited.