|
Windows Management Instrumentation Device Driver allows AggreGate Server to manage Microsoft Windows computers. Like with all other types of devices, data collected via WMI is converted into unified form to allow access from different AggreGate facilities. See Devices article for more information about the "normalized" representation of devices in Tibbo AggreGate.
WMI device driver allows AggreGate Server to monitor and manage WMI-enabled computers remotely from any, even non-Windows platform. All the communications are provided using Distributed COM (DCOM) technology.
With AggreGate Server's WMI driver, you can:
| • | read and write properties of WMI objects |
| • | fetch information using WMI Query Language (WQL) request |
| • | call methods provided by WMI objects |
| • | subscribe for WMI events. |

|
In order to monitor/manage a WMI computer, you should configure remote access to WMI service on that machine. See Configuring Remote Access to WMI for information on this subject.
|
Driver Information
Driver Plugin ID:
|
com.tibbo.linkserver.plugin.device.wmi
|
Global Settings
None defined.
User Level Settings
None defined.
Device Properties
Connection Properties
Connection settings define how AggreGate Server communicates with a certain WMI computer. These settings can be accessed using Edit Device Properties action of the Device Context. Here is a list of available connection properties:
Setting
|
Description
|
Address
|
IP address or host name of a WMI computer.
|
Domain
|
Windows Domain name (optional).
|
User
|
Name of Windows User Account used to access WMI via DCOM.
|
Password
|
Password of the Windows User Account.
|
Namespace
|
A WMI namespace.
|
Asset View
|
Driver supports two types of asset view representation:
| • | Flat view, i.e. a plain list of WMI classes available at the device. |
| • | Tree view representing hierarchy of WMI classes. |

|
To apply this option for an existing device, you should invoke Reset Device Driver action.
|
|
Timeout
|
Timeout for WMI operations.
|
WQL Requests
The WQL Requests table defines queries that can be used to retrieve fine-grained information from WMI device: certain properties of objects or objects that meets specified conditions.
Setting
|
Description
|
Name
|
Request name.
|
Description
|
Request description.
|
Expressions
|
Forces treating WQL Request field as expression. This expression must resolve to a WQL query string.
|
WQL Request
|
WQL query text.
|
WQL Event Requests
The WQL Event Requests table defines queries that are used to subscribe to WMI events.
Setting
|
Description
|
Name
|
Request name.
|
Description
|
Request description.
|
Expressions
|
Forces treating WQL Request field as expression. This expression must resolve to a WQL query string.
|
WQL Request
|
Text of WQL event query.
|
Device Assets
For each WMI class driver creates an asset of the same name. By enabling an asset, user asks driver to fetch all the instances of a corresponding class. Most assets are disabled by default, just few often-used classes are enabled.

|
Some WMI classes may have thousands or even millions of instances. Enabling these classes may cause device synchronization slowdown and exceeding resource consumption. Use WQL requests to fetch data precisely.
|
Device Settings
WMI device driver creates Device setting variables as follows:
| • | For each enabled asset (WMI class) it creates a variable of the same name. |
| • | For each query defined in WQL Requests table it creates a variable of the same name. |
| • | The WMI Event variable that stores information about WMI event subscriptions is created. |
Device Operations
WMI driver creates a Device context function and a corresponding action for every method provided by enabled WMI classes. These actions are grouped by class names.
When invoked, WMI action requests object path and method parameters, then calls the method for the object, converts output and displays it as a result table.
Device Events
WMI driver allows to monitor WMI events. Subscription for WMI events is performed by adding WQL Event Requests in Device properties. Driver subscribes for and/or unsubscribes from event notifications when this table is changed.
Connection Handling
WMI driver makes the device Online if:
| • | connection to a DCOM server on the specified computer using user name, domain and password provided is established |
| • | access to the specified WMI namespace is acquired using the DCOM connection. |
Synchronization Details
WMI devices are synchronized with AggreGate Server like any other Devices. Synchronization includes the following steps:
| • | Reading assets definitions (if they were not read yet or were reset). |

|
Each asset element relates to a WMI class of the same name.
|
| • | Device metadata acquisition: |
| o | For each enabled asset driver fetches definition of a corresponding WMI class including its properties and methods specifications. |
| o | For each query specified in the WQL Requests table driver creates a variable that will contain results. |
| o | Adds a WMI Events variable that controls all WMI event subscriptons specified in the WQL Event Requests table. |
| • | Reading/writing device settings: |
| o | Driver reads properties of all instances for classes defined by assets. |
| o | Writes changed properties of WMI objects back to managed device. |
| o | Executes all WQL requests putting fetched data in the query variables. |
| o | Manages WMI event subscription according to the WMI Event variable. |
WMI Data Conversion
WMI objects are converted to AggreGate tables as follows:
| • | A table comprises data of one or several (array of) WMI objects. |
| • | Each object is presented by a single data record. |
| • | The table contains the Object Path field that identifies object using its path in WMI namespace. |
| • | Other fields in the table reflect properties of the WMI object. The following table shows how WMI types are converted to AggreGate types and vice versa: |
WMI Type
|
AggreGate Type
|
Unsigned 8-bit integer
|
Integer
|
Signed 8-bit integer
|
Integer
|
Unsigned 16-bit integer
|
Integer
|
Signed 16-bit integer
|
Integer
|
Unsigned 32-bit integer
|
Integer
|
Signed 32-bit integer
|
Integer
|
Unsigned 64-bit integer
|
Long
|
Signed 64-bit integer
|
Long
|
UCS-2 string
|
String
|
Boolean
|
Boolean
|
IEEE 4-byte floating-point
|
Float
|
IEEE 8-byte floating-point
|
Double
|
Datetime
|
Date
|
Reference
|
String
|
16-bit UCS-2 character
|
String
|
Object
|
Data Table
|
Arrays
|
Data Table
|
| • | Class and property qualifiers (Key, Write, Abstract, etc.) are used to refine conversion. |
|