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.
The following topics will cover a lot of the differents WMI aspects. It could be though of something like a powershell wmi tutorial. See below for the complete list of topic I will cover in the next days:
Topics covered during this week:
During this (working) week, we will cover the following different topics related to WMI and powershell.
Day1: –> Here
- What is WMI ?
- What is CIM ?
- Usefull tools and links for WMI management.
- Powershell WMI module.
Day2: –> Here
How to manage WMI namespaces.
- How to create a custom WMI Namespace.
- How to get a WMI namespace.
- How to delete a WMI Namespace.
Day3: –> Here
How to manage WMI classes.
- How to create a custom WMI Class.
- How to get a WMI class.
- How to delete a WMI class.
Day4: –> Here
How to manage WMI properties:
- How to create a custom WMI properties.
- How to get a WMI property.
- How to delete a WMI property.
Day5: –> Here
How to manage WMI qualifiers:
- How to create a custom WMI qualifiers.
- How to get a WMI qualifier.
- How to delete a WMI qualifier.
Day6: –> Here
How to manage WMI Instances:
- How to create WMI instance.
- How to get a WMI instance.
- How to delete a WMI instance.
How to manage WMI using mof files:
- how to make a backup of WMI classes?
- How to restore a backup using a mof file.
Stay tuned for the first post coming up tomorrow where we will get right into business and learn how to manage WMI namespaces.
Have fun !