06 March 2012

SMS 2003 Changing Cache Size in Windows 7 64-Bit

If you are in the situation we are in which you are still using SMS 2003 with Windows 7 64-Bit, there are some functions that are not compatible in SMS. For one, any function that addresses the UIResource.UIResourceMGR in a VBS script, such as change cache size, will not function in a 64-bit environment. I am pretty sure this object is accessed for other functions, but I have not had the time to parse through those to see.

I have tried workarounds with no success. For one, I have called the wscript.exe from the %systemroot%\syswow64\wscript.exe directory thinking that using the 32-bit engine would rectify this, but it did not. No errors are returned, but the script does not perform its function either. 

After contacting Microsoft, they verified that this object is definitely not compatible in Window 7 64-bit. As a last effort, I reran the MSI installer with the following command line hoping to change the cache size with no luck: msiexec.exe /i client.msi /qb- /norestart SMSCACHESIZE=5000. The only other option I can think of, which I am not going to try is to uninstall/reinstall SMS client. The workaround I used was to use AutoIT to open up Systems Management (32-bit) [smscfgrc.cpl] and then change the cache size in there. 

Here is the AutoIT script I wrote to make the changes. I recommend deploying this only when users are logged off. 


 ;Change SMS 2003 Cache Size  
 ; Author: Mick Pletcher  
 ; Date: 06 March 2012  
 ;  
 ; Open SMS 2003 CPL  
 Run( "control C:\Windows\SysWOW64\CCM\smscfgrc.cpl" )  
 ;  
 ; Activate Tabs  
 WinWait( "Systems Management Properties" )  
 WinActivate( "Systems Management Properties" )  
 Send( "{TAB}" )  
 Sleep( 250 )  
 Send( "{TAB}" )  
 Sleep( 250 )  
 Send( "{TAB}" )  
 Sleep( 250 )  
 ;  
 ; Go to advanced Window  
 WinWait( "Systems Management Properties" )  
 WinActivate( "Systems Management Properties" )  
 Send( "{RIGHT}" )  
 Sleep( 250 )  
 Send( "{RIGHT}" )  
 Sleep( 250 )  
 Send( "{RIGHT}" )  
 Sleep( 250 )  
 ;  
 ; Change Cache Size  
 WinWait( "Systems Management Properties" )  
 WinActivate( "Systems Management Properties" )  
 Send( "{TAB}" )  
 Sleep( 250 )  
 Send( "{TAB}" )  
 Sleep( 250 )  
 Send( "{TAB}" )  
 Sleep( 250 )  
 Send( "{TAB}" )  
 Sleep( 250 )  
 Send( "5000" )  
 Sleep( 250 )  
 Send( "{Enter}" )  
 Sleep( 250 )  
 Send( "{Enter}" )  
 Sleep( 250 )  

1 comments: