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: Setting the Network Access Account

You might need to set the Network Access Account (NAA) in System Center Configuration Manager 2012 Beta 2 if you are deploying operating systems with it. Windows Pre-Execution (WinPE) needs an account to access content on the distribution point. In order to set the network access account, open the SCCM console and navigate to this … Read moreConfigMgr 2012 Beta 2: Setting the Network Access Account

ConfigMgr 2012: Client Side Software Center


The System Center Configuration Manager 2012 Beta 2 client agent has been updated significantly. One of the things that has been changed a lot is the client-side interface that allows an end-user to select optional software to install, scripts to run, or operating systems to deploy.

In previous versions of ConfigMgr, there was a Control Panel applet called “Run Advertised Programs.” A user would open this in order to browse the list of optional program made available by a ConfigMgr administrator. There was another control panel applet called “Program Download Monitor” that would allow an end-user to monitor the download status of a program – admittedly, this was probably hardly ever touched by an end-user, realistically.

Read moreConfigMgr 2012: Client Side Software Center

ConfigMgr 2012 Beta 2: Setup Doesn’t Like Spaces in Prerequisite Path

During the course of playing with ConfigMgr 2012 Beta 2, I noticed a bug in setup. It appears to not like it when you put spaces in the path to the prerequisite files that you’d pre-download using setupdl.exe. If you have spaces in the path, and try to click Next, it won’t proceed to the … Read moreConfigMgr 2012 Beta 2: Setup Doesn’t Like Spaces in Prerequisite Path

ConfigMgr 2012 Beta 2: Active Directory Schema Changes

For reference, here is the ExtADSch.log file from my ConfigMgr 2012 Beta 2 lab setup. I don’t see any glaring changes from ConfigMgr 2007, though I don’t have a 2007 log to compare it to. <05-09-2011 15:00:02> Modifying Active Directory Schema – with SMS extensions. <05-09-2011 15:00:02> DS Root:CN=Schema,CN=Configuration,DC=mybiz,DC=loc <05-09-2011 15:00:03> Defined attribute cn=MS-SMS-Site-Code. <05-09-2011 … Read moreConfigMgr 2012 Beta 2: Active Directory Schema Changes

PowerShell: AD / SCCM Workstation Cleanup Script Version 3.0

I just realized, I still haven’t posted the script that removes SCCM resources, alongside Active Directory cleanup. I had written a version 3.0 of a script I previously posted, but never posted it. So, here it is (I haven’t tested it in a while): Disclaimer: I am not responsible for what you do with this … Read morePowerShell: AD / SCCM Workstation Cleanup Script Version 3.0

Prevent Installation of ConfigMgr Client

You may have some systems which you specifically want to exclude from installing the ConfigMgr client. There are a variety of automated methods in which a system may get the ConfigMgr client installed, desired or not. These methods could include: Client push installation Active Directory startup script Centrally executed management / health check script Recently, … Read morePrevent Installation of ConfigMgr Client

SCCM – Changing Client Cache Location

Update (2009-10-05 12:30 PM): Thanks to Todd Hemsell, I now know that you have to restart the ccmexec service in order for the change to take effect. I’ve updated the scripts appropriately. — So you’ve got System Center Configuration Manager (SCCM) 2007 in place, and for whatever reason, you’re looking to change the location of … Read moreSCCM – Changing Client Cache Location