How To: Inventory Software in System Center Configuration Manager (SCCM)


System Center Configuration Manager (SCCM) allows an enterprise to manage and deploy applications to all devices in their environment. The product is incredibly powerful and has an astonishing array of features, ranging from endpoint security to application deployment and patching. Among these features, Microsoft also markets software inventory as a provided feature.

In our sales conversations, many enterprises ask us how SCCM’s inventory features stack up against StacksWare. We were asked the question so often in fact that we decided to write a blog post to show you exactly how to inventory in SCCM and how the data compares to StacksWare’s data.

TLDR: SCCM does an excellent job of deploying applications but the product was never designed with software inventory in mind. Our recommendation is to deploy your applications with SCCM and use StacksWare to track how those applications are utilized to cut license costs and defend against potential audits.

How To: Inventory Software in System Center Configuration Manager (SCCM)

Step 1: Navigate to the your Client Settings

Open the Configuration Management Console application on your site server. Navigate to Administration → Overview → Client Settings and select the client policy that you want to edit. For simplicity, we edited the Default Client Settings policy.

Step 2: Edit the Client Policy to Include Inventory

Strangely enough, Microsoft includes the installed application and running process data for client machines in the Hardware Inventory section. The Software Inventory section is used mostly for metering and tracking specific files.

When you open the client policy to edit, navigate to the Hardware Inventory subtab. Set the “Enable hardware inventory on clients” setting to “True” and save the policy. Optionally, you can configure a scheduled period for when new hardware inventory is collected from these machines (i.e. twice per day, once per week, etc).

Step 3: Manually Refresh the Policy from the Client Machine

Next, we need to manually refresh this policy on a client machine. Navigate to a client machine and open the Configuration Manager application. Select the Actions subtab and run the “Machine Policy Retrieval & Evaluation Cycle” action. Depending on the current resource utilization of the client machine, this could take a few minutes to update.

Step 4: Run the Hardware Inventory

After the policy updates, run the “Hardware Inventory Cycle” action. Then, wait a few more minutes for the client to push data to your site server.

Step 5: Analyze the Hardware Information from the Client Machine

Open the Configuration Manager Console again on the site server. Navigate to Assets & Compliance → Overview → Devices → Target Machine, where “Target Machine” is the configured client computer. View the collected information for that machine by right-clicking the target device → Start → Resource Explorer.

Step 6: View the Inventory Information for that Device

When you open the Resource Explorer for that device:

Expand Hardware → Installed Applications to view the installed application list for that machine. This information mirrors the information that you would expect to see in the Add & Remove Programs section for the machine.

Expand Hardware → Recently Used Applications to view the latest running processes for that machine

Step 7: Check Back in Later

Depending on the interval you specified in step 2, check back in to the Resource Explorer to see how your target machine has changed. New installed applications or running applications will appears as deltas in the Hardware History tab for the device. In the following image, no applications have been added since the previous scan.

Comparing SCCM Data to StacksWare Data

Now that we have basic inventory setup in SCCM, let’s see how the data we just collected compares to StacksWare.

Point 1: SCCM Does Not Inventory Applications in Real-time

What you will first notice is that SCCM information is not real-time. Inventory information is updated on a scheduled interval that (often for performance reasons) should rarely exceed a few times per day.

StacksWare is designed to act reactively to application changes. As a result, all application changes are pushed to our cloud service within 15 seconds of an application launch without causing any performance issues on the target machine.

Point 2: SCCM Does Not Rationlize Running Processes or Installed Applications

For running processes: SCCM does not “clean” the raw process information that is sent to the management server. Ambiguous process names such as sqlserver.exe (SQL Server) or vmtoolsd.exe (VMware Tools) are not automatically associated with their corresponding applications and vendors. IT administrators using SCCM would still need to sift through the data and manually determine whether certain processes belong to an application like Microsoft Word or Excel.

For installed applications: Installed applications such as “Update for Microsoft Visual Studio 2015” are reported when they are actually meaningless applications that IT administrators rarely need to manage. Oftentimes, these installed applications clutter the inventory reports and make it more difficult to interpret the data.

With StacksWare, all meaningful processes and installed applications are mapped automatically to their corresponding vendor and application. Unknown or irrelevant applications are immediately hidden from view.

Point 3: Analyzing Historical Information is Difficult (If Not Impossible) with SCCM

SCCM does not provide a way to analyze software usage trends for certain workstations or users. A site server only provides metering information for devices at a particular moment in time. You cannot easily view aggregate statistics for device collections (e.g. total application launches, total user counts, application version distributions) without writing complex WQL queries.

StacksWare allows users to easily navigate historical application usage trends. For example, you can determine when Microsoft Word is most used throughout the day or identify version distributions of processes and installed applications across your enterprise.

You can also perform workflows to determine which users have not used expensive applications like CAD or Microsoft Office and machines that have unused applications installed.

The Takeaway from SCCM and StacksWare Data

SCCM does an excellent job of deploying applications but the product was never designed with software inventory in mind. Our recommendation is to deploy your applications with SCCM and use StacksWare to track how those applications are utilized to cut license costs and defend against potential audits.

Learn More

Contacts us at for more information or request a demo.