In an industrial automation project we had Windows CE 5.0 devices managed via SCCM.
The problem was, that any time we installed a software distribution package via SCC the state got lost after a while and SCCM reapplied already installed packages to the devices.
As quite common for industrial automation controllers the Windows CE image was loaded from a CF card into RAM during boot.
It turned out that this is the reason for trouble.
After loading the NK.bin image a file system is created in RAM. This file system is used by the SCCM device management client to store the installation state of the SW packages in a file called \windows\dms-inv.dat. This file, of course, gets lost when systems are bootet, because the RAM is cleared doing this.
Unfortunately the device management client is not flexible enough to be installed onto the CF and therefore we had to find a workaround.
Each SCCM SW package now saves the dms-inv.dat file to the CF card after an installation. This file is copied back at each OS boot into the \windows folder via a Autoexec.cmd batch file.
This works but is not a "great" solution to be proud of.
It would be much better to store the installation state under a key in the persistent registry, which resides on the CF card in any case.
Maybe a good idea for the next CE version? I’ll try to ask the guys in Redmond.