I have been working quite a lot with WMI through the years. My different experiences, and my natural curiosity, brought me the knowledge that I have developped around WMI.
Since I really like to automate things I have been naturally pushed to incorporate automation in all my taks, and a matter a fact, WMI and automation just go really well together.
When I do not write Powershell scripts, I do OS deployments, or actually any tasks that can be handled with System center Configuration Manager. (2007 or 2012). This means from Application deployment, Endpoint protection, mobile device management, Software updates deployment, reporting all the way to client troubleshooting and Bitlocker encryption remediation.
In OS deployment, it is a common task to tatoo the WMI repository with information specific to the image, such as the version, task sequence used to deploy it, task sequence installation time, build version, etc… Besides OSD, custom WMI classes are often created in order to do reporting using the integrated reporting features from configmgr 2012.
This is what brought me to write the WMI powershell module. With the 19 cmdlets that it contains (Currently in version 2.0 of the module) it is possible to manage the complete WMI repository and create NameSpaces, classes, properties, import/export .mof files and much more ! (Download link to the module is available below).
Since Powershell might be a bit difficult for certain administrators, I have decided to write a couple of blog posts during the next 6 days in order to explain how you can leverage WMI by mainly using the Powershell module for your environment.