To manage Windows CE based embedded devices in field the standard SCCM offering looking at inventory may not be sufficient. This is especially true for product related information that, of course, cannot be anticipated by the Microsoft product group.
Unfortunately the documentation on this topic is way below standard and it seems that it has even diminished as SMS/SCCM versions have been moving forward.
A good entry point is the SMS 2003 SDK which give the best documentation on how to extend the hardware inventory provider and even provides a native code sample on how to do this. You will not find this information in the SCCM 2007 SDK, but rest assured it still works using the new version.
There is a little glitch in the 2003 SDK docs.
The names of the MOF classes must exactly match the names of the inventory items in the custom inventory file.
This said, three steps will get custom inventory up and running.
- Install the custom inventory provider .dll on your Windows CE device
- Enable hardware inventory in the mobile device client
- Update the SMS_Def.mof file in clifiles.src\hinv on your SCCM Server with the corresponding MOF classes
The client-side SCCM agent on Windows CE calls first the standard inventory provider and then the new inventory provider .dll, which reads the custom data from a provided XML file. This file must be an XML snippet (!), not a well-formed XML document.
It is important, because the well-formed document, which is sent to the Site server will be constructed in memory. Any namespaces or XML metadata added to the snippet in the file will spoil the overall result. If this is the case, invalid inventory messages crash in the backend and get not imported.
But let us stay more positive:
If the provider-.dll installation went well and all has been configured as described, you will see the custom inventory data in Resource Explorer after the next collection interval!