The wmi-native-module
is a native module for Node.js applications to query WMI on a local Windows system using native C++.
npm install @intelcorp/wmi-native-module
Example queries can be found in tests\exampleQueries.js
function query(namespace: string, query: string, properties?: string[]): object;
namespace
: Namespace of the class to query. Examples:'root\wmi'
or'root\cimv2'
query
: WQL query string. Examples:'SELECT * FROM Win32_Processor'
or'SELECT Caption,DeviceID FROM Win32_Processor
properties
: Optional parameter to limit the properties returned. Example:query('root\wmi', 'SELECT * FROM Win32_Processor', ['Caption','DeviceID'])
There is a whitelist for supported namespaces defined in namespaces.h
.
- To allow the module to query any namespace, the
IsSupportedNamespace()
method can be modified to always return true. - To add additional namespaces to the whitelist, add the new namespace to the vector returned by
GetWhitelist()
. Namespaces should always be added to the whitelist as all lowercase values.
- Object containing the results found by the query.
- If the query fails or does not return any results an empty object will be returned:
{}
const wmi = require('@intelcorp/wmi-native-module');
let result = wmi.query('root/cimv2', 'SELECT * FROM Win32_Processor');
const wmi = require('@intelcorp/wmi-native-module');
const properties = ['Caption', 'DeviceID', 'Manufacturer', 'MaxClockSpeed', 'Name', 'SocketDesignation'];
const query = `SELECT ${properties.join(',')} FROM Win32_Processor`;
let result = wmi.query('root/cimv2', query, properties);