I recently had a problem when I was trying to run a SCCM program (not application) that called a simple Windows command (the command was wbadmin.exe – but this is irrelevant) in SCCM 2012 on a Windows 2008 R2 64bit Operating System client. I noticed it was failing and in the execmgr.log there was a line stating “Running “C:Windows\system32\wbadmin.exe” delete systemstatebackup -keepversions:16 -quiet with 32bitLauncher” and also the Ccm32BitLauncher.log showed activity.
It was the old problem with 64bit file system redirection that I have blogged about previously.
I found a great article here – http://madluka.wordpress.com/2012/09/24/configmgr-2012-64bit-file-system-redirection-bites-again/ – that provide a batch file solution –
if the batch file is being run from within a 32bit command interpreter on a 64bit Operating System then the ‘Native’ 64bit command processor is called and re-launches the batch file. If it is already a 64bit command interpreter then the code jumps to the “:native” label and continues as usual.
So my batch file ends up looking like this, and the Program command line just calls the batch file:
IF "%PROCESSOR_ARCHITEW6432%"=="" GOTO native %SystemRoot%\Sysnative\cmd.exe /c %0 %* Exit :native wbadmin delete systemstatebackup -keepversions:16 -quiet
A bit messy but there aren’t too many other option in this scenario.