TestimoX

API Reference

Class

WmiReader

Namespace ComputerX.Wmi
Assembly ComputerX
Modifiers static
Attributes
SupportedOSPlatform("windows")

Simple, high-level helpers for common WMI reads (single property or arrays), with optional namespace fallback. Mirrors the simplicity of RegistryReader.

Inheritance

  • Object
  • WmiReader

Methods

public static IReadOnlyDictionary<String, Object> ExecClassMethod(String computer, String methodNamespace, String className, String methodName, IDictionary<String, Object> inParameters = null, CancellationToken ct = null) #
Returns: IReadOnlyDictionary<String, Object>

Executes a WMI class method and returns out-parameters as a case-insensitive dictionary. This is useful for static/class methods (for example MSFT_MpPreference.Set) that are invoked on the class rather than a specific instance path.

Parameters

computer System.String requiredposition: 0
methodNamespace System.String requiredposition: 1
className System.String requiredposition: 2
methodName System.String requiredposition: 3
inParameters System.Collections.Generic.IDictionary{System.String,System.Object} = null optionalposition: 4
ct System.Threading.CancellationToken = null optionalposition: 5
public static Task<IReadOnlyDictionary<String, Object>> ExecClassMethodAsync(String computer, String methodNamespace, String className, String methodName, IDictionary<String, Object> inParameters = null, CancellationToken ct = null) #
Returns: Task<IReadOnlyDictionary<String, Object>>

Executes a WMI class method and returns the raw out-parameter dictionary.

Parameters

computer System.String requiredposition: 0
methodNamespace System.String requiredposition: 1
className System.String requiredposition: 2
methodName System.String requiredposition: 3
inParameters System.Collections.Generic.IDictionary{System.String,System.Object} = null optionalposition: 4
ct System.Threading.CancellationToken = null optionalposition: 5
public static IReadOnlyDictionary<String, Object> ExecMethod(String computer, String methodNamespace, String objectPath, String methodName, IDictionary<String, Object> inParameters = null, CancellationToken ct = null) #
Returns: IReadOnlyDictionary<String, Object>

Minimal helper for special operations that require WMI instance method invocation (e.g., reading share security descriptors). Accepts an object path such as Win32_LogicalShareSecuritySetting.Name='Share' and returns out‑parameters as a case‑insensitive dictionary.

Parameters

computer System.String requiredposition: 0
methodNamespace System.String requiredposition: 1
objectPath System.String requiredposition: 2
methodName System.String requiredposition: 3
inParameters System.Collections.Generic.IDictionary{System.String,System.Object} = null optionalposition: 4
ct System.Threading.CancellationToken = null optionalposition: 5
public static Task<IReadOnlyDictionary<String, Object>> ExecMethodAsync(String computer, String methodNamespace, String objectPath, String methodName, IDictionary<String, Object> inParameters = null, CancellationToken ct = null) #
Returns: Task<IReadOnlyDictionary<String, Object>>

Executes a WMI method and returns the raw out-parameter dictionary.

Parameters

computer System.String requiredposition: 0
methodNamespace System.String requiredposition: 1
objectPath System.String requiredposition: 2
methodName System.String requiredposition: 3
inParameters System.Collections.Generic.IDictionary{System.String,System.Object} = null optionalposition: 4
ct System.Threading.CancellationToken = null optionalposition: 5
public static Boolean ExecOut<T1, T2>(String computer, String methodNamespace, String objectPath, String methodName, String outParameter1, String outParameter2, out Nullable<T1> value1, out Nullable<T2> value2, CancellationToken ct = null) #
Returns: Boolean

Type Parameters

T
T1
T2

Parameters

computer String requiredposition: 0
methodNamespace String requiredposition: 1
objectPath String requiredposition: 2
methodName String requiredposition: 3
outParameter String requiredposition: 4
value Nullable<T> requiredposition: 5
ct CancellationToken = null requiredposition: 6
public static Task<ValueTuple<Boolean, Nullable<T1>, Nullable<T2>>> ExecOutAsync<T1, T2>(String computer, String methodNamespace, String objectPath, String methodName, String outParameter1, String outParameter2, CancellationToken ct = null) #
Returns: Task<ValueTuple<Boolean, Nullable<T1>, Nullable<T2>>>

Type Parameters

T
T1
T2

Parameters

computer String requiredposition: 0
methodNamespace String requiredposition: 1
objectPath String requiredposition: 2
methodName String requiredposition: 3
outParameter String requiredposition: 4
ct CancellationToken = null requiredposition: 5
ExecOutAsync``1(System.String computer, System.String methodNamespace, System.String objectPath, System.String methodName, System.String outParameter, System.Threading.CancellationToken ct) #

Executes a WMI method and extracts a single value-type out parameter.

Parameters

computer System.String required
methodNamespace System.String required
objectPath System.String required
methodName System.String required
outParameter System.String required
ct System.Threading.CancellationToken required
ExecOutAsync``2(System.String computer, System.String methodNamespace, System.String objectPath, System.String methodName, System.String outParameter1, System.String outParameter2, System.Threading.CancellationToken ct) #

Executes a WMI method and extracts two value-type out parameters.

Parameters

computer System.String required
methodNamespace System.String required
objectPath System.String required
methodName System.String required
outParameter1 System.String required
outParameter2 System.String required
ct System.Threading.CancellationToken required
public static Boolean ExecOutRef<T1, T2>(String computer, String methodNamespace, String objectPath, String methodName, String outParameter1, String outParameter2, out T1 value1, out T2 value2, CancellationToken ct = null) #
Returns: Boolean

Type Parameters

T
T1
T2

Parameters

computer String requiredposition: 0
methodNamespace String requiredposition: 1
objectPath String requiredposition: 2
methodName String requiredposition: 3
outParameter String requiredposition: 4
value T requiredposition: 5
ct CancellationToken = null requiredposition: 6
public static Task<ValueTuple<Boolean, T1, T2>> ExecOutRefAsync<T1, T2>(String computer, String methodNamespace, String objectPath, String methodName, String outParameter1, String outParameter2, CancellationToken ct = null) #
Returns: Task<ValueTuple<Boolean, T1, T2>>

Type Parameters

T
T1
T2

Parameters

computer String requiredposition: 0
methodNamespace String requiredposition: 1
objectPath String requiredposition: 2
methodName String requiredposition: 3
outParameter String requiredposition: 4
ct CancellationToken = null requiredposition: 5
ExecOutRefAsync``1(System.String computer, System.String methodNamespace, System.String objectPath, System.String methodName, System.String outParameter, System.Threading.CancellationToken ct) #

Executes a WMI method and extracts a single reference-type out parameter.

Parameters

computer System.String required
methodNamespace System.String required
objectPath System.String required
methodName System.String required
outParameter System.String required
ct System.Threading.CancellationToken required
ExecOutRefAsync``2(System.String computer, System.String methodNamespace, System.String objectPath, System.String methodName, System.String outParameter1, System.String outParameter2, System.Threading.CancellationToken ct) #

Executes a WMI method and extracts two reference-type out parameters.

Parameters

computer System.String required
methodNamespace System.String required
objectPath System.String required
methodName System.String required
outParameter1 System.String required
outParameter2 System.String required
ct System.Threading.CancellationToken required
ExecOutRef``1(System.String computer, System.String methodNamespace, System.String objectPath, System.String methodName, System.String outParameter, ``0@ value, System.Threading.CancellationToken ct) #

Executes a WMI method and extracts a single reference-type out parameter.

Parameters

computer System.String required
methodNamespace System.String required
objectPath System.String required
methodName System.String required
outParameter System.String required
value ``0@ required
ct System.Threading.CancellationToken required
ExecOutRef``2(System.String computer, System.String methodNamespace, System.String objectPath, System.String methodName, System.String outParameter1, System.String outParameter2, ``0@ value1, ``1@ value2, System.Threading.CancellationToken ct) #

Executes a WMI method and extracts two reference-type out parameters.

Parameters

computer System.String required
methodNamespace System.String required
objectPath System.String required
methodName System.String required
outParameter1 System.String required
outParameter2 System.String required
value1 ``0@ required
value2 ``1@ required
ct System.Threading.CancellationToken required
ExecOut``1(System.String computer, System.String methodNamespace, System.String objectPath, System.String methodName, System.String outParameter, System.Nullable{``0}@ value, System.Threading.CancellationToken ct) #

Executes a WMI method and extracts a single value-type out parameter.

Parameters

computer System.String required
methodNamespace System.String required
objectPath System.String required
methodName System.String required
outParameter System.String required
value System.Nullable{``0}@ required
ct System.Threading.CancellationToken required
ExecOut``2(System.String computer, System.String methodNamespace, System.String objectPath, System.String methodName, System.String outParameter1, System.String outParameter2, System.Nullable{``0}@ value1, System.Nullable{``1}@ value2, System.Threading.CancellationToken ct) #

Executes a WMI method and extracts two value-type out parameters.

Parameters

computer System.String required
methodNamespace System.String required
objectPath System.String required
methodName System.String required
outParameter1 System.String required
outParameter2 System.String required
value1 System.Nullable{``0}@ required
value2 System.Nullable{``1}@ required
ct System.Threading.CancellationToken required
public static IReadOnlyList<T> Query<T>(String computer, String query, Func<WmiRow, T> projector, String ns = null, Boolean fallbackToDefault = false, CancellationToken ct = null) #
Returns: IReadOnlyList<T>

Type Parameters

T

Parameters

computer String requiredposition: 0
query String requiredposition: 1
projector Func<WmiRow, T> requiredposition: 2
ns String = null optionalposition: 3
fallbackToDefault Boolean = false optionalposition: 4
ct CancellationToken = null optionalposition: 5
QueryRows 2 overloads
public static IReadOnlyList<WmiRow> QueryRows(String computer, String query, String ns = null, Boolean fallbackToDefault = false, CancellationToken ct = null) #
Returns: IReadOnlyList<WmiRow>

Runs a WMI query and returns rows as a lightweight WmiRow collection.

Parameters

computer System.String requiredposition: 0
query System.String requiredposition: 1
ns System.String = null optionalposition: 2
fallbackToDefault System.Boolean = false optionalposition: 3
ct System.Threading.CancellationToken = null optionalposition: 4
public static IReadOnlyList<WmiRow> QueryRows(String computer, String query, String ns, Boolean fallbackToDefault, WmiOptions options, CancellationToken ct = null) #
Returns: IReadOnlyList<WmiRow>

Executes a WMI query that may return multiple rows using explicit per-call options. Returns an empty list on failure.

Parameters

computer System.String requiredposition: 0
query System.String requiredposition: 1
ns System.String requiredposition: 2
fallbackToDefault System.Boolean requiredposition: 3
options ComputerX.Wmi.WmiOptions requiredposition: 4
ct System.Threading.CancellationToken = null optionalposition: 5
public static async Task<IReadOnlyList<WmiRow>> QueryRowsAsync(String computer, String query, String ns = null, Boolean fallbackToDefault = false, WmiOptions options = null, CancellationToken ct = null) #
Returns: Task<IReadOnlyList<WmiRow>>

Asynchronously executes a WMI query that may return multiple rows. Returns an empty list on failure.

Parameters

computer System.String requiredposition: 0
query System.String requiredposition: 1
ns System.String = null optionalposition: 2
fallbackToDefault System.Boolean = false optionalposition: 3
options ComputerX.Wmi.WmiOptions = null optionalposition: 4
ct System.Threading.CancellationToken = null optionalposition: 5
public static IReadOnlyList<WmiRow> QueryRowsWithCredential(String computer, String query, NetworkCredential credential, String ns = null, Boolean fallbackToDefault = false, Nullable<TimeSpan> timeout = null, Nullable<Boolean> preferCimFirst = null, CancellationToken ct = null) #
Returns: IReadOnlyList<WmiRow>

Runs a WMI query using explicit credentials and returns rows.

Parameters

computer System.String requiredposition: 0
query System.String requiredposition: 1
credential System.Net.NetworkCredential requiredposition: 2
ns System.String = null optionalposition: 3
fallbackToDefault System.Boolean = false optionalposition: 4
timeout System.Nullable{System.TimeSpan} = null optionalposition: 5
preferCimFirst System.Nullable{System.Boolean} = null optionalposition: 6
ct System.Threading.CancellationToken = null optionalposition: 7
public static async Task<IReadOnlyList<WmiRow>> QueryRowsWithCredentialAsync(String computer, String query, NetworkCredential credential, String ns = null, Boolean fallbackToDefault = false, Nullable<TimeSpan> timeout = null, Nullable<Boolean> preferCimFirst = null, CancellationToken ct = null) #
Returns: Task<IReadOnlyList<WmiRow>>

Asynchronously runs a WMI query using explicit credentials.

Parameters

computer System.String requiredposition: 0
query System.String requiredposition: 1
credential System.Net.NetworkCredential requiredposition: 2
ns System.String = null optionalposition: 3
fallbackToDefault System.Boolean = false optionalposition: 4
timeout System.Nullable{System.TimeSpan} = null optionalposition: 5
preferCimFirst System.Nullable{System.Boolean} = null optionalposition: 6
ct System.Threading.CancellationToken = null optionalposition: 7
Query``1(System.String computer, System.String query, System.Func{ComputerX.Wmi.WmiRow,``0} projector, System.String ns, System.Boolean fallbackToDefault, System.Threading.CancellationToken ct) #

Runs a WMI query and projects each row using the supplied delegate.

Parameters

computer System.String required
query System.String required
projector System.Func{ComputerX.Wmi.WmiRow,``0} required
ns System.String required
fallbackToDefault System.Boolean required
ct System.Threading.CancellationToken required
public static IReadOnlyList<T> ReadArrayOrEmpty<T>(String computer, String wmiClass, String property, String ns, Boolean fallbackToDefault, WmiOptions options, CancellationToken ct = null) #
Returns: IReadOnlyList<T>

Type Parameters

T

Parameters

computer String requiredposition: 0
wmiClass String requiredposition: 1
property String requiredposition: 2
ns String = null requiredposition: 3
fallbackToDefault Boolean = false requiredposition: 4
ct CancellationToken = null requiredposition: 5
public static async Task<IReadOnlyList<T>> ReadArrayOrEmptyAsync<T>(String computer, String wmiClass, String property, String ns = null, Boolean fallbackToDefault = false, WmiOptions options = null, CancellationToken ct = null) #
Returns: Task<IReadOnlyList<T>>

Type Parameters

T

Parameters

computer String requiredposition: 0
wmiClass String requiredposition: 1
property String requiredposition: 2
ns String = null optionalposition: 3
fallbackToDefault Boolean = false optionalposition: 4
options WmiOptions = null optionalposition: 5
ct CancellationToken = null optionalposition: 6
ReadArrayOrEmptyAsync``1(System.String computer, System.String wmiClass, System.String property, System.String ns, System.Boolean fallbackToDefault, ComputerX.Wmi.WmiOptions options, System.Threading.CancellationToken ct) #

Asynchronously reads a property that may return an array. Returns an empty list on failure.

Parameters

computer System.String required
wmiClass System.String required
property System.String required
ns System.String required
fallbackToDefault System.Boolean required
options ComputerX.Wmi.WmiOptions required
ct System.Threading.CancellationToken required
ReadArrayOrEmpty``1 2 overloads
ReadArrayOrEmpty``1(System.String computer, System.String wmiClass, System.String property, System.String ns, System.Boolean fallbackToDefault, System.Threading.CancellationToken ct) #

Reads a property across all instances of a WMI class and returns the values as a list. Non-throwing; returns an empty list on failure.

Type Parameters

T
Projected property type.

Parameters

computer System.String required
Target computer name (or ".").
wmiClass System.String required
WMI class name.
property System.String required
Property name to read.
ns System.String required
Optional namespace (defaults to root\cimv2).
fallbackToDefault System.Boolean required
When true, falls back to the default namespace if the provided one fails.
ct System.Threading.CancellationToken required
Cancellation token.
ReadArrayOrEmpty``1(System.String computer, System.String wmiClass, System.String property, System.String ns, System.Boolean fallbackToDefault, ComputerX.Wmi.WmiOptions options, System.Threading.CancellationToken ct) #

Reads a property across all instances of a WMI class using explicit options and returns the values as a list. Non-throwing; returns an empty list on failure.

Type Parameters

T
Projected property type.

Parameters

computer System.String required
Target computer name (or ".").
wmiClass System.String required
WMI class name.
property System.String required
Property name to read.
ns System.String required
Optional namespace (defaults to root\cimv2).
fallbackToDefault System.Boolean required
When true, falls back to the default namespace if the provided one fails.
options ComputerX.Wmi.WmiOptions required
Optional per-call WMI configuration such as timeout or credentials.
ct System.Threading.CancellationToken required
Cancellation token.
public static T ReadProperty<T>(String computer, String wmiClass, String property, String ns, Boolean fallbackToDefault, WmiOptions options, CancellationToken ct = null) #
Returns: T

Type Parameters

T

Parameters

computer String requiredposition: 0
wmiClass String requiredposition: 1
property String requiredposition: 2
ns String = null requiredposition: 3
fallbackToDefault Boolean = false requiredposition: 4
ct CancellationToken = null requiredposition: 5
public static async Task<T> ReadPropertyAsync<T>(String computer, String wmiClass, String property, String ns = null, Boolean fallbackToDefault = false, WmiOptions options = null, CancellationToken ct = null) #
Returns: Task<T>

Type Parameters

T

Parameters

computer String requiredposition: 0
wmiClass String requiredposition: 1
property String requiredposition: 2
ns String = null optionalposition: 3
fallbackToDefault Boolean = false optionalposition: 4
options WmiOptions = null optionalposition: 5
ct CancellationToken = null optionalposition: 6
ReadPropertyAsync``1(System.String computer, System.String wmiClass, System.String property, System.String ns, System.Boolean fallbackToDefault, ComputerX.Wmi.WmiOptions options, System.Threading.CancellationToken ct) #

Asynchronously reads a single property value. Non-throwing; returns default(T) on failure.

Parameters

computer System.String required
wmiClass System.String required
property System.String required
ns System.String required
fallbackToDefault System.Boolean required
options ComputerX.Wmi.WmiOptions required
ct System.Threading.CancellationToken required
public static T ReadPropertyOrDefault<T>(String computer, String wmiClass, String property, T defaultValue, String ns = null, Boolean fallbackToDefault = false, CancellationToken ct = null) #
Returns: T

Type Parameters

T

Parameters

computer String requiredposition: 0
wmiClass String requiredposition: 1
property String requiredposition: 2
defaultValue T requiredposition: 3
ns String = null optionalposition: 4
fallbackToDefault Boolean = false optionalposition: 5
ct CancellationToken = null optionalposition: 6
ReadPropertyOrDefault``1(System.String computer, System.String wmiClass, System.String property, ``0 defaultValue, System.String ns, System.Boolean fallbackToDefault, System.Threading.CancellationToken ct) #

Reads a single property and returns a default value when not present.

Parameters

computer System.String required
wmiClass System.String required
property System.String required
defaultValue ``0 required
ns System.String required
fallbackToDefault System.Boolean required
ct System.Threading.CancellationToken required
public static T ReadPropertyWithCredential<T>(String computer, String wmiClass, String property, NetworkCredential credential, String ns = null, Boolean fallbackToDefault = false, Nullable<TimeSpan> timeout = null, Nullable<Boolean> preferCimFirst = null, CancellationToken ct = null) #
Returns: T

Type Parameters

T

Parameters

computer String requiredposition: 0
wmiClass String requiredposition: 1
property String requiredposition: 2
credential NetworkCredential requiredposition: 3
ns String = null optionalposition: 4
fallbackToDefault Boolean = false optionalposition: 5
timeout Nullable<TimeSpan> = null optionalposition: 6
preferCimFirst Nullable<Boolean> = null optionalposition: 7
ct CancellationToken = null optionalposition: 8
public static Task<T> ReadPropertyWithCredentialAsync<T>(String computer, String wmiClass, String property, NetworkCredential credential, String ns = null, Boolean fallbackToDefault = false, Nullable<TimeSpan> timeout = null, Nullable<Boolean> preferCimFirst = null, CancellationToken ct = null) #
Returns: Task<T>

Type Parameters

T

Parameters

computer String requiredposition: 0
wmiClass String requiredposition: 1
property String requiredposition: 2
credential NetworkCredential requiredposition: 3
ns String = null optionalposition: 4
fallbackToDefault Boolean = false optionalposition: 5
timeout Nullable<TimeSpan> = null optionalposition: 6
preferCimFirst Nullable<Boolean> = null optionalposition: 7
ct CancellationToken = null optionalposition: 8
ReadPropertyWithCredentialAsync``1(System.String computer, System.String wmiClass, System.String property, System.Net.NetworkCredential credential, System.String ns, System.Boolean fallbackToDefault, System.Nullable{System.TimeSpan} timeout, System.Nullable{System.Boolean} preferCimFirst, System.Threading.CancellationToken ct) #

Asynchronously reads a single property using explicit credentials. Returns default(T) on failure.

Parameters

computer System.String required
wmiClass System.String required
property System.String required
credential System.Net.NetworkCredential required
ns System.String required
fallbackToDefault System.Boolean required
timeout System.Nullable{System.TimeSpan} required
preferCimFirst System.Nullable{System.Boolean} required
ct System.Threading.CancellationToken required
ReadPropertyWithCredential``1(System.String computer, System.String wmiClass, System.String property, System.Net.NetworkCredential credential, System.String ns, System.Boolean fallbackToDefault, System.Nullable{System.TimeSpan} timeout, System.Nullable{System.Boolean} preferCimFirst, System.Threading.CancellationToken ct) #

Reads a single property using explicit credentials. Returns default(T) on failure.

Parameters

computer System.String required
wmiClass System.String required
property System.String required
credential System.Net.NetworkCredential required
ns System.String required
fallbackToDefault System.Boolean required
timeout System.Nullable{System.TimeSpan} required
preferCimFirst System.Nullable{System.Boolean} required
ct System.Threading.CancellationToken required
ReadProperty``1 2 overloads
ReadProperty``1(System.String computer, System.String wmiClass, System.String property, System.String ns, System.Boolean fallbackToDefault, System.Threading.CancellationToken ct) #

Reads a single property value from the first instance of the class. Returns default(T) on failure.

Parameters

computer System.String required
wmiClass System.String required
property System.String required
ns System.String required
fallbackToDefault System.Boolean required
ct System.Threading.CancellationToken required
ReadProperty``1(System.String computer, System.String wmiClass, System.String property, System.String ns, System.Boolean fallbackToDefault, ComputerX.Wmi.WmiOptions options, System.Threading.CancellationToken ct) #

Reads a single property value from the first instance of the class using explicit options. Returns default(T) on failure.

Type Parameters

T
Projected property type.

Parameters

computer System.String required
Target computer name (or ".").
wmiClass System.String required
WMI class name.
property System.String required
Property name to read.
ns System.String required
Optional namespace (defaults to root\cimv2).
fallbackToDefault System.Boolean required
When true, falls back to the default namespace if the provided one fails.
options ComputerX.Wmi.WmiOptions required
Optional per-call WMI configuration such as timeout or credentials.
ct System.Threading.CancellationToken required
Cancellation token.

Properties

public static IWmiClient Client { get; set; } #

Pluggable client implementation (WMI or CIM). Defaults to HybridWmiClient.

public static String DefaultNamespace { get; set; } #

Default namespace used when none is provided. Defaults to root\cimv2.

public static Boolean AutoResolveKnownNamespaces { get; set; } #

When true, attempts to map known classes to their typical namespaces if the provided one fails.