July 2009 - Posts

Press release.
I am by no means abandoning myITForum because we all know that myITForum rocks!
System Center Central is another destination with unique resources, information, and personalities. One of the main things I espouse to all of my current and potential customers is the strength of the community that supports Microsoft products in general and the System Center products specifically. System Center Central is just adding to this ecosystem and model that is only a dream for Microsoft’s competitors. The more the merrier IMO.
ConfigMgr FTW!
Working with a customer recently, they had an issue using SAN attached disks during Operating System Deployment. They could successfully create and format the SAN attached disk as the D drive during the WinPE portion of the task sequence, but the disk would go offline during the Windows 2008 mini-setup. This was causing a major issue because they were directing the install of the ConfigMgr client to the D drive. This step was obviously failing because the disk was offline. Also, because there are no steps between the mini-setup and installation of the agent, there is no way to inject a diskpart script or any other command.
After working with CSS a little, the customer discovered a setting in the unattend.xml that could be adjusted to force Windows to bring all SAN attached storage online: SANPolicyType.One additional issue they ran into is that the WAIK documentation states that the default value for this policy is to “mount all available storage devices” – they weren’t seeing this behavior in practice though. If you reference the MSDN documentation on the underlying Windows configuration setting that is controlled by this setting in the unattend.xml though, the default setting for Windows 2008 Datacenter and Enterprise is actually to “mount all storage devices except those on a shared bus”. Once they figured this out and added the setting to their unattend.xml, everything clicked into place.
(All credit for the above info goes to Chris P at the anonymous customer.)
It is pretty well known how to add custom extensions to the Configuration Manager hardware inventory using sms_def.mof and configuration.mof. What isn’t well-known or documented (at least not that I could find), was how to check-up on or remove a custom extension from ConfigMgr manually. There are two tools that can help you with deleting the extension: delgrp.exe (available from the SMS 2003 resource kit) and SiteSweeper from SCCMExperts. But what do you do if these tools aren’t working for you or you simply want to check up on your extension?
First, it is important to note that a best practice for custom inventory extensions is to always test them on a test ConfigMgr site; however, most folks don’t have test installations of ConfigMgr and even if they do, the data isn’t necessarily representative of the data in their production site.
The following is of course completely unsupported – by Microsoft or me – so tinker with the DB at your own risk (or peril). Make sure that you have a good DB backup as a simple restore should get you back to where you were if you foobar something.
The following database objects are involved with HW extensions (where Extension_GroupID is the name of the group as specified in sms_def.mof by the SMS_GROUP_NAME qualifier).
Tables:
-
InventoryClass – Lists extension classes
-
InventoryClassProperty – Lists properties of extension classes, references rows in the InventoryClass by InventoryClass.ClassID
-
DataItem – References rows in the InventoryClass by InventoryClass.ClassID
-
DataItemProperty – References rows in the InventoryClass by InventoryClass.ClassID and rows in InventoryClassProperty by InventoryClassProperty.PropertyID
-
GroupMap – Maps the class ID to the tables in the database
-
Extension_GroupID_DATA – Contains data for the extension
-
Extension_GroupID_HIST – Contains history data for the extension
Views:
-
v_GS_Extension_GroupID0 – View used for actual data retrieval/reporting
-
v_HS_Extension_GroupID0 – View used for historical data retrieval/reporting
-
vex_GS_Extension_GroupID0 – ?
Stored Procedures:
-
pExtension_GroupID_DATA
-
dExtension_GroupID_DATA
The WMI repository on the site server also contains information about HW extensions in the root\SMS\Site_XYZ namespace (where XYZ is the site code). The following classes will exist:
-
SMS_G_SYSTEM_Extension_GroupID
-
SMS_GH_SYTEM_Extension_GroupID
-
SMS GEH_SYSTEM_Extension_GroupID
Removing the rows referencing the extension from the first five tables listed above, deleting the other DB objects, and deleting the WMI classes listed, should remove a hw extension from ConfigMgr. Note that deleting WMI classes also deletes all instances of the class. You can also simply monitor the tables if you just want to verify the data or creation of the proper objects. It is of course possible and likely that the above list is not all inclusive, but in my (limited) testing, this is what turned up.


Today, I was honored with the Microsoft Most Valuable Professional award for System Center Configuration Manager. I am humbled, excited, encouraged, enthusiastic, and truly honored. A big thank you to anyone and everyone who has supported me over the past years and enabled me to achieve this level of recognition from the company whose products my career revolves around.