Applies To: System Center Configuration Manager 2007, System Center Configuration Manager 2007 R2, System Center Configuration Manager 2007 R3, System Center Configuration Manager 2007 SP1, System Center Configuration Manager 2007 SP2
In Microsoft System Center Configuration Manager 2007, you configure the cache that is used for downloading programs to a Configuration Manager 2007 client by calling the resource manager (UIResourceMgrClass) object GetCacheInfo method and then by setting the cache properties.
To configure the software distribution advertised programs client agent cache
- Get the Configuration Manager client resource manager object (UIResourceMgrClass). 
- From the UIResourceMgrClass object, call GetCacheInfo to get the client's current cache information. 
- Set the cache properties as appropriate. 
Example
The following example method sets the Configuration Manager client cache location with the supplied path and then displays the cache properties.
For information about calling the sample code, see How to Call Configuration Manager COM Automation Objects.
Sub SetCacheLocation(path)
    On Error Resume Next
    Dim oUIResManager 
    Dim oCache 
    Dim oCacheElements
    Set oUIResManager = createobject("UIResource.UIResourceMgr")
    If oUIResManager Is Nothing Then
        wscript.echo "Couldn't create Resource Manager - quitting"
        Exit Sub
    End If
    Set oCache=oUIResManager.GetCacheInfo()
    If oCache Is Nothing Then
        Set oUIResManager=Nothing
        WScript.Echo "Couldn't get cache info - quitting"
        Exit Sub
    End If
        
    oCache.Location = path
    
    WScript.Echo "Cache information " & oCache.Location
    WScript.Echo "Location: " & oCache.Location
    
    Wscript.Echo "Total size:    " & oCache.TotalSize & " MB"
    WScript.Echo "Free size:     " & oCache.FreeSize & " MB"
    WScript.Echo "Reserved:      " & oCache.ReservedSize & " MB"
    'WScript.Echo "Max Duration: "  & oCache.MaxCacheDuration & " minutes"
   ' Wscript.Echo "TombStone Duration: " & oCache.TombStone.Duration  & " minutes" 
 
     Set oCacheElements=oCache.GetCacheElements
    WScript.Echo "There are " & oCacheElements.Count & " cache elements"
    WScript.Echo
    For Each oCacheElement In oCacheElements
        WScript.Echo "Program Name:    " & oCacheElement.CacheElementID
    Next 
    
    Set oUIResManager=Nothing
    Set oCache=Nothing
End Sub
public void SetCacheLocation(string path)
{
    try
    {
        UIResourceMgrClass uiResMgr = new UIRESOURCELib.UIResourceMgrClass();
        CacheInfo cache = uiResMgr.GetCacheInfo();
        cache.Location = path;
        Console.WriteLine("Location: " + cache.Location);
        Console.WriteLine("Total size:    " + cache.TotalSize.ToString() + " MB");
        Console.WriteLine("Free size:     " + cache.FreeSize.ToString() + " MB");
        Console.WriteLine("Reserved:      " + cache.ReservedSize.ToString() + " MB");
        Console.WriteLine("Max Duration: " + cache.MaxCacheDuration.ToString() + " minutes");
        Console.WriteLine("TombStone Duration: " + cache.TombStoneDuration.ToString() + " minutes");
    }
    catch (COMException e)
    {
        Console.WriteLine("Error setting cache location: " + e.Message);
        throw;
    }
}
The following example method has the following parameters:
| Parameter | Type | Description | 
|---|---|---|
| path | 
 | 
 | 
Compiling the Code
This C# example requires:
Namespaces
System
System.Collections.Generic
System.Text
System.Runtime.InteropServices
UIRESOURCELib
COM Reference
UIResource 1.0 Type Library
Robust Programming
For more information about error handling, see About Configuration Manager Errors.
Security
For more information about securing Configuration Manager applications, see About Securing Configuration Manager Applications.
See Also
Concepts
About Configuration Manager Client Configuration
Configuration Manager Client Configuration
How to Get and Set the Current Management Point for a Configuration Manager Client
SmsClient Client COM Automation Class
How to Call Configuration Manager COM Automation Objects