How the SMS 2003 Advanced Client Creates Delta Inventory

I have recently done some research on exactly how inventory is generated, including deltas, and have listed the information below. This information can be obtained by monitoring the inventory agent logs, verbose WMI logs, and applicable inventory WMI classes:

  • Instruction to run inventory comes from an instance of InventoryAction. This specifies full, delta, or resync report type.
  • The state of each inventory action is stored in the InventoryActionStatus class.
  • Inventory history is stored in a class named after the inventory type (the C00…01 number for hinv)
  • Each instance is of the InventoryReport class
  • When inventory starts… (hinv in this example)
    • If a delta is being specified, make sure a full report has already been generated (checks the InventoryActionStatus class)
    • Prepares the applicable history class (deletes all non-current reports)
      • New instances are given a 'New' state
      • Updated instances are given an 'Updated' state
      • Instances that don't change are given a 'Verified' state
    • Inventory is reported: Only 'New', 'Deleted', and 'Updated' instances are reported for deltas
    • Cleans up applicable history class (creates 'Current' reports for all 'New', 'Updated', and 'Verified' reports)
    • Sends inventory report via messaging system
    • Updates the InventoryActionStatus class