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> -LogNameSystem | Where-Object {$_.Source -eq "OpenManage Client Instrumentation"}
Summary:
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.
Image may be NSFW.Clik here to view.