Extend SCCM client Hardware Inventory with a Custom Attribute value: Client Cache Size

Purpose: Gather SCCM client cache sizes from your environment

I used to have a situation where many people did many things with great enthusiasm. Sounds familiar? This resulted in a non standard environment. To make sure that all SCCM Clients have the same CACHE SIZE, we need to first gather that CACHE SIZE with SCCM before we can create any Device Collections to hunt down wrong SCCM client cache sizes. Wrong CACHE SIZES can occur when SCCM clients are installed with different parameters or altered manually.

First: create a plain text file, add the following in it and save it as sms_extend_cache_size.mof

Note: Don’t try to do it on custom client hardware inventory settings which you have created , if you do so, it will not work.
Note: Always import/Add the custom hardware inventory classes onto Default Client settings. These changes will be automatically flow into Custom client hardware inventory settings.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//========================
// SMS Advanced Client Cache Reporting Class
//======================== 
 
[ SMS_Report (TRUE), 
  SMS_Group_Name ("SMS Advanced Client Cache"), 
  SMS_Class_ID ("SMS_ADVANCED_CLIENT_CACHE"), 
  Namespace ("\\\\\\\\.\\\\root\\\\ccm\\\\softmgmtagent") ] 
class CacheConfig : SMS_Class_Template 
{ 
    [ SMS_Report (TRUE), key ] 
    String     ConfigKey; 
    [ SMS_Report (TRUE) ] 
    Boolean     InUse; 
    [ SMS_Report (TRUE) ] 
    String     Location; 
    [ SMS_Report (TRUE) ] 
    UInt32     Size; 
};
//========================
// SMS Advanced Client Cache Reporting Class
//======================== 

[ SMS_Report (TRUE), 
  SMS_Group_Name ("SMS Advanced Client Cache"), 
  SMS_Class_ID ("SMS_ADVANCED_CLIENT_CACHE"), 
  Namespace ("\\\\\\\\.\\\\root\\\\ccm\\\\softmgmtagent") ] 
class CacheConfig : SMS_Class_Template 
{ 
    [ SMS_Report (TRUE), key ] 
    String     ConfigKey; 
    [ SMS_Report (TRUE) ] 
    Boolean     InUse; 
    [ SMS_Report (TRUE) ] 
    String     Location; 
    [ SMS_Report (TRUE) ] 
    UInt32     Size; 
};

 

Save this as a .mof -file on your workstation where the SCCM Management Console is installed. Start up the Management Console, navigate to Administration / Client Settings and open properties as shown below.

Continue by selecting Hardware Inventory and Set Classes…

Click Import and select your .mof -file.

Second: Monitor dataldr.log on the site server if these changes successfully processed or not

2) Monitor dataldr.log on the site server if these changes successfully processed or not

Third: Monitor Inventoryagent.log on a target workstation to see if the new value is collected from it

If you want to actually see from a workstation how and when the value is gathered, run the Machine Policy and Hardware Inventory Cycles and watch the log flow. However you can see it as well by creating the device collection and watch the member count increase (shown below).

Fourth: Create a Device Collection that monitors SCCM client cache sizes

 

Workstations with SCCM client cache below (10Gb)
select * from SMS_R_System inner join SMS_G_System_SMS_ADVANCED_CLIENT_CACHE on SMS_G_System_SMS_ADVANCED_CLIENT_CACHE.ResourceId = SMS_R_System.ResourceId where SMS_G_System_SMS_ADVANCED_CLIENT_CACHE.Size < 10240

Leave a Reply

Your email address will not be published. Required fields are marked *


− two = five

Post Navigation