By Garth Jones
Most MVPs will tell you, including myself, to avoid using Configuration Manager’s Software Inventory. In fact, I recommend turning it off altogether!
There are many reasons why, including:
· Software Inventory (SW inv) is extremely slow in ConfigMgr 2012 and later; in ConfigMgr 2007 it also caused performance issues.
· SW inv only collects the file header details for each file, so it really should be called file inventory.
· After 4-hours of run-time execution, SW inv will simply “exit out” and return NOTHING to ConfigMgr; thereby making any results within ConfigMgr questionable at best.
· While SW inv is executing no other inventory task can take place, i.e. no hardware inventory or heartbeat discovery data.
If you MUST have it enabled, I recommend changing the schedule to configure SW inv to run no more than every 14 days. That might seem counterintuitive, but it isn’t because most people, unknowingly, use the results from Hardware Inventory, not SW inv, for their collections and reporting needs.
Not long ago, I wrote a blog post called, Configuration Manager and Software Inventory: Proceed with Caution. In that blog post, I showed how to configure SW inv in the best possible way and only inventoried iexplore.exe within two directories!
How do you determine the length of time SW inv. will take on a computer?
The simplest way is to start the SW inv scan while you are working on a computer. Continually review the InventoryAgent.log until the SW inv scan is complete.
Below I will show you how long it took SW inv to complete its scan of only two files on my computer.
Start by ensuring that you have CMtrace configured to read log files on your computer. Next, open the control panel. Click on the System and Security link and then click on the Configuration Manager control panel applet link. Select the Actions pane and then select the Software Inventory Cycle item. On the lower right-hand side click on the Run Now button and finally click on the OK button in the pop-up window.
Browse to C:\Windows\CCM\Logs and double-click on InventoryAgent.log. This action will open the log file with CMtrace. If the log file does not open in CMtrace, open CMtrace and browse to the file instead.
Most of the time your log file should look similar to the one below. Notice the start time (purple arrow) and the initialization time of 0.062 seconds (red arrow). In my opinion, this amount of time is good. Also notice the green arrow. This information tells me that I’m looking at Software Inventory and not one of the other inventory tasks.
As I write this, at least 30 minutes have elapsed after the last line in the log file.
What is SW inv doing? In short, it’s waiting. It is waiting for the system to not be busy. How can that be, though, when the system isn’t doing anything? All I’m doing is typing in Word!
Looking at Task Manager, I see that I’m using 2% of the CPU. The disk I/O is at 0% and memory is only using 18%! Heck even the network isn’t doing anything.
This is one of the reasons why SW inv is so slow. It will wait a very long time, what might seem like forever, before starting to scan. Through the magic of time, though, I will show you how long it takes to complete the scanning of two files.
SW inv took 44 minutes to complete its scan of only two files!
Do you have a similar story? How long did the process take within your environment? Let me know!
If you have any questions, please feel free to contact me @GarthMJ.