PowerShell, WMI and OMCI

PowerShell, WMI and OMCI


DellTechCenter.com is a community for IT professionals that focuses on Data Center and End User Computing best practices. Here you can learn about and share knowledge about Dell products and solutions.

PowerShell, WMI and OMCI

It was just another day of discussion for automatically getting or setting the values of BIOS tokens remotely on Dell system(s) and and the ultimate choice of everyone was to use Windows PowerShell with Windows Management Instrumentation(WMI) using OpenManage Client Instrumentation (OMCI) in the backend.

WMI is Microsoft implementation of Common Information Model(CIM). CIM is an public standard defined and published by DMTF. WMI is a core Windows management technology; one can use WMI to manage both local and remote computers. WMI provides a consistent approach to carrying out day-to-day management tasks with programming or scripting languages.

The Dell OpenManage™ Client Instrumentation (OMCI) is software that allows remote management application programs to access asset information about the client computer, configure BIOS & Boot Sequence settings, monitor the health status of the Client computer. It's tight integration with WMI allows customers to take advantage of the rich scripting capabilities for collecting information and customizing system settings. OMCI contains the underlying driver set that collects system information from a number of different sources on the client computer, including the BIOS, CMOS, System Management BIOS (SMBIOS), System Management Interface (SMI), operating system, APIs, DLLs, and registry settings. The default namespace used for access to the Dell OMCI classes is “root\dcim\sysman”.

Windows PowerShell is Microsoft's task automation framework, consisting of a command-line shell and associated scripting language built on top of .NET Framework. PowerShell provides full access to WMI and COM, enabling administrators to perform administrative tasks on both local and remote Windows systems. Administrative tasks are generally performed by cmdlets. Sets of cmdlets may be combined together in scripts.  

Microsoft has been bundling Windows Management Framework with all its recent OSes and PowerShell is a part of this Framework. Recently microsft release of the Windows Management Framework has powershell version 3.0 available.

To know the version of poweshell on your system:

  • Click Start, click All Programs, click Accessories, click Windows PowerShell, and then click Windows PowerShell.
  • In the Windows PowerShell console, type the following command at the command prompt and then press ENTER:

Get-Host | Select-Object Version

The output of this will display the version of the Windows PowerShell used on the system.

Hence Microsoft Windows PowerShell using Microsoft WMI services and Dell OMCI package makes it the best combination pack that can be the could be used in enterprise environment. The different usage scenarios are as listed below:

1. Asset Monitoring

To get the processor description of any computer remotely, the System administrator can issue the following command from PowerShell:

Get-WmiObject -ComputerName <Computer-Name> -Namespace root/dcim/sysman -Class DCIM_Processor | Select Description

The output will provide the description of the processor on the system.

2. Configuration Management

To enable or disable BIOS tokens (like Num Lock) on any computer remotely, the System administrator can issue the following command from PowerShell:

(Get-WmiObject -ComputerName <Computer-Name> -Namespace root/dcim/sysman -Class DCIM_BIOSService) | Foreach-Object { $_.SetBIOSAttributes($null, $null,"Num Lock","2")}

 The third argument of the function SetBIOSAtrributes which is a method of the class DCIM_BIOSService is the token name while  the fourth argument should be the set of possible values that the token should be set with. 

3. Health Monitoring using Alerts 

To monitor the health of the system using CIM indication, the System administrator can issue the following set of commands from PowerShell:

Get-EventLog -ComputerName <ComputerName> -LogName System | Where-Object { $_.Source -eq "OpenManage Client Instrumentation"}


Hence using PowerShell, which uses the services of WMI to make a remote CIM query which will use services of a software like OMCI that will help modify the BIOS configuration or help get inventory or the state of the system, the System administrators can easily carry out day-to-day management task remotely on a enterprise system.

Comment Reminder

Unrelated comments or requests for service will be unpublished. Please post your technical questions in the Support Forums or for direct assistance contact Dell Customer Service or Dell Technical Support.. All comments must adhere to the Dell Community Terms of Use.

  • This is great stuff and I've been able to implement a lot of custom settings. But I still can't figure out how to enable/disable a boot device (i.e. Floppy Disk, Internal HDD,...). How would one approach that?