Extreme PowerShell / ConfigMgr: Extending Hardware Inventory


In previous versions of Microsoft System Center Configuration Manager (ConfigMgr / SCCM), a common task for administrators, engineers, and consultants, was to extend the hardware inventory configuration. These inventory extensions were written in Managed Object Format (MOF) and allowed the SCCM client agents to report back a wider array of information to the central site database for reporting purposes, collection building, and other management tasks. Making changes to the configuration could be a tedious task, as MOF is not very forgiving, and rather quite strict, in its syntax.

In Microsoft Systems Management Server 2003 (SMS 2003), each time a configuration change was made, it was necessary to deploy the updated MOF file to the SMS clients — this made ensuring hardware inventory consistency across all clients a challenging task. In SCCM, Microsoft included changes to these MOF files (SMS_DEF.mof and Configuration.mof) as part of the machine policy refresh task, which is a client-side polling mechanism for configuration changes.

In SCCM 2012 Beta 2, Microsoft is taking it a step further and has eliminated the SMS_DEF.mof altogether, left the configuration.mof behind by itself, and stuck the WMI inventory configuration in … WMI. What is WMI? WMI stands for Windows Management Instrumentation, a service built into the Windows Operating System since Windows XP (and Windows 2000 Service Pack 4, I think). It provides a standard method of exposing hardware and software level system information to applications, such as storage, processor, memory, running processes, installed software, and other application configuration data. SCCM is built on top of this technology, and often makes developing software and scripts around the product much easier than it otherwise might be.

For the remainder of this article, we’re going to look at specifically how to extend hardware inventory in SCCM 2012 programmatically using Windows PowerShell with the SCCM WMI provider.

Read moreExtreme PowerShell / ConfigMgr: Extending Hardware Inventory

ConfigMgr 2012 Beta 2: PXE Booting for OSD

I recently was trying to PXE bootstrap an operating system deployment (OSD) job from a ConfigMgr 2012 Beta 2 PXE server, and was getting this message in the smspxe.log on the SCCM primary site server:

Warning: Matching Processor Architetcure Boot Image (0) not found

Read moreConfigMgr 2012 Beta 2: PXE Booting for OSD

ConfigMgr 2012 Beta 2: Removing the Software Update Point Role

The Software Update Point (SUP) role is used to deploy software updates to SCCM client agents. If you want to move the SUP role from one server to another, or are decommissioning a SCCM site, you may need to remove the SUP role. You can remove the SUP role using the SCCM console, or by … Read moreConfigMgr 2012 Beta 2: Removing the Software Update Point Role

WMI Repository Corruption / SCCM Client Fix

You may have come across the following messages in the execmgr.log file on your SCCM clients: Failed to open to WMI namespace ‘.rootccmPolicyMachine’ (8007045b) Failed to ConnectSettings for ICcmPolicyAgent in CSoftDistPolicyNamespace::ConnectToNamespace Failed to ConnectToNamespace in CSoftDistPolicyNamespace::GetMachinePolicy Failed to connect to machine policy name space. 0x8007045b Failed to connect to user policy name space CSoftwareDistPolicyMgr::GetSWDistSiteSettings failed … Read moreWMI Repository Corruption / SCCM Client Fix