System Center Configuration Manager TechCenter > System Center Configuration Manager Forums > Configuration Manager Inventory > Is it possible to disable part of Hardware Inventory on some machines?
Ask a questionAsk a question
 

AnswerIs it possible to disable part of Hardware Inventory on some machines?

  • Monday, March 02, 2009 12:26 PMkoenraadrens Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    We have a problem with sccm hardware inventory from terminal servers. The mif files are too large.

    I already changed the parameter “Max MIF Size” from 5 MB to 100 MB (HKEY_LOCAL_MACHINE\Software\Microsoft\SMS\Components\SMS_INVENTORY_DATA_LOADER\Max MIF Size)

    This solved the problem for a few of the terminal servers, but the largest mifs still get rejected. (67 and 72 MB)

    I opened the mifs in WordPad and saw they consist mostly of "CCM Recently Used Applications".

    This explains why the mifs are larger on terminal servers. Each users opens his own processes and thus there are more processes to inventor.


    I would like to keep Recently Used Applications in the inventory, but disable this part of the inventory on terminal servers.

    I know it’s possible to change sccm policies locally with mof files. But is it also possible to change part of the hardware inventory?

     

Answers

  • Wednesday, March 04, 2009 3:33 PMkoenraadrens Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     AnswerHas Code
    I maybe found a way to override part of hardware inventory.

    This mof file disabled the CCM_RecentlyUsedApps Class on one machine.

    #pragma namespace("\\\\.\\root\\ccm\\policy\\machine\\requestedconfig")   
       
    [CCM_Policy_PartialPolicy(true)]   
    instance of InventoryDataItem  
    {  
        DataItemID = "{c62b40aa-80f2-4b20-aeb0-9669b8d89fe7}";  
        Namespace = "\\\\.\\root\\ccm\\SoftwareMeteringAgent";  
        ItemClass = "CCM_RecentlyUsedApps";  
     
        PolicySource = "Local";  
        PolicyID = "2";   
        PolicyVersion = "2";  
        PolicyRuleID = "2";  
        PolicyInstanceID = "2";  
          
        // override only this property, all others from the Site/Management Point  
        [CCM_Policy_Override(true)]  
        InventoryActionID = "{00000000-0000-0000-0000-842184218421}";  
    }; 

    By using a non existing InventoryActionID, this won't be triggered when the Hardware Inventory is started.

    DataItemID = "{c62b40aa-80f2-4b20-aeb0-9669b8d89fe7}";  is related to our site.
    Our test environment has a different value.
    I found the item with PolicySpy.exe

    You can also use wbemtest
    connect to root\ccm\Policy\Machine\RequestedConfig
    use this query: select * from inventorydataitem where itemclass = "CCM_RecentlyUsedApps"

    I won't implement this until I really need it.
    For the moment our daily hardware scan works without problems.

    I'm even considering to eliminate old lines from CCM_RecentlyUsedApps on all our machines.
    Can you still call this Recently Used Apps when there are applications that haven't been used for months?

    This Query seems to indicate recently used applications are deleted after 90 days on most of my machines.

    SELECT     s.name0, r.MachineID, MAX(LastUsedTime0) AS themax, MIN(LastUsedTime0) AS themin, 
                DATEDIFF(dd, 
    MIN(LastUsedTime0), MAX(LastUsedTime0)) AS Period  
    FROM         RecentlyUsedApps_DATA r  
    join SYSTEM_DISC s on r.machineid = s.itemkey  
    where s.name0 = 'U23579' 
    GROUP BY r.MachineID, s.name0  
    ORDER BY Period DESC 

All Replies

  • Monday, March 02, 2009 2:16 PMSherry KissingerMVP, ModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    No, it's not.  I see you've already listed the 2 known workarounds to alleviate your issue (the regkey max size, and changing TRUE to FALSE on ccm_recentlyusedapps).

    Unfortunately, the Hardware Inventory policy is 1 policy object, and is one entry in WMI, so no, I can't think of a way to do that.

    This is a long shot... but... for those term servers that get rejected....maybe a local policy override to change the Frequency of Hardware Inventory?  Just thinking as a type, but if it's, say... 72mb being reported every 24 hrs via HINV, if you change it (via local policy override) to report every 12 hrs, does that make it 36mb, & under your limit?
    Standardize. Simplify. Automate.
  • Monday, March 02, 2009 2:51 PMkoenraadrens Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     

    The very large mifs are related to a full hardware inventory.
    I deleted all the instances from the CCM_RecentlyUsedApps class and took a new full hardware inventory.
    This worked and now I hope the delta mifs will be small enough and won't end up in BADMIFS.

    If they still get rejected I will try running Hardware Scan more frequently.
    Else I will disable Software Metering on Terminal Servers.

  • Tuesday, March 03, 2009 6:50 AMSherry KissingerMVP, ModeratorUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    "Else I will disable Software Metering on Terminal Servers." 
    Actually, that won't help in this instance.  SW Metering and the class CCM_RecentlyUsedApps being reported via HWInv are seperate things.  Sure, the ccm_recentlyusedapps is consumed by the ConfigMgr Server and used, but that action isn't related to SW Metering on the client being on vs. off.  You could have SW Metering off site-wide; and still have the issue with CCM_RecentlyUsedApps.  (of course, if SW Metering is off site-wide; you likely wouldn't care so much about the CCM_RecentlyUsedApps being on, and would have no problem change that to False site-wide, as well.  But I digress.)

    Even though I told Garth I would steal his idea and claim it as my own... Garth Jones and I were discussing this thread today, and his thought was that (long term) if a more frequent HW Inv Scan works out, you could leveraging a DCM baseline to find Term servers that would need a more frequent hinv local policy so you could automagically target them with the local policy override (probably via an Advert), so you wouldn't have to continually monitor for term servers and fix them on a case-by-case basis.
    Standardize. Simplify. Automate.
  • Wednesday, March 04, 2009 3:33 PMkoenraadrens Users MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     AnswerHas Code
    I maybe found a way to override part of hardware inventory.

    This mof file disabled the CCM_RecentlyUsedApps Class on one machine.

    #pragma namespace("\\\\.\\root\\ccm\\policy\\machine\\requestedconfig")   
       
    [CCM_Policy_PartialPolicy(true)]   
    instance of InventoryDataItem  
    {  
        DataItemID = "{c62b40aa-80f2-4b20-aeb0-9669b8d89fe7}";  
        Namespace = "\\\\.\\root\\ccm\\SoftwareMeteringAgent";  
        ItemClass = "CCM_RecentlyUsedApps";  
     
        PolicySource = "Local";  
        PolicyID = "2";   
        PolicyVersion = "2";  
        PolicyRuleID = "2";  
        PolicyInstanceID = "2";  
          
        // override only this property, all others from the Site/Management Point  
        [CCM_Policy_Override(true)]  
        InventoryActionID = "{00000000-0000-0000-0000-842184218421}";  
    }; 

    By using a non existing InventoryActionID, this won't be triggered when the Hardware Inventory is started.

    DataItemID = "{c62b40aa-80f2-4b20-aeb0-9669b8d89fe7}";  is related to our site.
    Our test environment has a different value.
    I found the item with PolicySpy.exe

    You can also use wbemtest
    connect to root\ccm\Policy\Machine\RequestedConfig
    use this query: select * from inventorydataitem where itemclass = "CCM_RecentlyUsedApps"

    I won't implement this until I really need it.
    For the moment our daily hardware scan works without problems.

    I'm even considering to eliminate old lines from CCM_RecentlyUsedApps on all our machines.
    Can you still call this Recently Used Apps when there are applications that haven't been used for months?

    This Query seems to indicate recently used applications are deleted after 90 days on most of my machines.

    SELECT     s.name0, r.MachineID, MAX(LastUsedTime0) AS themax, MIN(LastUsedTime0) AS themin, 
                DATEDIFF(dd, 
    MIN(LastUsedTime0), MAX(LastUsedTime0)) AS Period  
    FROM         RecentlyUsedApps_DATA r  
    join SYSTEM_DISC s on r.machineid = s.itemkey  
    where s.name0 = 'U23579' 
    GROUP BY r.MachineID, s.name0  
    ORDER BY Period DESC 
  • Tuesday, March 17, 2009 8:26 PMWallyMSFT, OwnerUsers MedalsUsers MedalsUsers MedalsUsers MedalsUsers Medals
     
    And for reference, the largest inventory file we'll process is 50MB, no matter if you set the Registry to 100MB :-) It is a hard coded limit in our product.

    I'm marking this as answered, as you indicate you have your answer (and didn't mark it yourself).
    Wally Mead