Fact-checked by Grok 2 weeks ago

Windows Management Instrumentation

Windows Management Instrumentation (WMI) is the infrastructure for management data and operations on Windows-based operating systems, serving as Microsoft's implementation of the Web-Based Enterprise Management (WBEM) standard to provide a unified interface for accessing and manipulating system information. Introduced as a core component of , WMI enables developers and administrators to automate administrative tasks, monitor system performance, and manage hardware and software resources through a common set of classes and providers based on the Distributed Management Task Force's (DMTF) Common Information Model (CIM). At its core, WMI operates through a repository of managed objects represented as CIM classes, which describe system elements like processes, services, and network configurations, allowing queries and modifications via (COM) interfaces or scripting languages such as and . WMI providers—dynamic or static extensions—supply the actual data from sources including the , performance counters, and device drivers, while supporting both local and remote access over protocols like (DCOM) or (WinRM). This architecture facilitates interoperability in enterprise environments, integrating with tools like the WMI command-line utility (WMIC) for quick diagnostics and the .NET Framework for more complex application development. Over time, WMI has evolved with enhancements in later Windows versions, including the introduction of Windows Management Infrastructure (MI) in and Server 2012, which adds support for RESTful APIs and improved scalability while maintaining . Despite the removal of certain legacy components like WMIC in (version 25H2), WMI remains a foundational technology for system management, powering features in products such as System Center and Azure Arc.

Overview

Definition and Purpose

Windows Management Instrumentation (WMI) is the Microsoft implementation of the Web-Based Enterprise Management (WBEM) standard, providing infrastructure for management data and operations on Windows-based operating systems. As 's implementation of the Web-Based Enterprise Management (WBEM) initiative, WMI leverages the Common Information Model (CIM) standard developed by the (DMTF) to represent management information in a uniform, object-oriented format. This framework serves as the core infrastructure for accessing and manipulating system data across Windows-based environments, enabling consistent interaction with hardware, software, networks, and other managed entities. The primary purpose of WMI is to facilitate local and remote management of Windows PCs and servers through scripting languages such as and , allowing administrators to automate routine tasks without relying on disparate, vendor-specific . It consolidates various management interfaces into a single, cohesive framework, supporting operations like system monitoring, configuration changes, and diagnostics. For instance, scripts can query real-time data on resource usage or trigger events for proactive maintenance, streamlining enterprise-wide administration. Key benefits of WMI include its broad interoperability across Windows versions—it is preinstalled on and later editions, while downloadable core components are available for older systems like with 4 or higher. The framework's extensibility allows developers to create custom providers for specialized management needs, and it integrates seamlessly with enterprise tools such as System Center Configuration Manager (SCCM) for scaled deployment and oversight. This design promotes efficiency in heterogeneous environments by standardizing data access and reducing the complexity of cross-platform management.

History and Development

Windows Management Instrumentation (WMI) originated in the late 1990s as Microsoft's response to the fragmented landscape of Windows management tools, which included disparate APIs such as (SNMP) for network device monitoring, often lacking interoperability. This profusion made enterprise-wide system administration inefficient, prompting to develop a unified infrastructure for accessing and manipulating management data. Influenced by the (DMTF)'s Web-Based Enterprise Management (WBEM) initiative and Common Information Model (CIM) standards, WMI provided a standardized, object-oriented to consolidate these capabilities. WMI was first released as a downloadable add-on, version 1.5, for 4 in October 1998, enabling management data access on earlier systems without native support. It became natively integrated in , released in February 2000, as a core component of the operating system's management features, including , to facilitate scalable enterprise administration. Key milestones marked WMI's evolution toward enhanced interoperability and security. Windows XP, launched in October 2001, improved remote connectivity through refined Distributed Component Object Model (DCOM) support and firewall configurations, simplifying cross-machine queries. Windows Server 2003 R2, released in December 2005, introduced SOAP-based remoting via an early implementation of the WS-Management protocol, allowing HTTP/HTTPS transport for firewall-friendly operations. This was fully standardized in Windows Vista, released in January 2007, where WS-Management became a native service for broader WMI access across diverse network environments. Windows 8 and Windows Server 2012 introduced Windows Management Infrastructure (MI), an evolution of WMI based on the Open Management Infrastructure (OMI), adding support for RESTful APIs via CIM over HTTP and improved scalability while maintaining backward compatibility. In recent years, has focused on deprecating legacy components to promote modern alternatives like . The WMI Command-Line (WMIC) utility, a popular scripting tool, was deprecated in and in May 2021, with users encouraged to migrate to CIM cmdlets for equivalent functionality. The WMI Diagnosis Tool (WMIDiag.vbs), used for troubleshooting repository issues, was discontinued, with support ending starting with and , as built-in Event Tracing for Windows (ETW) and diagnostics took precedence. WMIC was further restricted, disabled by default in version 24H2 (October 2024), and slated for complete removal in version 25H2. Post-Windows 10, WMI has seen no fundamental architectural overhauls but has emphasized cloud-hybrid integration and . Azure Arc, introduced in 2020, extends WMI querying to on-premises and multicloud Windows servers via its Connected Machine agent, enabling centralized management through Azure services without major protocol changes. Security enhancements have targeted abuse vectors, such as unauthorized execution documented in MITRE ATT&CK technique T1047, including stricter namespace permissions, Just-In-Time (JIT) activation limits, and integration with Windows Defender to mitigate lateral movement risks in enterprise environments.

Architecture

Core Components

The Common Information Model (CIM) serves as the foundational object-oriented in Windows Management Instrumentation (WMI), providing a standardized way to represent managed entities such as systems, devices, networks, and applications. Developed and maintained by the (DMTF), CIM employs an extensible data model that includes classes to define object types, instances as specific occurrences of those classes, properties to hold data values, methods to encapsulate behaviors, and associations to model relationships between entities. WMI implements CIM version 2.x schemas, extending them with Windows-specific classes like the Win32 schema (e.g., Win32_ComputerSystem, which inherits from CIM_UnitaryComputerSystem to describe a computer's and ). This structure enables a vendor-neutral over Windows internals, allowing applications to interact with diverse components in a consistent, platform-independent manner without direct dependency on proprietary APIs. The WMI , also known as the CIM Object (CIMOM), acts as the persistent storage for CIM-based data within WMI, housing definitions and static instances of managed objects. Located at %SystemRoot%\System32\wbem\[Repository](/page/Repository), it consists of a collection of files rather than a single database, compiled from definitions during system initialization. This ensures that core —such as hierarchies, properties, and qualifiers—remains accessible for querying and management operations, while dynamic data is supplied on-demand by providers. By organizing static information in this manner, the supports efficient retrieval and maintains the integrity of the CIM model across system reboots. Namespaces provide the hierarchical organization within the WMI Repository, functioning as logical partitions that group related classes and instances while enabling isolated contexts for security and localization. For instance, root\cimv2 contains standard Win32 classes for system management, root\default holds schema definitions, and custom namespaces can be created for specialized providers. Each namespace supports multiple locales through techniques that store localized versions of classes in the repository, allowing display names, descriptions, and qualifiers to adapt to different languages. Additionally, namespaces integrate with Windows security descriptors, using access control lists to enforce permissions for users and groups, such as granting execute methods and read access to Authenticated Users by default. This design promotes modularity and scalability in managing enterprise environments. The Managed Object Format (MOF) is the declarative language used to define CIM classes and integrate them into the WMI Repository, facilitating provider development without runtime code execution for schema creation. MOF files describe class structures using a C++-like syntax, specifying properties, methods, qualifiers, and associations, which are then compiled by the MOF Compiler (Mofcomp.exe) directly into the repository. This compilation process registers the classes for provider implementation, enabling seamless data exposure through WMI interfaces. For example, a provider's MOF file might define a custom class extending Win32_LogicalDisk to include vendor-specific properties, ensuring the remains extensible for third-party hardware and software. By prioritizing MOF for schema definition, WMI maintains consistency with the DMTF standard while supporting Windows extensions.

Providers

Windows Management Instrumentation (WMI) providers are COM-based components, typically implemented as dynamic-link libraries (DLLs) or executable (EXE) files hosted by the WMI service, that map Common Information Model (CIM) classes to actual system resources and data sources such as the registry, performance counters, and hardware devices. These providers act as intermediaries, supplying dynamic data and operations to WMI consumers by interpreting CIM schemas in the context of the underlying Windows environment. WMI providers are categorized into several types based on their scope and functionality. Core providers, which are built into the Windows operating system, handle fundamental system management tasks; for example, the CIMWin32 provider exposes operating system information through classes like Win32_OperatingSystem. Extended providers add specialized capabilities for particular Windows features or applications, such as the provider (located in the root\MicrosoftActiveDirectory namespace), which maps objects to WMI for directory services management, or the SQL Server provider for database-related data. Aggregator providers combine data from multiple underlying sources into a unified view, facilitating complex queries across disparate system elements without direct consumer access to individual components. Providers fulfill critical roles in the WMI ecosystem by implementing key COM interfaces to deliver data and services. They primarily use interfaces such as IWbemServices to support operations like enumerating class instances, retrieving specific instance data, and executing class methods defined in the CIM model. Additionally, providers manage data persistence by storing and retrieving information in the WMI repository and handle event generation to notify consumers of changes in managed objects, ensuring real-time management capabilities. Developers create custom WMI providers to extend management for proprietary hardware or software by implementing the necessary COM interfaces in languages like C++ with Component Object Model (COM) or .NET using the System.Management namespace. The development process involves defining the provider's schema in a Managed Object Format (MOF) file, which describes the classes, properties, and methods, followed by compiling the MOF using the Mofcomp.exe tool to integrate it into the WMI repository. Registration occurs through the MOF or direct COM API calls, enabling the provider to be hosted either in-process (DLL) or out-of-process (EXE under WMIPRVSE.exe) for isolation and scalability. Over time, WMI has evolved to include dozens of built-in providers in Windows, with the operating system supplying approximately 40 core and extended providers for areas like networking, , and , as listed in official documentation. This extensibility allows third-party developers to add custom providers for specialized needs, supporting the growing complexity of Windows ecosystems from onward. Providers populate CIM classes, providing the foundation for without altering the underlying model.

WMI Service

The Windows Management Instrumentation (WMI) , known as Winmgmt, serves as the core runtime environment that mediates between management applications and WMI data providers on Windows systems. On Windows NT-based operating systems, the operates in-process via the Winmgmt.dll loaded within the host, while on legacy systems, it runs as a standalone , Winmgmt.exe, due to the absence of native . In modern Windows versions, including and Server editions, Winmgmt is hosted within the shared process under the LocalSystem account, enabling efficient resource sharing among system while starting automatically during system boot. The WMI service supports multiple hosting models for providers to balance security, performance, and stability. In-process hosting loads provider DLLs directly into the WMI service process space, providing tight integration but requiring trusted code to avoid compromising the host. Out-of-process hosting launches providers as separate files, isolating potentially untrusted or unstable code from the core service to prevent crashes or exploits from affecting broader system operations. Starting with and Server 2008, isolated hosting via the WmiPrvSE.exe process was introduced, creating dedicated per-user or per-namespace host instances that further enhance stability by containing provider failures within bounded environments. During its lifecycle, the WMI service initializes by loading the repository from the %systemroot%\System32\wbem\Repository directory, which stores class definitions and instance data in a CIM-compliant format. It then registers and loads providers based on entries in the system registry, making their managed objects available for querying. The service also handles DCOM activation requests to support remote connections, ensuring secure activation of components across the network. Configuration of the service, including backup and restore of the repository or adjustment of namespace settings, is managed through the WMI Control snap-in, accessible via wmimgmt.msc. Security is integral to the WMI service, which defaults to running under the highly privileged LocalSystem account to access system-wide resources. It supports client impersonation, allowing providers to execute under the caller's security context to enforce least-privilege access and prevent unauthorized elevation. Resource quotas, such as memory and handle limits for provider hosts, are configurable via registry keys under HKLM\SOFTWARE[Microsoft](/page/Microsoft)\WBEM\CIMOM or WMI classes like __ProviderHostQuotaConfiguration, helping mitigate denial-of-service risks from resource exhaustion. Misconfigurations, such as overly permissive namespace security or inadequate provider isolation, can expose the service to vulnerabilities, as seen in historical issues like those addressed in security updates. For diagnostics, the WMI service logs failures and operational events to the Windows Event Log under the Microsoft-Windows-WMI-Activity/Operational channel, capturing errors like provider load issues or query timeouts. Performance tracing is enabled using the Wevtutil command-line tool to activate Event Tracing for Windows (ETW) sessions, allowing detailed analysis of service activity, such as query execution times or provider interactions, without significant overhead when disabled.

Features

Querying and Data Access

Windows Management Instrumentation (WMI) provides mechanisms for querying and accessing data through the , an SQL-like syntax designed specifically for retrieving instances and associations from Common Information Model (CIM) classes. WQL supports SELECT statements to fetch data, such as SELECT * FROM Win32_Process WHERE Name='notepad.exe', which retrieves all properties of running processes named notepad.exe. It also enables associative joins to link related classes, like querying processes associated with specific modules, and qualifiers to filter or qualify results based on metadata. This language builds on the WMI architecture by allowing clients to interact with providers that expose CIM classes, such as those in the root\cimv2 namespace, without directly manipulating underlying data stores. Access to WMI data occurs through multiple APIs tailored to different development environments. The (COM) API uses the IWbemServices::ExecQuery method to execute WQL queries asynchronously, returning an enumerator (IEnumWbemClassObject) that iterates over result instances. In .NET applications, the System.Management namespace provides the ManagementObjectSearcher class, which encapsulates a WQL query and scope (e.g., a specific namespace), executing it via Get() to yield a ManagementObjectCollection of results. For scripting, the WMI Scripting API employs GetObject with a moniker string prefixed by "winmgmts:", such as GetObject("winmgmts:") to obtain an SWbemServices object for subsequent queries like ExecQuery. These methods ensure consistent data retrieval across languages while adhering to WMI's security context and impersonation levels. Instance management in WMI involves enumerating classes and their instances, modifying properties, and invoking class or instance methods. Enumeration uses API-specific calls, such as IWbemServices::EnumInstances in COM to list all instances of a class like Win32_Process, or ManagementObjectSearcher in .NET for filtered enumeration. Properties can be retrieved via Get (e.g., accessing the ProcessId of a Win32_Process instance) or set using Put for modifiable properties, with changes persisted through the provider. Method invocation, such as calling Terminate on a Win32_Process instance to end a process, is handled by IWbemServices::ExecMethod in COM or InvokeMethod in .NET, passing input parameters and receiving outputs. These operations require valid connections to the WMI service and appropriate permissions, often checked via the object's security descriptor. WMI object paths and moniker strings facilitate direct access to specific instances without full enumeration. A moniker string follows the format winmgmts:\\<server>\<namespace>:<class>.<property>='<value>', for example, winmgmts:\\.\root\cimv2:Win32_Service.Name='Spooler' to reference the Spooler service instance. This syntax incorporates , , , and properties, enabling quick binding in like GetObject for scripting or ManagementPath in .NET. Paths must conform to WMI's object path requirements, using escaped characters for special values and forward slashes for namespace components. Error handling is integral to WMI querying, with common issues like WBEM_E_NOT_FOUND (0x80041002) indicating that a specified , instance, or does not exist, often due to or invalid paths. return HRESULT codes for failures, requiring clients to check results from methods like ExecQuery and implement retries or fallbacks, such as verifying existence before querying. Proper handling ensures robust applications, especially when dealing with dynamic system states where instances may appear or disappear.

Event Management

Windows Management Instrumentation (WMI) provides an event infrastructure that enables applications to receive asynchronous notifications about changes in managed data and system states, facilitating reactive monitoring without constant polling. This system supports various event types, subscription mechanisms, and delivery interfaces, allowing developers to respond to system events in . Events are generated by WMI itself or by providers, and consumers can filter them using WMI Query Language (WQL) queries for targeted notifications. WMI events are categorized into three primary types: intrinsic, extrinsic, and timer events. Intrinsic events notify of changes within the , such as the creation, modification, or deletion of instances, classes, or namespaces; for example, the __InstanceCreationEvent class signals the addition of a new instance, like a Win32_LogicalDisk representing a mounted drive. Extrinsic events are custom events defined by providers and not directly tied to data model alterations, such as the RegistryValueChangeEvent from the System Registry Provider, which reports modifications to registry keys. Timer events, meanwhile, are scheduled occurrences generated at fixed intervals or absolute times using classes like __IntervalTimerInstruction or __AbsoluteTimerInstruction, producing instances of __TimerEvent for periodic tasks without relying on external timers. Subscriptions to WMI events follow a model that includes temporary and permanent options to suit different persistence needs. Temporary subscriptions are in-memory and exist only while the consuming application or is running; they are typically created using methods like SWbemServices.ExecNotificationQueryAsync in scripting environments or IWbemServices::ExecNotificationQueryAsync in C++ applications. Permanent subscriptions, in contrast, are stored persistently in the WMI repository (often in the \root\subscription namespace) and survive system reboots; they rely on standard consumers such as __EventFilter for query definition and __FilterToConsumerBinding to associate filters with actions like execution. Event delivery in WMI occurs through sink interfaces that handle notifications from the WMI service. The primary interface is IWbemObjectSink, implemented by consumers to receive objects and status updates, often in a separate thread to avoid blocking. Scripting languages use the SWbemSink object for similar purposes, enabling asynchronous callbacks. Filtering is applied via WQL in queries, such as SELECT * FROM __InstanceCreationEvent WHERE TargetInstance ISA 'Win32_LogonSession', to deliver only relevant events and reduce overhead. Common use cases for WMI event management include monitoring user logons by subscribing to creation events for Win32_LogonSession instances, which can trigger security audits or session management scripts. Performance alerts, such as low disk space notifications via __InstanceModificationEvent on Win32_LogicalDisk, enable proactive . WMI integrates with the Windows Event Log through consumers like NTEventLogEventConsumer, which automatically logs matching events to the system log for centralized auditing and analysis. Despite its flexibility, WMI event management has notable limitations, including the absence of built-in queuing for undelivered events, which can lead to dropped notifications during high-volume scenarios if internal thresholds are exceeded (e.g., default limits of 10,000,000 to 20,000,000 bytes (10 MB to 20 MB)). Subscription quotas restrict scalability, capping total temporary and permanent subscriptions at 10,000 system-wide (1,000 per user) and polling memory at 10,000,000 bytes (5,000,000 per user), potentially causing overload or failures in resource-intensive environments.

Remoting and Protocols

Windows Management Instrumentation (WMI) supports local access by default through the (DCOM) on the same machine, allowing applications to interact with WMI namespaces without network configuration. For remote access, WMI initially relied on DCOM starting with , which requires opening port 135 for the endpoint mapper and dynamic high ports (typically 1024-65535) for RPC communication, though fixed ports can be configured to reduce firewall complexity. Beginning with and , WMI introduced support for (WinRM), an implementation of the protocol that uses HTTP or for transport and SOAP-based messaging, enabling more firewall-friendly remoting over standard ports 80 and 443. Configuration for remote WMI access is managed through the WMI Control tool (wmimgmt.msc), where administrators can enable remote connections, set authentication levels (such as Packet Privacy for signing and ), and configure via descriptors to control read, write, and execute permissions for users or groups. Authentication defaults to for non-domain scenarios or in domain environments, with impersonation levels ensuring the remote process runs under the caller's context to prevent . The WMI service hosts these remote calls, routing them to appropriate providers while enforcing these settings. The evolution of WMI protocols addressed early limitations of DCOM, such as poor and firewall traversal issues; Windows Server 2003 R2 introduced initial SOAP-based remoting via WinRM for simpler HTTP access, marking a shift toward web services standards. Post-Vista, full compliance became the preferred method, supporting broader , including with non-Windows systems like through open-source implementations such as OpenWSMan, which enable CIM-based management across heterogeneous environments. Security for WMI remoting emphasizes encryption via in to protect , alongside DCOM's built-in signing and sealing options to mitigate man-in-the-middle attacks. However, misconfigurations can expose risks, such as lateral movement in cyberattacks where attackers exploit WMI for remote execution using valid credentials, as documented in techniques like T1047 in the framework. Hardening involves settings to restrict DCOM access (e.g., via "Windows Management Instrumentation (WMI)" rules), disabling unused namespaces to limit attack surfaces, and applying updates like DCOM hardening patches to address vulnerabilities such as CVE-2021-26414.

Tools and Development

Built-in Tools

Windows Management Instrumentation (WMI) includes several built-in tools that enable administrators and developers to interact with its namespaces, classes, and data without requiring custom scripting or programming. These utilities facilitate testing, querying, configuration, and maintenance tasks directly from the Windows environment. WBEMTest.exe serves as a graphical interface for exploring and testing WMI components. It allows users to connect to specific namespaces, enumerate classes and instances, execute WQL queries, and monitor events, making it particularly valuable for debugging WMI providers and verifying data access. To launch it, administrators can run wbemtest.exe from the command prompt or Run dialog, then use its dialog-based controls to perform operations like object enumeration or method invocation. The Windows Management Instrumentation Command-line (WMIC) provides a command-line interface for executing common WMI queries using predefined aliases, such as wmic process list to retrieve running processes. However, WMIC has been deprecated since and the corresponding semi-annual channel release of , with recommending migration to cmdlets for equivalent functionality. In version 24H2, WMIC is disabled by default as a Feature on Demand, though it can be re-enabled if needed; WMIC was fully removed in version 25H2, released in September 2025. For instance, the alias-based queries in WMIC can be replaced by Get-CimInstance -ClassName Win32_Process in , which uses the more modern CIM (Common Information Model) sessions over protocol. WMI Control, accessible via wmimgmt.msc as a (MMC) snap-in, offers centralized configuration of the WMI service. It supports tasks such as backing up and restoring the WMI , adjusting permissions on namespaces, and enabling or disabling logging for auditing purposes. Users can launch it from the Run dialog or Computer Management console, then right-click WMI Control (Local) to access properties for global settings like automatic restart options or quota management. For schema registration, the Managed Object Format (MOF) Compiler, mofcomp.exe, compiles MOF files into the WMI repository, adding new classes and instances as defined in the syntax. This tool is essential for providers to extend WMI with custom data models; for example, running mofcomp.exe filename.mof parses the file and registers it in the default root namespace unless otherwise specified with switches like /namespace. It connects to the WMI service for compilation but operates in check-only mode with the /check option to validate without applying changes. WMI maintenance tasks, such as pruning or resetting the , can be performed using the winmgmt command-line tool, particularly the /resetrepository switch to rebuild a corrupted or bloated from its baseline state. This operation stops the WMI service, discards inconsistent data, and reinitializes the , which is recommended as a last-resort measure for resolving issues like query failures or performance degradation; it should be run from an elevated command prompt after backing up critical data via /backuprepository. Administrators are advised to verify consistency first with /verifyrepository before resorting to a .

Development Interfaces

The (COM) serves as the foundational interface for developing WMI clients and providers in unmanaged code, primarily using C++. Developers initialize COM and use the IWbemLocator interface to connect to a WMI on a local or remote host, obtaining an IWbemServices pointer for subsequent operations such as querying classes, enumerating instances, executing methods, and subscribing to events. Key interfaces like IEnumWbemClassObject facilitate enumeration, while IWbemClassObject handles property access and modifications; applications must link against wbemuuid.lib and include headers such as wbemcli.h for UUID definitions and HRESULT error codes. In managed code, the .NET Framework's System.Management provides a wrapper for WMI access, enabling developers to create clients without direct interaction. The ManagementScope class represents a WMI scope for connecting to local or remote systems, while ManagementClass allows retrieval and manipulation of WMI classes like Win32_Process. Starting with WMI , enhancements in this support advanced through ManagementEventWatcher for subscribing to queries and ManagementOperationObserver for asynchronous callbacks, improving responsiveness in event-driven applications. Scripting languages offer lightweight access to WMI without compiling binaries. VBScript and JScript utilize the winmgmts moniker to instantiate SWbemServices objects for querying and method invocation, as in Set locator = CreateObject("WbemScripting.SWbemLocator"). integrates WMI via cmdlets like Get-WmiObject for instance retrieval and Invoke-WmiMethod for execution, with type accelerators such as [wmi] simplifying syntax; however, these have transitioned to CIM cmdlets (e.g., Get-CimInstance) for better cross-platform compatibility in PowerShell Core. For provider development, WMI Provider Extensions enable C++ implementations using headers like wbemprov.h to define objects that expose custom classes and data to the WMI repository. Developers implement interfaces such as IWbemProviderInit and IWbemServices to handle queries and events, registering the provider via MOF files for integration with the WMI service. In .NET, managed providers leverage the System.Management. namespace, deriving from BaseManagement types and applying attributes like ManagementEntity to instrument applications without dependencies. Best practices emphasize robust error handling with HRESULT codes from wbemcli.h, mapping them to descriptive messages via macros like WBEM_S_NO_ERROR, and implementing try-catch blocks in .NET or exception handling in C++. Asynchronous patterns are recommended for long-running operations, using callbacks in (e.g., IWbemObjectSink) or event observers in .NET to avoid blocking; tools like the WMI Code Creator utility aid prototyping by generating sample code for queries and providers. Development assumes familiarity with WMI features like querying and events, with migration to CIM standards advised for cross-platform scenarios beyond Windows-specific WMI dependencies.

Applications and Extensions

Practical Examples

One practical application of WMI involves querying wireless network information, such as the Service Set Identifier (SSID) of connected networks. The MSNdis_80211_ServiceSetIdentifier in the root\WMI namespace provides access to this data on supported systems. For instance, in C#, developers can use the System.Management namespace to connect to the WMI repository and enumerate instances of this class. The following code snippet demonstrates retrieving SSID values:
csharp
using System;
using System.Management;

class Program
{
    static void Main()
    {
        ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\WMI", "SELECT * FROM MSNdis_80211_ServiceSetIdentifier");
        foreach (ManagementObject queryObj in searcher.Get())
        {
            Console.WriteLine("SSID: {0}", queryObj["Ndis80211ServiceSetID"]);
        }
    }
}
This approach allows applications to monitor or log wireless connections programmatically. In process management, WMI enables enumeration and control of running processes through the Win32_Process in the root\cimv2 . Administrators can active processes or terminate specific ones using cmdlets that interface with WMI. For example, to find and terminate instances of Notepad.exe, the following PowerShell command filters and invokes the Terminate method:
powershell
Get-WmiObject -Class Win32_Process -Filter "Name='notepad.exe'" | ForEach-Object { $_.Terminate() }
This is useful for scripts that enforce limits or respond to policies. Modern equivalents use CIM cmdlets for improved and cross-platform , such as Get-CimInstance -ClassName Win32_Process -Filter "Name='notepad.exe'" | Invoke-CimMethod -MethodName Terminate. System inventory tasks leverage WMI to gather hardware details for and compliance reporting. The Win32_Processor class retrieves CPU information, including model, speed, and core count, from the root\cimv2 namespace. A PowerShell example to collect processor data across multiple machines is:
powershell
Get-WmiObject -Class Win32_Processor | Select-Object Name, NumberOfCores, MaxClockSpeed
This output can feed into inventory databases, helping IT teams track hardware configurations without manual inspection. CIM sessions extend this to remote or distributed environments efficiently. WMI's event infrastructure supports monitoring system changes, such as service startups, via intrinsic events like __InstanceCreationEvent. To detect new instances of the Win32_Service class, a WQL query can be registered in .NET applications or scripts. The following C# example sets up an event watcher for service creations:
csharp
using System;
using System.Management;

class Program
{
    static void Main()
    {
        string query = "SELECT * FROM __InstanceCreationEvent WITHIN 10 WHERE TargetInstance ISA 'Win32_Service'";
        ManagementEventWatcher watcher = new ManagementEventWatcher(query);
        watcher.EventArrived += new EventArrivedEventHandler(HandleEvent);
        watcher.Start();
        Console.WriteLine("Monitoring service starts...");
        Console.ReadLine();
        watcher.Stop();
    }

    private static void HandleEvent(object sender, EventArrivedEventArgs e)
    {
        Console.WriteLine("New service started: {0}", e.NewEvent["TargetInstance"]["Name"]);
    }
}
Such monitoring aids in real-time alerting for service dependencies or failures. WMI integrates with enterprise tools like System Center Configuration Manager (SCCM) for deployment queries, where WQL statements retrieve device compliance or software status from the SMS Provider. For example, queries against classes like SMS_DeploymentSummary assess application rollout success across endpoints. In security auditing, WMI accesses event logs via the Win32_NTLogEvent class to query logon events in the Security log, filtering for EventCode 4624 (successful logons) to track user access patterns. A PowerShell example for auditing recent logons is:
powershell
Get-WmiObject -Class Win32_NTLogEvent -Filter "Logfile='[Security](/page/Security)' AND EventCode=4624 AND TimeGenerated > '20250101'" | Select-Object TimeGenerated, Message
This facilitates forensic analysis and policy enforcement without direct log parsing. CIM cmdlets provide a recommended alternative for these operations in contemporary environments.

Driver Extensions

Windows Management Instrumentation (WMI) provides extensions to the Windows Driver Model (WDM) that enable kernel-mode device drivers to act as WMI providers, exposing hardware-specific data and events to management applications. These extensions allow minidrivers to register data blocks and event blocks, facilitating integration with WMI's query and notification mechanisms without requiring full user-mode provider development. To implement these extensions, drivers use the WMIGUID_REGINFO structure during initialization to register GUIDs associated with data or event blocks, specifying details such as block size, version, and callback entry points for handling WMI requests. The driver must define required callbacks, including DpWmiQueryReginfo for providing registration information and DpWmiQueryDataBlock for retrieving data instances, while optional callbacks like DpWmiExecuteMethod support method invocation and DpWmiFunctionControl enable tracing control. These routines are invoked via the WMI library's WmiSystemControl function, which processes WMI IRPs (such as IRP_MN_QUERY_ALL_DATA or IRP_MN_CHANGE_SINGLE_ITEM) sent to the driver. For event handling, drivers register event blocks and fire notifications using WmiFireEvent, which serializes event data and delivers it to registered WMI consumers. This architecture supports up to 32 event logger instances, with events defined in Managed Object Format (MOF) files for compilation into the WMI repository. These extensions, part of WMI's kernel-mode support, have been available since , enabling drivers to integrate seamlessly with WMI's event tracing infrastructure from that version onward. Common use cases include hardware monitoring, where drivers expose device status and performance metrics; for example, the Win32_IDEController WMI class retrieves IDE controller properties, including status indicators like "Pred Fail" for predictive failure warnings on hard disk drives. In power management scenarios, drivers can notify WMI of state changes, such as transitions to low-power modes, enabling system-wide power event propagation through classes like Win32_PowerManagementEvent. Such integrations support tasks like monitoring disk health or coordinating device power states across the system. While the Windows Driver Framework (WDF) provides a modernized WMI provider model recommended for new development starting from Windows Vista, using framework objects and callbacks (e.g., EvtWmiProviderFunctionControl) and simplifying development while maintaining compatibility with WMI data blocks and events defined in MOF files, WDM-based WMI extensions remain supported for legacy drivers. Legacy WDM-based implementations remain viable in modern Windows versions for backward compatibility but are not recommended for new driver development. Developing WMI-enabled drivers requires the (WDK), which includes headers like wmilib.h and samples for kernel-mode providers. Examples in the WDK demonstrate registration via IoWMIRegistrationControl and event logging with IoWMIWriteEvent, emphasizing proper IRP completion with WmiCompleteRequest to avoid resource leaks. Since these extensions operate in context, providers must handle requests atomically to prevent deadlocks or invalid memory access; faulty implementations can crash the entire system, underscoring the need for rigorous testing with tools like Driver Verifier.

References

  1. [1]
    Windows Management Instrumentation - Win32 apps | Microsoft Learn
    Mar 7, 2023 · Windows Management Instrumentation (WMI) is the infrastructure ... Documentation about the WMI classes, WMI C++ classes, WMI COM API ...About WMI · WMI Reference · Using WMI · Starting and stopping the WMI...
  2. [2]
    About WMI - Win32 apps | Microsoft Learn
    Jan 7, 2021 · Windows Management Instrumentation (WMI) is the Microsoft implementation of Web-Based Enterprise Management (WBEM), which is an industry initiative.
  3. [3]
    Windows Management Instrumentation: A Simple, Powerful Tool for ...
    Oct 24, 2019 · WMI is part of the Windows 2000 operating system, and is also available for Windows 98 and Windows NT 4.0 (Service Pack 4 and above). As an ...
  4. [4]
    WMI command-line (WMIC) utility - Win32 apps | Microsoft Learn
    Jul 15, 2024 · The WMI command-line (WMIC) utility provides a command-line interface for Windows Management Instrumentation (WMI). WMIC is compatible with existing shells and ...
  5. [5]
    Windows Management Infrastructure (MI) | Microsoft Learn
    May 30, 2018 · Windows 8 and Windows Server 2012 introduced new ways of creating Windows Management Infrastructure (MI) applications. MI Providers and ...
  6. [6]
    WMI command line (WMIC) utility deprecation: Next steps
    Starting January 29, 2024, you'll find Windows Management Instrumentation Command line (WMIC) feature "disabled by default" on the insider build of Windows 11.
  7. [7]
    What is Dritek WMI Service and do I need it for Windows 7?
    Dec 31, 2009 · I'd like to let you know that WMI is an acronym for Windows Management Instrumentation, which is a set of extensions to the Windows Driver Model ...<|control11|><|separator|>
  8. [8]
    Windows Kernel-Mode WMI Library - Microsoft Learn
    Dec 14, 2021 · To satisify Windows Driver Model (WDM) requirements, you should implement WMI for your driver so that your driver can be managed by the system.
  9. [9]
    about_WMI - PowerShell | Microsoft Learn
    Sep 29, 2025 · Windows Management Instrumentation (WMI) uses the Common Information Model (CIM) to represent systems, applications, networks, devices, and other manageable ...
  10. [10]
    Operating System Availability of WMI Components - Win32 apps
    Jan 7, 2021 · WMI is installed by default on all Windows desktop and server platforms. However, certain WMI providers may or may not be installed, depending on the OS ...
  11. [11]
    CIM Common Information Model - DMTF
    Historical Documents ... OMI is an open source project to further the development of a production quality implementation of the DMTF CIM/WBEM standards.Missing: WMI Microsoft
  12. [12]
    Adding WMI to NT 4.0 and Win95 Systems - ITPro Today
    You can download WMI 1.5 for NT 4.0 Service Pack 4 (SP4) or later and Win95 from http://www.msdn.microsoft.com/downloads/sdks/wmi/download.asp. If you plan ...
  13. [13]
    Leading Management Solutions Companies Support Windows 2000 ...
    Jan 26, 2000 · WMI is Microsoft's implementation of Web-based enterprise management (WBEM), a set of standards developed by the Distributed Management Task ...
  14. [14]
    Setting up a Remote WMI Connection - Win32 apps | Microsoft Learn
    Jan 7, 2021 · Setting up a remote WMI connection may require changing Windows Firewall, User Account Control, DCOM, or CIMOM settings. Firewall exceptions ...Missing: XP | Show results with:XP
  15. [15]
    [DOC] Hardware Management in Microsoft Windows Server 2003 "R2" Beta 2
    WMI can be used to check whether the WS-Management service is installed. To do this, simply enumerate the Win32_Service class and look for service whose name is ...
  16. [16]
    [MS-WSMAN]: Relationship to Other Protocols - Microsoft Learn
    Oct 30, 2024 · The WS-Management Protocol uses SOAP, as specified in [SOAP1.2-1/2003], over HTTP or HTTPS for communication.
  17. [17]
    wmic | Microsoft Learn
    Jun 2, 2025 · The WMI command-line (WMIC) utility is deprecated as of Windows 10, version 21H1, and as of the 21H1 semi-annual channel release of Windows Server.Syntax · Sub-commands
  18. [18]
    WMI Diagnosis Tool no more available for download ,, is WMIC ...
    Jan 11, 2023 · Please be informed that WMI diagnosis Utility (WMIDiag.exe) is no longer supported starting with Windows 8 and Windows Server 2012. For more ...WMI Diag tool - Microsoft Q&Ahow to run WMIDiag script i.e., WMIDiag.vbs, in the native Windows ...More results from learn.microsoft.comMissing: discontinuation | Show results with:discontinuation
  19. [19]
    Microsoft: WMIC will be removed after Windows 11 25H2 upgrade
    Sep 16, 2025 · Microsoft deprecated WMIC in Windows Server 2012 (in 2016) and in Windows 10 21H1 (2021). Redmond converted it into a Feature on Demand (FoD) ...
  20. [20]
    Azure Arc-enabled servers Overview - Microsoft Learn
    Jan 23, 2025 · Azure Arc-enabled servers lets you manage Windows and Linux physical servers and virtual machines hosted outside of Azure, on your corporate network, or other ...Supported Cloud Operations · Supported Regions · Agent StatusMissing: WMI | Show results with:WMI
  21. [21]
    Windows Management Instrumentation, Technique T1047 - Enterprise
    WMI is an administration feature that provides a uniform environment to access Windows system components.
  22. [22]
    Securing a Remote WMI Connection - Win32 apps | Microsoft Learn
    Jan 7, 2021 · To connect to a remote computer using WMI, ensure that the correct DCOM settings and WMI namespace security settings are enabled for the connection.Missing: XP | Show results with:XP<|separator|>
  23. [23]
    Common Information Model - Win32 apps - Microsoft Learn
    Jan 7, 2021 · The Common Information Model (CIM) is an extensible, object-oriented data model that contains information about different parts of an enterprise.Missing: history WBEM
  24. [24]
    CIM Classes (WMI) - Win32 apps | Microsoft Learn
    Jan 7, 2021 · The Distributed Management Task Force (DMTF) Common Information Model (CIM) classes are the parent classes upon which WMI classes are built.
  25. [25]
    WMI Architecture - Win32 apps | Microsoft Learn
    Jan 7, 2021 · WMI provides a uniform interface for any local or remote applications or scripts that obtain management data from a computer system, a network, or an ...
  26. [26]
    winmgmt - Win32 apps - Microsoft Learn
    Nov 3, 2023 · Manually restores the WMI repository from the specified backup file. The filename argument should contain the full path to the backup file ...Switches · Remarks
  27. [27]
    Access to WMI Namespaces - Win32 apps | Microsoft Learn
    Jan 7, 2021 · WMI uses a standard Windows security descriptor to control access to WMI namespaces. When you connect to WMI, either through the WMI "winmgmts" moniker or a ...WMI Namespace Security · WMI Namespace Auditing · Namespace Access Settings
  28. [28]
    Localizing WMI Class Information - Win32 apps - Microsoft Learn
    Jan 7, 2021 · WMI implements a technique that allows multiple localized versions of the same class to be stored in the repository.
  29. [29]
    Managed Object Format (MOF) - Win32 apps - Microsoft Learn
    Jan 7, 2021 · The recommended way for WMI providers to implement new WMI classes is in MOF files which are compiled using Mofcomp.exe into the WMI repository.
  30. [30]
    mofcomp - Win32 apps - Microsoft Learn
    Jan 7, 2021 · The Managed Object Format (MOF) compiler parses a file containing MOF statements and adds the classes and class instances defined in the file to the WMI ...
  31. [31]
    Providing Data to WMI - Win32 apps | Microsoft Learn
    Jan 7, 2021 · WMI makes data about Windows manageable objects available through WMI providers. A provider retrieves data from a system component, such as a process, or an ...Implementing A Model For A... · Determining A Provider Type... · Determining A Hosting...Missing: origins fragmented MAPI
  32. [32]
    WMI Providers - Win32 apps - Microsoft Learn
    Jan 7, 2021 · For more information, see About the RSoP WMI Method Provider and RSoP WMI Classes. ... Windows Driver Model (WDM). Win32 Provider, Provides access ...
  33. [33]
    WMI/MI/OMI Providers - Win32 apps | Microsoft Learn
    Mar 14, 2023 · The SMB Management API provides classes and methods to manage shares and share access. SNMP. Maps Simple Network Management Protocol (SNMP) ...Missing: origins fragmented MAPI
  34. [34]
    WMI Infrastructure - Win32 apps | Microsoft Learn
    Jan 7, 2021 · The WMI repository is a storage area for WMI-related static data. The WMI service is implemented as a service process within a shared service ...
  35. [35]
    Windows Management Instrumentation - Microsoft Learn
    Oct 25, 2019 · WMI is one of several technologies introduced by Microsoft to support the management of systems in an enterprise. Active Directory provides ...
  36. [36]
    Provider Hosting and Security - Win32 apps | Microsoft Learn
    Jan 7, 2021 · WMI resides in a shared service host with several other services. ... Securing WMI Namespaces · Provider Configuration and Troubleshooting ...
  37. [37]
    Setting Namespace Security with the WMI Control - Win32 apps
    Jan 7, 2021 · Run the WMI Control to set the security on the new namespace. On the Start menu, click Run and type wmimgmt.msc or see Locating the WMI Control.
  38. [38]
    Error 0x8004106C while you run WMI queries - Windows Server
    Jan 15, 2025 · Error 0x8004106C is a quota violation when running WMI queries, caused by the WMI Provider service reaching its quota limit.Symptoms · Cause
  39. [39]
    MS09-012: Vulnerabilities in Windows could allow elevation of ...
    Resolves vulnerabilities in Windows that could allow elevation of privilege if an attacker is allowed to log on to the system and then run a specially ...
  40. [40]
    Tracing WMI Activity - Win32 apps | Microsoft Learn
    Jan 7, 2021 · WMI activity can be traced using Event Viewer by enabling the WMI trace log, or via the Wevtutil command-line tool. WPP-based tracing is also ...Missing: fragmentation | Show results with:fragmentation
  41. [41]
    WQL (SQL for WMI) - Win32 apps - Microsoft Learn
    Aug 20, 2021 · The WMI Query Language (WQL) is a subset of the American National Standards Institute Structured Query Language (ANSI SQL) with minor semantic ...
  42. [42]
    Querying with WQL - Win32 apps | Microsoft Learn
    Jan 7, 2021 · WQL is a subset of ANSI SQL used for WMI queries, supporting data queries to retrieve class instances and data associations.
  43. [43]
    WQL Query - MS-WMI - Microsoft Learn
    Apr 23, 2024 · WQL is a query language for WMI, a subset of SQL, that retrieves from classes, not tables, and returns CIM classes or instances. It has schema, ...
  44. [44]
    IWbemServices::ExecQuery (wbemcli.h) - Win32 apps
    Oct 12, 2021 · The IWbemServices::ExecQuery method processes the query specified in the strQuery parameter and creates an enumerator through which the caller can access the ...
  45. [45]
    ManagementObjectSearcher Class (System.Management)
    The ManagementObjectSearcher retrieves management objects based on a query, using a WMI query and optionally a ManagementScope.
  46. [46]
    Creating a WMI Script - Win32 apps | Microsoft Learn
    May 31, 2022 · For VBScript and the Scripting API for WMI, retrieve an SWbemServices object with a moniker and a call to GetObject. Alternately, you can ...
  47. [47]
    Enumerating WMI - Win32 apps - Microsoft Learn
    May 31, 2022 · Provides instructions on how to enumerate WMI instances of a class using PowerShell, C#, VBScript, and C++.Missing: invoke | Show results with:invoke
  48. [48]
    ManagementObject Class (System.Management) | Microsoft Learn
    Gets the collection of WMI system properties of the management object (for example, the class name, server, and namespace). WMI system property names begin ...Definition · Constructors
  49. [49]
    Constructing a Moniker String - Win32 apps | Microsoft Learn
    Jan 7, 2021 · The moniker string format is similar to that of a standard WMI object path. For more information, see WMI Object Path Requirements.Missing: syntax | Show results with:syntax
  50. [50]
    Connecting to WMI with VBScript - Win32 apps - Microsoft Learn
    Jan 7, 2021 · The "winmgmts:" tells WSH to use Scripting API objects. In this particular example, the WSH will know that it should return an SWbemObject that ...
  51. [51]
    WMI Object Path Requirements - Win32 apps - Microsoft Learn
    Jan 7, 2021 · WMI uses object paths in the reference properties of association classes to identify related objects, as well as using object paths in input or output ...Missing: moniker | Show results with:moniker
  52. [52]
    "0x80041002 (WBEM_E_NOT_FOUND)" error occurs when you try ...
    Dec 28, 2010 · This issue occurs because the WMI repository is corrupted. The WMI service does not correctly handle an item deletion operation for the WMI ...
  53. [53]
    Receiving a WMI Event - Win32 apps | Microsoft Learn
    Jan 7, 2021 · WMI contains an event infrastructure that produces notifications about changes in WMI data and services. WMI event classes provide notification when specific ...Event Queries · Example
  54. [54]
    Determining the Type of Event to Receive - Win32 apps
    Jan 7, 2021 · WMI creates intrinsic events for objects stored in the WMI repository. A provider generates intrinsic events for dynamic classes, but WMI can ...
  55. [55]
    Receiving Asynchronous Event Notifications - Win32 - Microsoft Learn
    Jan 7, 2021 · WMI supports intrinsic and extrinsic events. An intrinsic event is an event predefined by WMI, whereas an extrinsic event is an event defined by ...<|separator|>
  56. [56]
    Monitoring and Responding to Events with Standard Consumers
    Mar 15, 2021 · Identify an event to monitor and create an event query. You can check to see if there is an intrinsic or extrinsic event that use. For example, ...
  57. [57]
    Setting Up a Fixed Port for WMI - Win32 apps | Microsoft Learn
    Nov 9, 2023 · The following procedure is an automated setup to allow WMI to have a fixed port. The procedure uses the winmgmt command-line tool.<|control11|><|separator|>
  58. [58]
    Windows Remote Management - Win32 apps | Microsoft Learn
    Feb 16, 2023 · Windows Remote Management (WinRM) is the Microsoft implementation of the WS-Management protocol, which is a standard Simple Object Access Protocol (SOAP)-based ...
  59. [59]
    OpenWSMAN - WS-Management for all
    Interoperable with Windows WMI/WINRM, Intel AMT, Dell DRAC; Scriptable plugins. Supported Standards. DSP0226 1.1.0 - Web Services for Management (WS Management) ...
  60. [60]
    Authentication for Remote Connections - Win32 apps | Microsoft Learn
    Aug 25, 2021 · To explicitly establish Kerberos authentication in the call to WSMan.CreateSession, set the WSManFlagUseKerberos flag in the flags parameter.
  61. [61]
    KB5004442—Manage changes for Windows DCOM Server Security ...
    The final phase of DCOM updates will be released in March 2023. It will keep the DCOM hardening enabled and remove the ability to disable it.
  62. [62]
    What's new in Windows Server 2025 | Microsoft Learn
    Feb 28, 2025 · Windows Server 2025 has the following key benefits: Windows Admin Center in Azure Arc: Integrates Azure Arc with Windows Admin Center so ...Server 2022 · DTrace on Windows · Mica material
  63. [63]
    Introduction to WBEMTEST - Configuration Manager - Microsoft Learn
    Jan 5, 2024 · You can navigate to other WMI namespaces, just like you might change directories on the file system. ROOT\CIMV2 is a WMI namespace where ...
  64. [64]
    Scenario guide: Troubleshoot WMI connectivity and access issues
    Jan 15, 2025 · The saved repository should be a copy of the entire repository folder. The following procedure describes how to recompile the WMI provider MOF ...<|control11|><|separator|>
  65. [65]
    Using Windows Management Instrumentation for Diagnostics - WCF
    Nov 6, 2021 · To run it, launch a command console by typing cmd.exe in the Start/Run dialog box and click OK. Then, type wbemtest.exe in the command window.
  66. [66]
    Working with WMI - PowerShell | Microsoft Learn
    Mar 24, 2025 · This option allows the Get-CimInstance cmdlet to communicate with versions of Windows as old as Windows Server 2000. This ability also means ...
  67. [67]
    Configure WMI to Show Server Status in SQL Server Tools
    Aug 18, 2025 · In the Open box, type wmimgmt.msc , and then select OK. In the Windows Management Infrastructure program, right-click WMI Control (Local), and ...
  68. [68]
    Running the MOF Compiler on a File - Win32 apps | Microsoft Learn
    Jun 15, 2021 · By default, Mofcomp.exe stores the compiled classes in the root\default WMI namespace. Note that the default namespace for Mofcomp.exe is not ...
  69. [69]
    Compiling MOF Files - Win32 apps - Microsoft Learn
    Jan 7, 2021 · The Managed Object Format (MOF) compiler, Mofcomp.exe, parses a file containing MOF statements and adds the classes and class instances defined in the file to ...
  70. [70]
    Winmgmt issue - Microsoft Q&A
    May 2, 2023 · It is possible that there is a corruption in the WMI repository on your system, which can cause issues with accessing WMI files. Here are a few ...
  71. [71]
    Is there any Script for Rebuilding WMI - Microsoft Q&A
    Jul 3, 2024 · I am currently facing issues with the Windows Management Instrumentation (WMI) on my systems and need to rebuild it to restore its functionality.
  72. [72]
    COM API for WMI - Win32 apps - Microsoft Learn
    Jan 7, 2021 · You can use the WMI Component Object Model (COM) API to write management client applications or create a new WMI provider.Missing: ExecQuery | Show results with:ExecQuery
  73. [73]
    System.Management Namespace | Microsoft Learn
    The System.Management namespace provides access to management information and events about the system, devices, and applications instrumented to WMI. ...
  74. [74]
    Scripting API for WMI - Win32 apps | Microsoft Learn
    Jan 26, 2022 · The WMI scripting reference contains definitions for the WMI Scripting API. Use this API if writing applications with Microsoft Visual Basic.Missing: winmgmts | Show results with:winmgmts
  75. [75]
    Developing a WMI Provider - Win32 apps | Microsoft Learn
    Jan 7, 2021 · Develop a model for the entities you want to manage through WMI and create a Managed Object Format (MOF) file to describe the schema.
  76. [76]
    System.Management.Instrumentation Namespace - Microsoft Learn
    Specifies a source of a management instrumentation event. Objects that implement this interface are known to be sources of management instrumentation events.
  77. [77]
    Using WMI - Win32 apps | Microsoft Learn
    May 31, 2022 · You can use WMI from client applications and scripts. It provides an infrastructure that makes it easy to both discover and perform management tasks.Missing: proc
  78. [78]
    Get-WmiObject (Microsoft.PowerShell.Management)
    Gets the names of the WMI classes in the WMI repository namespace that is specified by the Namespace parameter. If you specify the List parameter, but not the ...
  79. [79]
    Win32_Process class - Win32 apps | Microsoft Learn
    Apr 12, 2022 · The Win32_Process WMI class represents a process on an operating system. The following syntax is simplified from Managed Object Format (MOF) code.Create method · SetPriority method · Terminate method · GetOwner method
  80. [80]
    Get-CimInstance (CimCmdlets) - PowerShell | Microsoft Learn
    This example retrieves the CIM instances of a class named Win32_Process. Get-CimInstance -ClassName Win32_Process. Example 2: Get a list of namespaces from a ...
  81. [81]
    Win32_Processor class - Win32 apps | Microsoft Learn
    Apr 11, 2022 · The Win32_Processor WMI class represents a device that can interpret a sequence of instructions on a computer running on a Windows operating system.Syntax · Members · Properties
  82. [82]
    Collecting information about computers - PowerShell | Microsoft Learn
    Dec 9, 2022 · You can retrieve general processor information by using WMI's Win32_Processor class, although you will likely want to filter the information:
  83. [83]
  84. [84]
    Create queries - Configuration Manager - Microsoft Learn
    Oct 3, 2022 · Use this procedure to create a query in Configuration Manager. In the Object Type list, select the type of object that you want the query to return.Create a query · Import a query
  85. [85]
    Win32_NTLogEvent class - Microsoft Learn
    May 30, 2018 · The Win32_NTLogEvent WMI class is used to translate instances from the Windows event log. An application must have SeSecurityPrivilege to receive events from ...
  86. [86]
    AvoidUsingWMICmdlet - PowerShell - Microsoft Learn
    Aug 7, 2023 · Avoid WMI cmdlets like Get-WmiObject, Remove-WmiObject, Invoke-WmiMethod, Register-WmiEvent, and Set-WmiInstance. Use CIM cmdlets like Get- ...
  87. [87]
    Implementing WMI - Windows drivers - Microsoft Learn
    Dec 14, 2021 · For more information about the user-mode WMI API, refer to Windows Management Instrumentation in the Windows SDK. If you are implementing a ...
  88. [88]
  89. [89]
    Wmilib.h header - Windows drivers - Microsoft Learn
    Jan 23, 2023 · TThis header is used in providing kernel-mode Windows Management Instrumentation (WMI) extensions to WDM. Drivers can use these routines in ...
  90. [90]
  91. [91]
    WMI Event Tracing - Windows drivers | Microsoft Learn
    Dec 15, 2021 · This section describes the WMI extensions to WDM (supported by Windows 2000 and later) that kernel-mode drivers, as information providers, ...
  92. [92]
    Win32_IDEController class - Win32 apps | Microsoft Learn
    Jan 6, 2021 · Operational statuses include: "OK", "Degraded", and "Pred Fail" (an element, such as a SMART-enabled hard disk drive, may be functioning ...<|control11|><|separator|>
  93. [93]
    Introduction to WMI for KMDF Drivers - Windows - Microsoft Learn
    Dec 14, 2021 · Kernel-Mode Driver Framework supports drivers that provide information to Windows Management Instrumentation (WMI). Such drivers are called WMI data providers.
  94. [94]