Windows management instrumentation driver extension

Provides systems management information to and from drivers.

This service exists in Windows XP only.

Startup Type

Windows XP edition without SP SP1 SP2 SP3
Home not exists not exists not exists not exists
Professional Manual Manual Manual Manual

Default Properties

Display name: Windows Management Instrumentation Driver Extensions
Service name: Wmi
Type: share
Path: %WinDir%\System32\svchost.exe -k netsvcs
File: %WinDir%\System32\advapi32.dll
Error control: normal
Object: LocalSystem

Default Behavior

The Windows Management Instrumentation Driver Extensions service runs as LocalSystem in a shared process. It shares the executable file with other services. If the Windows Management Instrumentation Driver Extensions fails to load or initialize, the error is recorded into the Event Log. Windows XP startup should proceed, but a message box is displayed informing you that the Wmi service has failed to start.

Restore Default Startup Type of Windows Management Instrumentation Driver Extensions

Automated Restore

1. Select your Windows XP edition and Service Pack, and then click on the Download button below.

2. Save the RestoreWindowsManagementInstrumentationDriverExtensionsWindowsXP.bat file to any folder on your hard drive.

3. Run the downloaded batch file.

4. Restart the computer to save changes.

Note. Make sure that the advapi32.dll file exists in the %WinDir%\System32 folder. If this file is missing you can try to restore it from your Windows XP installation media.

Yea, though I walk through the valley of the shadow of death, I will fear no evil: for thou art with me; thy rod and thy staff they comfort me.

Windows Management Instrumentation (WMI) is a set of extensions to the Windows Driver Model that provides an operating system interface through which instrumented components provide information and notification. WMI is Microsoft’s implementation of the Web-Based Enterprise Management (WBEM) and Common Information Model (CIM) standards from the Distributed Management Task Force (DMTF).

Windows Management Instrumentation

Developer(s) Microsoft
Operating system Microsoft Windows
Platform IA-32, x86-64, and ARM (historically Itanium, DEC Alpha, MIPS, and PowerPC)
Type Systems management
License Same as Microsoft Windows
Website learn.microsoft.com/en-us/windows/win32/wmisdk/wmi-start-page

WMI allows scripting languages (such as VBScript or PowerShell) to manage Microsoft Windows personal computers and servers, both locally and remotely. WMI comes preinstalled in Windows 2000 and later. It is available as a download for Windows NT 4.0,[1] Windows 95, and Windows 98.[2]

Also included with Windows was Windows Management Instrumentation Command-line (WMIC), a CLI utility to interface with WMI.[3] However, starting with Windows 10, version 21H1 and Windows Server 2022, WMIC is deprecated in favor of PowerShell.[4]

The purpose of WMI is to define a proprietary set of environment-independent specifications that enable sharing management information between management apps. WMI prescribes enterprise management standards and related technologies for Windows that work with existing management standards, such as Desktop Management Interface (DMI) and Simple Network Management Protocol (SNMP). WMI complements these other standards by providing a uniform model for accessing management data from any source.

Because WMI abstracts the manageable entities with Common Information Model (CIM) and a collection of providers, the development of a provider implies several steps. The major steps can be summarized as follows:

  1. Create the manageable entity model
    1. Define a model
    2. Implement the model
  2. Create the WMI provider
    1. Determine the provider type to implement
    2. Determine the hosting model of the provider
    3. Create the provider template with the ATL wizard
    4. Implement the code logic in the provider
    5. Register the provider with WMI and the system
  3. Test the provider
  4. Create consumer sample code.

This article is missing information about the nature of WMI providers. Please expand the article to include this information. Further details may exist on the talk page. (February 2025)

Since the release of the first WMI implementation during the Windows NT 4.0 SP4 era (as an out-of-band download), Microsoft has consistently added WMI providers to Windows:

  • On Windows NT 4.0, the WMI package shipped with 15 providers.
  • Windows 2000 shipped with 29 WMI providers.
  • Windows Server 2003 came with approximately 80 WMI providers.
  • Windows Vista includes 13 new WMI providers,[5] hence ships with approximately 100 providers.
  • Windows Server 2008 includes more providers for IIS 7, PowerShell and virtualization.
  • Windows 10 adds 47 providers for the Mobile Device Management (MDM) service.[6]

Many customers have interpreted the growth in numbers of providers as a sign that Microsoft envisions WMI as the ubiquitous management layer of Windows.

Beyond the scripting needs, most leading management solutions, such as Microsoft Operations Mamager (MOM), System Center Configuration Manager (SCCM), Active Directory Services (ADS), HP OpenView (HPOV), and the various offerings of BMC Software and CA, Inc. are WMI-enabled, i.e., capable of consuming and providing WMI information. This enables administrators who lack WMI coding skills to benefit from WMI.

WMI offers many features out of the box. Here are the most important advantages:

  • Automation interfaces: WMI comes with a set of automation interfaces ready to use. Beyond the WMI class design and the provider development, the Microsoft development and test teams are not required to create, validate or test a scripting model as it is already available from WMI.
  • .NET management interfaces: The System.Management namespace[7] makes WMI classes available to all .NET apps and scripts written in C# or PowerShell. Beyond the WMI class design and the provider development, the Microsoft development and test teams are not required to create, validate and test new assemblies to support a new namespace in .NET as this support is already available from WMI.
  • COM interfaces: Unmanaged code in Microsoft Windows (e.g., apps written in C or C++ languages) can interact with the standard set of WMI interfaces for the Component Object Model (COM) to access WMI providers and their supported WMI classes. Developers of WMI providers can leverage the same COM interfaces in their projects to furnish said classes.
  • Remoting capabilities over DCOM and SOAP: In addition to local management via COM, WMI supports remoting via Distributed COM (DCOM) and SOAP. The latter is available in Windows Server 2003 R2 and later, through the WS-Management initiative led by Microsoft, Intel, Sun Microsystems, and Dell. This initiative allows running any scripts remotely or to consume WMI data through interfaces that handle SOAP requests and responses. WS-Management can consume everything that a WMI provider generates, although embedded objects in WMI instances were not supported until Windows Vista. WS-Management later became an integral part of PowerShell. Unlike SOAP-based remoting, DCOM-based remoting requires a proxy DLL deployed on each client machine.
  • Support for queries: WMI offers support for WQL queries.[8] This means WMI can still filter the results of a provider that doesn’t implement filtering or queries.
  • Event-handling capabilities: WMI can notify a subscriber of events of interest. WMI uses the WQL to submit event queries and define the type of events to be returned. Anyone writing a WMI provider can have the benefit of this functionality at no cost for their customers. It will be up to consumers to decide how they desire to consume the management information exposed by the WMI provider.

To speed up the process of writing a WMI provider, the WMI team developed the WMI ATL Wizard to generate the code template implementing a provider. The code generated is based on the WMI class model initially designed by the developer. The WMI provider developer will be able to interface the pre-defined COM or DCOM interfaces for the WMI provider with its set of native APIs retrieving the management information to expose.

WMI is based on an industry standard called Common Information Model (CIM) defined by the Distributed Management Task Force (DMTF). The CIM class-based schema is defined by a consortium of manufacturers and software developers for the requirements of the industry. Any developer can write code that fits into this model. For instance, Intel develops WMI providers for its network adapters. HP leveraged existing WMI providers and developed custom WMI providers for its OpenView enterprise management solutions. IBM’s Tivoli management suite consumes WMI. Starting with Windows XP SP2, Microsoft leverages WMI to get status information from antivirus software and firewalls.

On the Windows NT family of operating systems, WMI runs as a Windows service called WinMgmt. On the Windows 9x family, WMI runs in the context of the WinMgmt.exe executable file. On both Windows 9x and Windows NT families, WinMgmt.exe is available as a command-line utility for servicing the WMI repository.[9]

Microsoft provides the following WMI tools for developers and IT pros:

  • MOF compiler (MOFComp.exe): The Managed Object Format (MOF) compiler parses a file containing MOF statements and adds the classes and objects defined in the file to the CIM repository. The MOF format is a specific syntax to define CIM class representation in an ASCII file. MOF’s role for CIM is comparable to MIB’s role for SNMP. MOFComp.exe is included in every WMI installation. Every definition existing in the CIM repository is initially defined in an MOF file. MOF files are located in %SystemRoot%\System32\WBEM. During the WMI setup, they are loaded in the CIM repository.
  • WMI Administrative Tools: This suite of tool consists of WMI CIM Studio, WMI Object Browser, WMI Event Registration, and WMI Event Viewer. The most important tool for a WMI provider developer is WMI CIM Studio as it helps in the initial WMI class creation in the CIM repository. It uses a web interface to display information and relies on a collection of ActiveX components installed on the system when it runs for the first time. WMI CIM Studio can:
    • Connect to a chosen system and browse the CIM repository in any namespace available.
    • Search for classes by their name, by their descriptions or by property names.
    • Review the properties, methods, and associations related to a given class.
    • See the instances available for a given class of the examined system.
    • Perform Queries in the WQL language.
    • Generate an MOF file based on selected classes.
    • Compile an MOF file to load it in the CIM repository.
  • WBEMTest.exe is a WMI tester tool delivered with WMI. This tool allows an administrator or a developer to perform most of the tasks from a graphical interface that WMI provides at the API level. Although available under all Windows NT-based operating systems, this tool is not officially supported by Microsoft. WBEMTest provides the ability to:
    • Enumerate, open, create, and delete classes.
    • Enumerate, open, create, and delete instances of classes.
    • Select a namespace.
    • Perform data and event queries.
    • Execute methods associated to classes or instances.
    • Execute every WMI operation asynchronously, synchronously or semi-asynchronously.
  • WMI command line tool (WMIC) is a scripting and automation utility that allows information retrivial and system administration via WMI, using some simple keywords (aliases). WMIC.exe is available on all Windows versions since Windows XP. Starting with Windows 10, version 21H1 and Windows Server 2022, WMIC is deprecated in favor of PowerShell.[4] In Windows 11, version 24H2, WMIC is not installed by default. A Linux port of WMIC, wmi-client, is written in Python and is based on Samba4.[10]
  • WBEMDump.exe: This command-lie tool is a component of the Platform SDK and comes a corresponding Visual C++ project. The tool can show the CIM repository classes, instances, or both. It is possible to retrieve the same information WMIC retrieves. WBEMDump.exe requires more specific knowledge about WMI, as it doesn’t abstract WMI as WMIC. It is also possible to execute methods exposed by classes or instances. Even if it is not a standard WMI tool delivered with the system installation, this tool can be quite useful for exploring the CIM repository and WMI features.
  • WMIDiag.vbs (discontinued): The WMI Diagnosis Tool is a VBScript for testing and validating WMI on Windows 2000 and later. This script was downloadable from Microsoft until August 2020.[11] The download includes pretty thorough documentation and the tool supports numerous switches. When run, it will generate up to four text files which: list the steps taken (the LOG file), an overview of the results (REPORT file), a statistics file (in comma separated values format), and optionally a file listing of the providers registered on the machine (PROVIDERS, also in comma separated values format). The report file that is generated includes a list of the issues identified and potential ways to fix them.

Wireless networking example


edit

In the .NET Framework, the ManagementClass class represents a Common Information Model (CIM) management class. A WMI class can be a Win32_LogicalDisk in the case of a disk drive, or a Win32_Process, such as a running program like Notepad.exe.

This example shows how MSNdis_80211_ServiceSetIdentifier WMI class is used to find the SSID of the Wi-Fi network that the system is currently connected to in the language C#:

ManagementClass mc = new ManagementClass("root\\WMI", "MSNdis_80211_ServiceSetIdentifier", null);
ManagementObjectCollection moc = mc.GetInstances();

foreach (ManagementObject mo in moc)
{
    string wlanCard = (string)mo["InstanceName"];
    bool active;
    if (!bool.TryParse((string)mo["Active"], out active))
    {
       active = false;
    }
    byte[] ssid = (byte[])mo["Ndis80211SsId"];
}

The MSNdis_80211_ServiceSetIdentifier WMI class is only supported on Windows XP and Windows Server 2003.

WMI driver extensions


edit

The WMI extensions to WDM provide kernel-level instrumentation such as publishing information, configuring device settings, supplying event notification from device drivers, and allowing administrators to set data security through a WMI provider known as the WDM provider. The extensions are part of the WDM architecture; however, they have broad utility and can be used with other types of drivers as well (such as SCSI and NDIS).

The WMI Driver Extensions service monitors all drivers and event trace providers that are configured to publish WMI or event trace information. Instrumented hardware data is provided by way of drivers instrumented for WMI extensions for WDM. WMI extensions for WDM offer a set of Windows device driver interfaces for instrumenting data within the driver models native to Windows, so OEMs and IHVs can easily extend the instrumented data set and add value to a hardware/software solution. The WMI Driver Extensions, however, are not supported by Windows Vista and later operating systems.[12]

  • Open Management Infrastructure
  • ANT catalog § WISTFULTOLL
  1. ^ «WMI Redistributable for Windows NT». microsoft.com. Archived from the original on 24 February 2010. Retrieved 4 May 2018.
  2. ^ «WMI Redistributable for Windows 95 and Windows 98». microsoft.com. Archived from the original on 23 April 2007. Retrieved 4 May 2018.
  3. ^ «A Description of the Windows Management Instrumentation (WMI) Command-Line Utility (Wmic.exe)». Archived from the original on 2007-05-02.
  4. ^ a b «WMIC: WMI command-line utility». Microsoft. 8 March 2023. Archived from the original on 14 October 2023.
  5. ^ «Windows Vista Client Manageability». microsoft.com. Archived from the original on 3 March 2016. Retrieved 4 May 2018.
  6. ^ «WMI providers supported in Windows 10». Microsoft. 25 June 2017. Archived from the original on 30 September 2018. Retrieved 30 September 2018.
  7. ^ «System.Management Namespace». .NET Library. Microsoft. 7 February 2025 – via Microsoft Learn.
  8. ^ «WMI query language (WQL) via PowerShell». ravichaganti.com. 1 May 2011. Archived from the original on 12 October 2017. Retrieved 4 May 2018.
  9. ^ White, Steven (3 November 2023). «winmgmt». Windows App Development. Microsoft – via Microsoft Learn.
  10. ^ D’Vine, Rhonda. «Ubuntu – Error». packages.ubuntu.com. Archived from the original on 2 May 2017. Retrieved 4 May 2018.
  11. ^ «The WMI Diagnosis Utility — Version 2.2». Download Center. Microsoft. 24 April 2015. Archived from the original on 6 August 2020.
  12. ^ «The Windows Vista and Windows «Longhorn» Server Developer Story: Application Compatibility Cookbook». msdn2.microsoft.com. Archived from the original on 21 April 2008. Retrieved 4 May 2018.
  • Snover, Jeffrey (26 June 2006). «Improved Support for WMI». PowerShell Blog. Microsoft – via Dev Blogs.
  • Official website
  • WMI Code Creator

Provides systems management information to and from drivers.

The Windows Management Instrumentation Driver Extensions service does not exist in:

  • Windows XP Home
  • Windows XP Home SP1
  • Windows XP Home SP2
  • Windows XP Home SP3

Default Settings

Startup type: Manual
Display name: Windows Management Instrumentation Driver Extensions
Service name: Wmi
Service type: share
Error control: normal
Object: LocalSystem
Path: %SystemRoot%\System32\svchost.exe -k netsvcs
File: %SystemRoot%\System32\advapi32.dll
Registry key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Wmi

Default Behavior

Windows Management Instrumentation Driver Extensions is a Win32 service. In Windows XP it won’t start until the current user starts it. When the Windows Management Instrumentation Driver Extensions service is started, it is running as LocalSystem in a shared process of svchost.exe. Other services and drivers are allowed to run in the same process. If the Windows Management Instrumentation Driver Extensions fails to start, the technical information about the error is added to the Event Log. Windows XP startup should proceed, but a message box should be displayed informing the user that the Wmi service has failed to start.

Restore Default Startup Configuration of Windows Management Instrumentation Driver Extensions

1. Run the Command Prompt.

2. Copy the command below, paste it into the command window and press ENTER:

sc config Wmi start= demand

3. Close the command window and restart the computer.

The Wmi service is using the advapi32.dll file that is located in the C:\Windows\System32 directory. If the file is removed or corrupted, read this article to restore its original version from Windows XP installation media.

WMI Driver Extensions

The WMI extensions to WDM provide kernel-level instrumentation such as publishing information, configuring device settings, supplying event notification from device drivers and allowing administrators to set data security through a WMI provider known as the WDM provider. The extensions are part of the WDM architecture; however, they have broad utility and can be used with other types of drivers as well (such as SCSI and NDIS). The WMI Driver Extensions service monitors all drivers and event trace providers that are configured to publish WMI or event trace information. Instrumented hardware data is provided by way of drivers instrumented for WMI extensions for WDM. WMI extensions for WDM provide a set of Windows device driver interfaces for instrumenting data within the driver models native to Windows, so OEMs and IHVs can easily extend the instrumented data set and add value to a hardware/software solution. The WMI Driver Extensions, however, are not supported by Windows Vista and later operating systems.

Хороший материал, взятый из журнала samag.ru [14], автор Константин Леонтьев. Тем, кто его до сих пор не читает, читать немедленно…

[Вы всё ещё не используете WMI?]

Если ты один из большинства админов, ты частенько грустишь, выглядывая из окна и наблюдая, как некоторые твои собратья ездят на своих «Ягуарах» и «Порше», или готовятся дернуть в Монте-Карло или какое-нибудь другое экзотическое место. И, конечно же, ты говоришь себе: «Я знаю о системном администрировании столько же, сколько и они, но почему именно у них есть клёвые тачки, яхты и часы «Ролекс»?..». Что ж, мы здесь для того, чтобы приоткрыть тебе небольшой секрет. Это все потому, что они знают, как писать WMI-скрипты, а ты – нет!

Microsoft TechNet: Bob Wells, Dean Tsaltas, Ethan Wilansky и Greg Stemp

Начиная карьеру системного администратора, Вы вероятно и не задумывались о том, что вместе с Вашим профессиональным ростом будет расти размер и сложность обслуживаемых систем. И вот наступил момент, когда вы поняли, что нужно принципиально новое решение, для того чтобы справляться с огромным количеством рутины, да ещё и в разных офисах вашей компании. Вероятнее всего, Вы уже немного знакомы с WMI на практике и используете некоторые готовые сценарии WMI для решения повседневных задач. Но согласитесь, что эффективное использование технологии начинается только тогда, когда вы понимаете ее архитектуру и четко представляете весь спектр возможностей, которые эта технология может вам предоставить.

Основная моя цель – кратко изложить основы, необходимые для эффективного использования вами этой технологии и представить вам набор рецептов по ее применению в реальных условиях.

Вы получите практический навык работы со всеми основными средствами WMI, выполнив несколько простых, но весьма полезных упражнений. Я предполагаю, что вы немного знакомы с программированием на VBScript и с азами языка SQL, а также имеете общее представление об объектно-ориентированном программировании. Обратите внимание на готовые примеры кода, которые помогут вам в Вашей работе.

Что такое WMI?

Формально: аббревиатура WMI – это Windows Management Instrumentation (инструментарий управления Windows). Из названия понятно, для чего создана и применяется эта технология. Стоит лишь добавить, что она давно перешагнула рамки управления только операционной системой Windows и позволяет контролировать множество других совместимых с ней приложений.

По своей сути WMI – это расширенная и адаптированная компанией Microsoft реализация стандарта WBEM (WebBased Enterprise Management компании DMTF Inc [1]). В основе WBEM лежит идея создания универсального интерфейса мониторинга и управления к различным системам и компонентам распределенной информационной среды предприятия с использованием объектно-ориентированной идеологии и широко распространенных веб-технологий представления информации: протоколов XML и HTTP. Стандарт WBEM является правопреемником стандарта DMI (Desktop Management Interface).

В основе структуры представления данных в стандарте WBEM лежит CIM (Common Information Model – модель информации общего типа), реализующая объектно-ориентированный подход к представлению компонентов систем как классов со своим набором свойств и методов, а также принципов наследования.

Основное средство для описания новых элементов модели CIM – это синтаксис языка Managed Object Format (MOF), который является текстовым и легко понятным человеку. Таким образом, любое приложение или драйвер в операционной системе, которая поддерживает стандарт WBEM, может добавить к системной модели CIM свой набор классов. Такое расширение модели CIM позволяет легко интегрировать в единую систему мониторинга и управления все новые и новые приложения. Для этой интеграции приложение должно лишь зарегистрировать свои классы в существующей модели CIM и обеспечить стандартные вызовы встроенных процедур для создания объектов этих классов и наполнения их свойствами и методами. Набор этих процедур оформляется, как WMI Provider – специальная библиотека, являющаяся мостом между любым приложением и ядром службы WMI.

Таким образом, WMI – это открытая унифицированная библиотека (репозиторий) однотипных интерфейсов доступа к параметрам, настройки и свойствам различных систем и их компонентов. Архитектура WMI представлена на рис. 1.

WMI-architecture

Рисунок 1. Архитектура WMI

Многие производители программного и аппаратного обеспечения ведут разработку ПО в соответствии со стандартом WBEM. Как следствие, это ПО совместимо и с WMI, а значит, может управляться через единый и удобный интерфейс.

Классы, объекты, свойства и методы

Поскольку WMI построена по объектно-ориентированному принципу, то все данные об операционной системе, ее свойствах, управляемых приложениях и обнаруженном оборудовании представлены в виде объектов. Каждый тип объекта описан классом, в состав которого входят свойства и методы. Определения классов описаны в MOF-файлах, а объекты этих классов с заполненными свойствами и доступными методами при их вызове возвращаются WMI-провайдерами. Управляет созданием и удалением объектов, а также вызовом их методов служба CIM Object Manager.

Получается, что если мы хотим управлять настройками сетевого адаптера, то мы должны запросить у CIM Object Manager экземпляр объекта нужного нам сетевого адаптера (забегая вперед, скажу, что этот объект принадлежит классу Win32_NetworkAdapterConfiguration) и вызвать нужные нам методы. В частности, для того чтобы обновить аренду адреса на DHCP сервере, достаточно вызвать метод RenewDHCPLease экземпляра объекта Win32_NetworkAdapterConfiguration.

Обзор средств работы с WMI для администратора

Начнем фактическое знакомство с WMI с обзора утилит, которые позволяют вам работать с WMI на ОС семейства Windows. Условно разделим этот набор утилит на поставляемые с операционной системой по умолчанию и набор утилит, которые потребуется скачивать с сайта компании Microsoft. К первой категории относятся следующие утилиты:

wmimgmt.msc – оснастка консоли MMC, позволяющая в целом управлять самой системой WMI на выбранном компьютере.
Winmgmt.exe – консольная утилита управления WMI. Выполняет аналогичные действия, что и консоль MMC wmimgmt.msc. Кроме того, является исполняемым файлом сервиса WMI в системе. Для запуска из консоли используется с опцией /exe (winmgmt.exe /exe).
Wbemtest.exe – графическая утилита для интерактивной работы с WMI. Удобна для тестирования классов и методов, просмотра свойств и т. п.
Wmic.exe – консольная утилита для вызова объектов и методов WMI (WMI Console) – присутствует только в Windows XP и Windows Server 2003.
mofcomp.exe – компилятор MOF-файлов. Служит для расширения репозитория WMI и тонких операций с библиотекой классов WMI, а также для «ремонта» нарушенного репозитория.

Ко второй категории средств для работы с WMI, которые требуется дополнительно устанавливать, относится:

WMI Code Creator 1.0 – очень удобная и полезная утилита для создания готовых сценариев WMI. Поддерживает языки Visual Basic Script, C# и Visual Basic .NET [2].
WMI Administrative Tools – комплект средств в составе: WMI CIM Studio, WMI Event Registration, WMI Event Viewer и WMI Object Browser). Удобная среда разработки и тестирования WMI-классов и методов [3].
Scriptomatic 2.0 – мастер в формате Hyper Text Application (HTA). Удобна для создания готовых сценариев и на различных скриптовых языках. Поддерживает Visual Basic Script, Perl, Java Script и Python [4].
Tweakomatic Utility – утилита в формате Hyper Text Application (HTA). Содержит множество настроек системы, обычно доступных через утилиты-твикеры (например, Windows XP Power Toys TweakUI), для которых позволяет сгенерировать WMI-скрипты для их автоматической настройки. Весьма полезна при разработке сценариев автоматизированной установки и настройки [5].

Все утилиты, относящиеся ко второй категории, можно бесплатно скачать с сайта компании Microsoft по ссылкам, перечисленным в конце статьи. Полезно будет так же посетить раздел загрузки средств работы со скриптами [6] и общий раздел загрузки средств работы с WMI [7].

Для того, чтобы рассмотреть возможности и особенности всех средств работы с WMI, которые перечислены выше, не хватит и целого журнала, поэтому мы кратко остановимся на некоторых из них, на мой взгляд, наиболее полезных и (или) наиболее употребимых. Собственно, к таким я отношу следующие утилиты: WBEMTEST, WMIC, WMI Administrative Tools и довольно новую, но весьма полезную и удачную утилиту WMI Code Creator 1.0.

Надо отметить, что существуют и другие утилиты и средства работы с WMI, в том числе разработанные не компанией Microsoft, однако формат статьи не позволяет нам на них останавливаться сколько-нибудь подробно. Об одном из этих средств я считаю своим долгом хотя бы упомянуть в этой статье – это ADSI Scriptomatic [8], позволяющее создавать скрипты для управления службой каталогов Microsoft Active Directory.

Все примеры в этой статье протестированы на операционной системе Windows XP Service Pack 2, однако должны также корректно работать и на более ранних версиях OS Windows вплоть до Windows 2000. Если вам потребуется использовать WMI на более ранних версиях ОС Windows, то вам необходимо будет установить WMI Core Components 1.5 [9] и последнюю версию Windows Scripting Host [10, 11] на эти ОС.

Знакомимся с утилитой WBEMTEST

Чтобы прямо сейчас посмотреть, какой набор классов определен в репозитории WMI на вашем персональном компьютере, достаточно запустить утилиту wbemtest.exe и установить флажок «Enable All Privileges», как показано на рис. 2.

WMI-WBEMTEST-pic02-main-window

Рисунок 2. Основное окно утилиты WBEMTEST

Далее нужно нажать кнопку «Connect…», в поле пространства имен вписать root\CIMv2, как это показано на рис. 3, и нажать кнопку «Connect».

Рисунок 3. Окно настройки подключения к репозиторию WMI утилиты WBEMTEST

WMI-WBEMTEST-pic04

Рисунок 4. Основное окно утилиты WBEMTEST после подключения к репозиторию WMI

Затем нажмите кнопку «Enum Classes…», выберите «Recursive», не заполняйте поле суперкласса и нажмите «Ok». В результате вы получите список классов, определенный в вашем репозитории WMI, в пространстве имен CIMv2. Найдите среди всех класс с названием Win32_OperatingSystem (CIM_OperatingSystem), как это показано на рис. 5.

WMI-WBEMTEST-pic05

Рисунок 5. Окно результатов запроса со списком всех классов WMI пространства имен CIMv2

Дважды щелкните курсором мыши по классу Win32_OperatingSystem, посмотрите его свойства. Пример того, как это выглядит, показан на рис. 6.

WMI-WBEMTEST-pic06

Рисунок 6. Окно свойств класса Win32_OperatingSystem

Далее нужно нажать кнопку «Instances» и в открывшемся окне дважды щелкнуть курсором мыши по строке в списке экземпляров операционных систем. В открывшемся окне свойств экземпляра операционной системы найдите свойство («Property») с названием «Name», как это показано на рис. 7.

WMI-WBEMTEST-pic07

Рисунок 7. Окно свойств экземпляра объекта класса Win32_OperatingSystem

Дважды кликните по свойству курсором мыши. В открывшемся окне редактора свойств, которое показано на рис. 8, скопируйте отображаемое значение в буфер обмена. Оно пригодится нам в дальнейшем.

WMI-WBEMTEST-pic08

Рисунок 8. Окно со значением свойства Name экземпляра объекта класса Win32_OperatingSystem

Далее закройте все окна, кроме основного окна программы wbemtest. В блокноте отредактируйте строку из буфера обмена следующем образом:

— Заключите строку в кавычки.
— До первых кавычек добавьте следующий текст: «Win32_Operating-System.Name=».
— Замените все одинарные обратные слеши на двойные.

В итоге у вас должна получиться примерно следующая строка (в зависимости от версии ОС и логического диска, куда она установлена):

Win32_OperatingSystem.Name=»Microsoft Windows XP Professional|C:\\WINDOWS|\\Device\\Harddisk0\\Partition1″

Теперь давайте выполним следующее упражнение с утилитой wbemtest. В уже открытом окне утилиты wbemtest нажмем кнопку «Execute Method…» и в окошко «GetObjectPath» вставим строку, которую мы подготовили в блокноте. В появившемся окне (см. рис. 9) вызова метода экземпляра объекта выберите метод Reboot и нажмите кнопку «Execute!».

WMI-WBEMTEST-pic09

Рисунок 9. Окно вызова метода для экземпляра объекта класса Win32_OperatingSystem утилиты WBEMTEST

Поздравляю, Вы только что отправили свою операционную систему в перезагрузку, используя WMI. Если вы вдруг получили вместо перезагрузки сообщение об ошибке 0x80041062 «Privilege not held», то это означает, что вы забыли установить опцию «Enable All Privileges» до подключения к репозиторию WMI.

Теперь следует сказать (пока Windows перезагружается), что при подключении к пространству имен WMI вы можете подключаться не только на локальной машине, но и как следует из обзора WMI к любой удаленной. Главное, обладать на той машине необходимыми правами. Но об этих правах позднее! Для подключения к удаленной машине в окне подключения достаточно в поле Name Space указать строку вида \\\root\CIMv2 и указать учетные данные пользователя, обладающего необходимыми правами (например, Administrator). Пример этого показан на рис. 10.

Рисунок 10. Окно подключение к пространству имен WMI с явным указанием имени сервера

Не пробуйте подключаться к локальной машине, на которой запрашиваются объекты и методы WMI (например, на той, на которой сейчас выполняется утилита wbemtest), используя отличные от текущих учетные данные – все равно это у вас не получится. Это специальная защита для повышения локальной безопасности WMI, но о ней мы поговорим позже.

Утилита WMIC

Чтобы воспользоваться этой очень важной и полезной для администратора утилитой, достаточно запустить интерпретатор командной строки cmd.exe и в строке приглашения набрать WMIC. После этого у вас появится приглашение консоли WMI, как это показано на рис. 11.

WMI-WMIC

Рисунок 11. Командное окно с запущенной утилитой WMIC в интерактивном режиме

Для получения справки по всем командам, доступным из консоли WMIC, достаточно в строке приглашения ввести команду «/?». Синтаксис каждой команды или глобальной опции вы можете посмотреть, введя ее название и знак вопроса. Например:

Так мы работаем с утилитой WMIC в интерактивном режиме. Однако ничто не мешает нам использовать ее и в пакетном режиме из наших BAT/CMD-сценариев. Например, в приглашении командной строки CMD можно написать:

и получить тот же результат.

Утилита WMIC создана для удобства использования WMI прямо из командной строки, поэтому наиболее употребимые классы WMI доступны для использования под псевдонимами (ALIAS). Вы можете самостоятельно определить псевдонимы для тех классов, для которых это еще не сделано, или добавить новые псевдонимы для тех классов WMI, которые уже их имеют.

Список псевдонимов, которые определены на Windows XP Service Pack 2 по умолчанию с их кратким описанием, приведены в таблице 1.

Таблица 1. Список псевдонимов утилиты WMIC и соответствие их классам WMI

Псевдоним Описание Имя класса WMI
BASEBOARD Управление материнской платой, она также называется motherboard, или системная плата. Win32_BIOS
BIOS Управления базовыми сервисами ввода/вывода (Basic input/output services, BIOS). Win32_BaseBoard
BOOTCONFIG Управление конфигурацией загрузки (Boot configuration management). Win32_BootConfiguration
CDROM Управление приводом CD-ROM. Win32_CDROMDrive
COMPUTERSYSTEM Управление системой компьютера. Win32_ComputerSystem
CPU Управление процессовром. WIN32_PROCESSOR
CSPRODUCT Получение от SMBIOS информации о компьютере как системном продукте. Win32_ComputerSystemProduct
DATAFILE Управление данными файлов (DataFile Management). CIM_DataFile
DCOMAPP Управление приложениями (DCOM Application management). WIN32_DCOMApplication
DESKTOP Управление рабочим столом пользователя (User’s Desktop management). WIN32_DESKTOP
DESKTOPMONITOR Desktop Monitor management WIN32_DESKTOPMONITOR
DEVICEMEMORYADDRESS Управление адресами памяти устройств (Device memory addresses management). Win32_DeviceMemoryAddress
DISKDRIVE Управление диском на физическом уровне (Physical disk drive management). Win32_DiskDrive
DISKQUOTA Управление квотами NTFS пространства диска (Disk space usage for NTFS volumes). Win32_DiskQuota
DMACHANNEL Управление каналами прямого доступа к памяти (Direct memory access, DMA channel management). Win32_DMAChannel
ENVIRONMENT Управление настройками системного окружения (System environment settings management) Win32_Environment
FSDIR Управление директориями файловой системы (Filesystem directory entry management). Win32_Directory
GROUP Управление группами учетных записей (Group account management). Win32_Group
IDECONTROLLER Управление контролером диска IDE (IDE Controller management). Win32_IDEController
IRQ Управление сигналами прерываний (Interrupt request line, IRQ management). Win32_IRQResource
JOB Предоставляет доступ к назначенным заданиям (jobs scheduled) с использованием службы назначенных заданий (schedule service). Win32_ScheduledJob
LOADORDER Управление службами системы, которые задают зависимости запуска (execution dependencies). Win32_LoadOrderGroup
LOGICALDISK Управление дисковыми локальными устройствами хранения (Local storage device management). Win32_LogicalDisk
LOGON Управление сессиями пользователей (LOGON Sessions). Win32_LogonSession
MEMCACHE Управление кэшем (Cache memory management). WIN32_CACHEMEMORY
MEMLOGICAL Управление памятью системы (как сконфигурирована карта памяти, и как память доступна для приложений и сервисов). Win32_LogicalMemoryConfiguration
MEMPHYSICAL Управление памятью компьютера на физическом уровне (Computer system’s physical memory management). Win32_PhysicalMemoryArray
NETCLIENT Управление клиентом сети (Network Client management). WIN32_NetworkClient
NETLOGIN Управление информацией учетной записи сети для отдельного пользователя. Win32_NetworkLoginProfile
NETPROTOCOL Управление протоколами и их сетевыми характеристиками. Win32_NetworkProtocol
NETUSE Управление активным сетевым соединением. Win32_NetworkConnection
NIC Управление сетевым адаптером (Network Interface Controller, NIC). Win32_NetworkAdapter
NICCONFIG Управление конфигурацией сетевого адаптера. Win32_NetworkAdapterConfiguration
NTDOMAIN Управление доменом NT. Win32_NTDomain
NTEVENT Получение доступа к логам событий (Entries in the NT Event Log). Win32_NTLogEvent
NTEVENTLOG Управление файлом лога (NT eventlog file management). Win32_NTEventlogFile
ONBOARDDEVICE Управление общими адаптерами, установленными в материнскую плату (system board). Win32_OnBoardDevice
OS Управление инсталлированными операционными системами. Win32_OperatingSystem
PAGEFILE Управление виртуальной памятью и её свопом на диск. Win32_PageFileUsage
PAGEFILESET Установка параметров файла свопа. Win32_PageFileSetting
PARTITION Управление логическими разделами физического диска (Management of partitioned areas of a physical disk). Win32_DiskPartition
PORT Управление портами ввода/вывода (I/O port management). Win32_PortResource
PORTCONNECTOR Управление физическим соединением портов (Physical connection ports management). Win32_PortConnector
PRINTER Printer device management Win32_Printer
PRINTERCONFIG Управление конфигурацией принтера. Win32_PrinterConfiguration
PRINTJOB Управление заданиями принтера. Win32_PrintJob
PROCESS Управление процессами. Win32_Process
PRODUCT Управление задачей инсталляционных пакетов (Installation package task management). Win32_Product
QFE Быстрое исправление ошибок (Quick Fix Engineering). Win32_QuickFixEngineering
QUOTASETTING Установка информации о квотах, установленных для тома диска (Setting information for disk quotas on a volume). Win32_QuotaSetting
RECOVEROS Информация, которая была захвачена из памяти при крахе системы. Win32_OSRecoveryConfiguration
REGISTRY Управление реестром системы. Win32_Registry
SCSICONTROLLER Управление контроллером SCSI. Win32_SCSIController
SERVER Управление информацией о сервере. Win32_PerfRawData_PerfNet_Server
SERVICE Управление прикладными сервисами. Win32_Service
SHARE Управление общими сетевыми ресурсами (Shared resource management). Win32_Share
SOFTWAREELEMENT Управление элементами программных продуктов, установленных в системе. Win32_SoftwareElement
SOFTWAREFEATURE Управление подмножествами программных продуктов SoftwareElement. Win32_SoftwareFeature
SOUNDDEV Управление устройством звука. WIN32_SoundDevice
STARTUP Управление командами автозапуска при входе пользователя в систему. Win32_StartupCommand
SYSACCOUNT Управление учетной записью системы (System account management). Win32_SystemAccount
SYSDRIVER Управление системным драйвером для базовой службы (Management of the system driver for a base service). Win32_SystemDriver
SYSTEMENCLOSURE Управление физическим доступом к корпусу компьютера (Physical system enclosure management). Win32_SystemEnclosure
SYSTEMSLOT Управление физичесими соединениями, включая порты, слоты и периферийные устройства, и точками проприетарных соединений. Win32_SystemSlot
TAPEDRIVE Управление накопителем на магнитной ленте. Win32_TapeDrive
TEMPERATURE Управление данными от датчика температуры (электронный термометр). Win32_TemperatureProbe
TIMEZONE Управление данными часового пояса (Time zone data management). Win32_TimeZone
UPS Управление источником бесперебойного питания (Uninterruptible power supply, UPS). Win32_UninterruptiblePowerSupply
USERACCOUNT Управление учетными записями пользователей (User account management). Win32_UserAccount
VOLTAGE Управление данными сенсора напряжения (электронный вольтметр). Win32_VoltageProbe
VOLUMEQUOTASETTING Связывает установки дисковой квоты с определенным дисковым томом. Win32_VolumeQuotaSetting
WMISET Управляет рабочими параметрами службы WMI. Win32_WMISetting

Теперь давайте попробуем использовать утилиту WMIC для работы с WMI из командной строки. Для начала выйдите из интерактивного режима консоли WMIC командой exit. Вы оказались в среде командного интерпретатора CMD. В приглашении наберите команду:

Вы получите список процессов, запущенных на вашем локальном компьютере. Теперь выполните команду:

wmic process list brief | find "cmd.exe"

Теперь список процессов ограничен только теми процессами, в имени исполняемого модуля которых присутствует строка «cmd.exe». Обратите внимание на PID процесса(ов).

Давайте попробуем отобрать интересующие нас процессы, используя непосредственно WMI и не прибегая к стандартным средствам командной строки. Для этого просто напишите:

wmic process where description='cmd.exe' list brief

Сравните полученные результаты. Запомните PID процесса CMD.EXE.

Вызовем метод Terminate для экземпляра объекта WMI. Так мы завершим интересующий нас процесс в системе. Для того чтобы однозначно определить процесс, который мы хотим завершить, нам нужно использовать его PID или какой-либо другой набор атрибутов процесса, которые позволяют его однозначно отличить от множества других процессов в системе. Для завершения процесса нам нужно вызвать метод WMI. Для этого существует команда CALL. Для того чтобы вывести справку по всем методам, применимым к объектам типа PROCESS (Win32_Process), наберите команду:

Среди них обратите внимание на метод Terminate – он принимает в качестве единственного входного параметра значение типа UINT32 (беззнаковое 32-разрядное целое) в качестве индекса причины завершения процесса. В данном случае этот параметр аналогичен Exit-коду.

Запустите четыре разных экземпляра процесса cmd.exe (откройте 4 командных окна). Еще раз выполните команду:

wmic process where description='cmd.exe' list brief

В результате вы получите в ответ примерно следующее:

HandleCount  Name     Priority  ProcessId  ThreadCount  WorkingSetSize
28           cmd.exe  8         4648       1            2494464       
28           cmd.exe  8         5156       1            2498560        
28           cmd.exe  8         4940       1            2498560        
31           cmd.exe  8         612        1            2703360        

Итак, чтобы завершить конкретный процесс, просто наберите:

wmic process where processid='****' call terminate(0)

вместо звездочек укажите PID нужного вам экземпляра процесса cmd.exe.

Теперь давайте одной командой завершим все оставшиеся процессы cmd.exe, для этого просто введите команду:

wmic process where description='cmd.exe' call terminate(0)

Что за конструкция where и как еще ее можно использовать, мы разберем чуть позже в разделе «Язык запросов WQL».

Для того чтобы подключиться к репозиторию WMI на другом компьютере и выполнять все те же действия, при условии, что наша учетная запись обладает достаточными правами, нам всего лишь нужно немного модифицировать нашу командную строку. Теперь наши команды должны выглядеть примерно так:

wmic /NODE:server01 /USER:DOMAIN\Administrator /PASSWORD:qwerty
/PRIVILEGES:ENABLE process where description='cmd.exe' list brief

Если же вы хотите выполнить какие-то действия, используя WMI не с одним, а с целой группой компьютеров, то достаточно написать команду с использованием WMIC и ключом «/node:@serverslist.txt»:

wmic /NODE:@serverslist.txt /USER:DOMAIN\Administrator /PASSWORD:qwerty
/PRIVILEGES:ENABLE process where description='cmd.exe' list brief

В файле serverlist.txt в столбец или в строку должны быть перечислены имена (IP-адреса) хостов, на которых необходимо выполнить это действие.

В довершение краткого описания утилиты WMIC, следует сказать об еще одной, поистине замечательной, ее особенности – форматировании вывода. Практически все команды WMIC, которые возвращают информацию, могут ее форматировать разными способами. Для этого используется ключ «/format:». Форматирование производится с использованием технологии XSLT (шаблонов для преобразования XML). По умолчанию уже определен ряд готовых преобразований: CSV, HFORM, HMOF, HTABLE, HXML, RAWXML, TABLE, VALUE. Вы так же сами можете определить дополнительные шаблоны форматирования в формате XSLT и использовать их совместно с WMIC.

Краткое практическое знакомство c WMI CIM Studio

Это набор приложений Microsoft Internet Explorer, который позволяет с одной стороны очень тонко, с другой стороны довольно удобно работать с WMI. При этом вы можете как просматривать классы и вызывать методы, так и создавать события и даже модифицировать репозиторий WMI. Поэтому будьте очень осторожны. Если вы запускаете WMI CIM Studio на Windows XP Service Pack 2, то Internet Explorer предупредит вас о потенциальной угрозе безопасности. Вам следует разрешить заблокированное содержимое ActiveX.

На рис. 12 показан вид окна WMI CIM Studio. Слева вы видите набор классов WMI и их иерархии в том пространстве имен WMI, которое вы выбрали при подключении. Справа перечислены все свойства выбранного класса. Все методы класса перечислены на закладке Methods, а на закладке Associations показана «родословная» этого класса и других классов, которые выведены из него.

WMI-CIM-Studio

Рисунок 12. Окно утилиты WMI CIM Studio с открытыми свойствами класса Win32_OperatingSystem

Если вы хотите посмотреть все экземпляры объектов выбранного класса, существующие в вашей системе, то достаточно нажать кнопку со значком списка (четвертая справа кнопка в правой панели кнопок).

WMI CIM Studio очень удобный инструмент для поиска классов и свойств в огромном море репозитория WMI. Для поиска нажмите кнопку со значком бинокля и введите шаблон для поиска, например «network». Выберите область поиска (Class names, Class description, Property names) и нажмите «Go!». В целом WMI CIM Studio очень хороший инструмент для поиска и исследования репозитория WMI и для интерактивного анализа состояния экземпляров объектов WMI.

Язык запросов WQL

Теперь нам следует разобраться, что же такое WQL, а также каким образом в разделе, где описана работа WMIC, мы делали выборку объектов WMI по определенным критериям. Разбирая эту тему, полезно вспомнить, что объектно-ориентированная модель представления данных хорошо ложится на структуру реляционных баз данных. В частности можно провести следующие аналогии: определение таблицы данных (поля и их типы) – это классы объектов, строки в конкретной таблице – это экземпляры объектов данного класса. Каждое поле (столбец) в таблице – это свойство всех объектов данного класса. Каждая ячейка в конкретной строке – это свойство (property) конкретного экземпляра объекта. Связи таблиц и представления можно рассматривать как частный случай наследования. Триггеры и встроенные процедуры исходя из этой аналогии – это методы классов.

Собственно, для того чтобы удобно было работать с множественными экземплярами объектов WMI, используется язык WMI Query Language (WQL), который является подмножеством ANSI SQL.

Основное отличие WQL от ANSI SQL состоит в том, что WQL не позволяет производить изменения в данных WMI, т. е. фактически в WQL поддерживается лишь один оператор SQL: select. Кроме того, в операторе select языка WQL не поддерживаются следующие ключевые слова: DISTINCT, COUNT, JOIN, SUBSTRING, ORDER BY, UPPER, LOWER и DATEPART (эти ключевые слова поддерживаются в варианте Extended WQL (eWQL), реализованном в Microsoft SMS 2.0 и SMS 2003). Не поддерживаются арифметические операторы. Кроме того конструкции IS и IS NOT могут применяться только в сочетании с константой NULL. Языком WQL поддерживается оператор LIKE. Более подробно про шаблоны, применяемые совместно с оператором LIKE в WQL, можно ознакомиться в оригинальном описании WMI на сайте Microsoft [12, 13].

Ниже приведен пример некоторых типичных WQL-запросов:

SELECT * FROM Win32_LogicalDisk WHERE FileSystem IS NULL
SELECT * FROM Win32_LogicalDisk WHERE FileSystem IS NOT NULL
SELECT * FROM Win32_LogicalDisk WHERE FileSystem = "NTFS"
SELECT * FROM Win32_DiskDrive WHERE Partitions < 2 OR SectorsPerTrack > 100
SELECT * FROM Win32_LogicalDisk WHERE (Name = "C:" OR Name = "D:") 
   AND FreeSpace > 2000000 AND FileSystem = "NTFS"
SELECT * FROM Win32_NTLogEvent WHERE Logfile = 'Application'
SELECT * FROM Meta_Class WHERE __Class LIKE %Win32%
SELECT * FROM __InstanceCreationEvent WHERE TargetInstance ISA "Win32_NTLogEvent"
   GROUP WITHIN 600 BY TargetInstance.SourceName HAVING NumberOfEvents > 25

Вы можете поупражняться в запросах WMI с помощью уже хорошо известной вам утилиты WBEMTEST, нажав кнопку «Query» в ее главном окне.

Теперь вспомните утилиту командной строки WMIC, функции которой мы разбирали немного выше. В ее синтаксисе также могут использоваться WQL-запросы для удобства работы с наборами объектов одного класса. Чтобы использовать уже имеющиеся и проверенные WQL-запросы (большинство из них удобнее всего проверять утилитой WBEMTEST), из командной строки достаточно отбросить у WQL-запроса первую часть: «select * from». Затем заменить имя класса на его алиас (псевдоним) из таблицы 1 и при необходимости добавить после запроса вызов метода, формат вывода списка или запрос свойства объекта. Примеры того, что при этом получается, я уже приводил выше.

Если же среди псевдонимов в таблице 1 нет нужного вам класса, то есть два пути решения. Первый – добавить новый псевдоним для нового класса. Этот путь хорош, если с этим классом из WMIC вы будете работать только на этом компьютере. Если же вы хотите использовать команду wmic на разных компьютерах, в том числе и на тех, на которых такой алиас вы не определяли, то можно воспользоваться вторым способом. Второй способ позволяет явно использовать настоящее имя класса WMI при обращении к нему с помощью WMIC. Для этого используйте следующий синтаксис:

wmic path Win32_LogicalDisk WHERE FileSystem='NTFS' get /value

Заключение

Во второй части статьи [15] обсудим написание сценариев с использованием WMI и WSH. Будут разобраны особенности использования WMI в скриптах, из тех, которые обычно вызывают наибольшие затруднения у людей, начинающих работать с этой технологией. К таким темам я отношу: построение moniker string, использование различных пространств имен WMI, связка WMI и COM, использование различных языков программирования вместе с WMI, имперсонация, аутентификация и привилегии. Наконец, наиболее интересные моменты, связанные с подключением к удаленным компьютерам и обработкой системных событий с помощью WMI. В заключении мы обсудим готовые продукты, использующие WMI и стратегию развития этой технологии, а так же ее применения в информационных системах предприятий.

[Ссылки и литература]

1. Distributed Management Task Force Inc. site:dmtf.org.
2. WMICodeCreator.zip site:microsoft.com — WMI Code Creator 1.0.
3. WMITools.exe site:microsoft.com — WMI Administrative Tools.
4. Scriptomatic site:microsoft.com.
5. Tweakomatic Utility site:microsoft.com.
6. Microsoft Scripting Downloads Catalog site:msdn.microsoft.com.
7. WMI Downloads catalog site:msdn.microsoft.com.
8. ADSI Scriptomatic site:microsoft.com.
9. WMI Core 1.5 for Windows 9x, NT 4.0 SP4 site:microsoft.com.
10. Windows Scripting Host 5.6 for Windows 9x/NT/ME site:microsoft.com.
11. Microsoft Windows Script 5.6 Documentation site:microsoft.com.
12. WQL Keywords and description site:msdn.microsoft.com.
13. Windows Management Instrumentation site:msdn.microsoft.com.
14. Вы всё ещё не используете WMI? Часть 1 site:samag.ru.
15Вы всё ещё не используете WMI? Часть 2 site:samag.ru

Понравилась статья? Поделить с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
  • Папка hosts в windows 10 для чего
  • Clover не загружает windows
  • Acer aspire 5 установка windows 10 с флешки не видит ssd
  • Как переназвать пользователя windows 10
  • Download driver pack windows 10 64 bit