SCCM 2012 Programs running as 32bit on 64bit OS
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.
----------------------------------------------------------------------------
I use a maximum of one Google Ad per post to help offset some of my blog hosting costs.
----------------------------------------------------------------------------
Just what I needed, thanks.
Typo on your second line, should read:
%SystemRoot%\Sysnative\cmd.exe /c %0 %* Exit
Yes thanks for that, I’ve updated it now – it seems that all the “\” characters had been removed in this post for some reason.