关于Windows管理工具(WMI)的简要指南
基于Windows操作系统的管理信息和活动框架被称为Windows Management Instrumentation (WMI)。
WMI还向操作系统和产品的其他组件(如SCOM(System Center Operations Manager)或Windows远程管理)提供管理数据。
Windows Management Instrumentation (WMI)是什么?
WMI是一个用于管理和监控个人计算机、服务器和其他网络设备上的操作系统和其他Microsoft应用程序和服务的平台。
WMI提供了一个全面、可扩展和易于使用的编程接口,用于在Microsoft管理的计算机和其他网络设备上以编程方式访问信息和服务。
它用于发现和监视计算机上的操作系统、服务和应用程序,以及registry和文件系统数据。它还用于创建和管理自动管理和管理计算机的脚本和程序。
它使用WQL(Windows查询语言)编程语言来查询操作系统、计算机和设备上的信息并进行操作。
它还提供了对PowerShell的访问权限,PowerShell是Windows上最强大和灵活的管理工具之一,您可以使用它来创建自动化脚本。
此外,WMI还使您能够构建自定义应用程序,为Windows系统和应用程序的管理和管理提供额外的功能。
需要监视计算机状态、进行基本故障排除和收集性能数据的用户会发现WMI非常方便。
WMI的目的是什么?
WMI在Windows企业网络中非常有用,因为它通过将数据传递给其他产品以实现进一步的增强和可扩展性,简化了企业网络组件的操作和管理。
WMI的整个目的是为Windows系统的所有方面提供统一的管理框架体验,例如:
- 操作系统组件
- 进程和线程
- 服务
- 设备
- 驱动程序
- 应用程序
- 用户帐户
- 安全设置
WMI的发明目的是降低与Windows系统相关的运营和开发成本和时间。WMI还使您能够监视系统事件和收集性能数据。可以使用这些数据来解决问题或跟踪时间趋势。
WMI最常用于自动化管理任务和无需直接处理操作系统即可访问数据。因此,对于需要自动化耗时过程的管理员和软件开发人员来说,WMI是一个非常好的选择。
从监视系统性能到获取应用程序数据,WMI都可以实现。它使开发人员能够创建更智能、更智能的应用程序,同时确保IT管理员可以以最少的工作量完成任务。
WMI提供了访问系统信息的参考实现,是管理和监控Windows系统的关键工具。它是Azure机器学习和AzureML的基石,并用于驱动各种第三方产品。
使用WMI
Windows Management Instrumentation (WMI)是Microsoft提供的基于Web的企业管理(WBEM)的产品,WBEM是一个行业倡议,旨在开发用于访问企业治理信息的标准化技术。
WMI使用通用信息模型(CIM)行业标准来表示系统、应用程序、网络、设备和其他受管理的组件。分布管理任务力(DMTF)创建和维护CIM。
WMI设计非常灵活,支持广泛的管理和管理职责,同时提供灵活可扩展的架构,允许制造商编写新的WMI提供程序来支持新设备、应用程序和其他进展。
其他用途包括:
- 全面管理Windows操作系统和Microsoft网络设备和服务。
- 可以用于连接远程计算机以访问WMI数据
- 发现有关系统的信息,例如正在运行的程序和设置的服务。
- 检索有关硬件规格的信息并执行操作,例如关闭或重新启动系统。
- 启动应用程序,启动、停止、配置服务并访问数据。
- 管理应用程序的开发人员可以使用此API在Visual Basic或Windows脚本宿主(WSH)中创建脚本。
WMI架构
WMI(Windows管理仪表板)是一种微软技术,最初在Windows 2000中提出。它允许程序员构建与支持WMI的任何系统配合工作的管理程序。
让我们来看看WMI的架构和术语。
WMI架构的流程始于对象:诸如硬盘、网络卡、操作系统或服务等组件是受管理的对象(可以通过WMI进行管理)。 WMI基础架构通过提供程序从对象接收数据。它通过WMI提供和接收消息,并将其传递给对象。
WMI提供程序由DLL和管理对象格式(MOF)文件组成,用于监视来自对象的事件和数据。根据提供程序接口提供的功能,WMI对提供程序进行分类。
Windows中有许多内置的WMI提供程序,包括一个链接_2提供程序、引导配置数据(BCD)WMI提供程序、分布式文件系统(DFS)提供程序、事件日志提供程序、Hyper-V WMI提供程序、Win32提供程序、注册表提供程序和SNMP提供程序。
WMI基础架构是微软Windows操作系统的组成部分,称为WMI服务(winmgmt)。 WMI核心和WMI存储库是WMI基础架构的两个部分。
WMI存储库是由WMI命名空间组织的分层数据存储,通常称为通用信息模型(CIM)。 WMI服务在系统启动时建立了许多命名空间,包括根默认、根cimv2和根订阅。
此外,服务生成了一组默认的类定义,包括Win32和WMI系统类。其他WMI提供者可以创建其他WMI命名空间,每个命名空间包含多个WMI对象。
WMI服务充当提供程序、管理应用程序和WMI存储库之间的中介。存储库中只存储对象的静态数据,例如提供程序定义的类。当客户端请求时,WMI从提供程序动态获取大多数数据。
WMI消费者是与WMI基础架构进行通信的管理应用程序或脚本。使用WMI的COM API或WMI的脚本API,管理程序可以查询、列举数据、运行提供程序方法并订阅事件。
WMI为远程和本地检索管理数据提供了标准化的接口。这个统一的接口抽象出操作系统的应用程序编程接口(API),这样应用程序和脚本就可以收集管理数据而无需了解操作系统的API。
如何运行WMI查询?
WMI平台的灵活性特点之一是能够查询其存储库以获取有关类、实例或模式数据的详细信息。这些指标与本地和远程系统的清单、操作系统、软件和其他管理活动相关。
查询类型
广义上,有两种类型的查询用于从WMI存储库检索信息:
同步查询:这是一种在整个查询过程中保持应用程序操作控制的查询。它比异步调用更容易,因为它只需要一次接口调用。然而,对于大型搜索或基于网络的查询,它可能会导致应用程序冻结。
异步查询:当查询大量数据会影响系统或网络速度时,异步查询是首选。
WQL(WMI查询语言)
查询WMI的一种常用方法是使用WMI查询语言。
SQL(结构化查询语言)用于数据库环境,而WQL用于WMI。它们都有类似的语法结构。
Select、From和Where是用于发起查询的基本WQL语句。
典型的WMI查询是通过使用“Select”命令从WMI类中选择所有属性开始的。星号(“*”)用于选择WMI类的每个属性。在选择属性(一个或多个属性,或全部属性)后,可以使用“From”关键字指定要查询的WMI类。您可以在SQL cheatsheet上查看确切的语法。
可以通过默认安装在Windows操作系统中的WMI Tester (wbemtest.exe)执行WQL。WMI查询也可以通过Windows PowerShell、VBScript和C语言执行。
WQL查询类型
WQL查询用于获取三种不同类型的信息。
对象查询:使用这些查询可以检索有关Windows系统资源的信息。
事件查询:这些查询用于跟踪事件日志的更改、进程的启动、服务的状态、计算机的可用性或可用磁盘空间的数量等实体或事件。
模式查询:这些查询用于获取有关WMI模式结构的详细信息。
运行查询
让我们看看如何运行对象查询。
以下方法说明了如何在本地系统上检查WIN_32进程。
通过命令行输入wbemtest.exe执行WMI Tester工具。
将会弹出以下窗口。
要连接到包含要查询的类的WMI命名空间(在大多数情况下是RootCimv2):点击连接选项卡。
要运行查询,请单击下面显示的“查询”选项卡:
然后输入要检索信息的查询。例如,通过运行以下命令检索在本地系统上运行的所有进程:
select * From Win32_process
点击应用选项卡后,您将获得以下结果:
上述基于GUI的执行也可以通过PowerShell在命令提示符下执行:
在PowerShell平台上,使用以下代码获取所有win_32进程列表:
Get-WmiObject -Class Win32_Process
要获取所有PowerShell查询参数,请访问Microsoft PowerShell Management页面。
要在VBScript和C语言中运行此查询,Microsoft documentation page将提供完整的见解。
查询WMI存储库的另一种方法是通过WMIC命令:
- 从命令提示符中运行CMD
- 键入WMIC并按Enter键启动程序
- 然后命令提示符将更改为
wmic:rootcli>
管理员可以从此提示符中运行WMI查询。
例如,要加载本地系统的CPU信息,命令将是:
wmic:rootcli> WMIC CPU
结果/信息将显示在命令提示符中。
AddressWidth Architecture AssetTag Availability Caption Characteristics ConfigManagerErrorCode ConfigManagerUserConfig CpuStatus CreationClassName CurrentClockSpeed CurrentVoltage DataWidth Description DeviceID ErrorCleared ErrorDescription ExtClock Family InstallDate L2CacheSize L2CacheSpeed L3CacheSize L3CacheSpeed LastErrorCode Level LoadPercentage Manufacturer MaxClockSpeed Name NumberOfCores NumberOfEnabledCore NumberOfLogicalProcessors OtherFamilyDescription PartNumber PNPDeviceID PowerManagementCapabilities PowerManagementSupported ProcessorId ProcessorType Revision Role SecondLevelAddressTranslationExtensions SerialNumber SocketDesignation Status StatusInfo Stepping SystemCreationClassName SystemName ThreadCount UniqueId UpgradeMethod Version VirtualizationFirmwareEnabled VMMonitorModeExtensions VoltageCaps
64 9 需要填写O.E.M. 3 Intel64 Family 6 Model 142 Stepping 10 252 1 Win32_Processor 1801 7 64 Intel64 Family 6 Model 142 Stepping 10 CPU0 100 205 1024 6144 0 6 31 GenuineIntel 1801 Intel(R) Core(TM) i5-8250U CPU @ 1.60GHz 4 4 8 需要填写O.E.M. FALSE BFEBFBFF000806EA 3 CPU TRUE 需要填写O.E.M. U3E1 OK 3 Win32_ComputerSystem RENEE-HP 8 51 FALSE TRUE
有关WMIC别名和动词的更多信息,请访问Microsoft wmic。
关于WMI的常见问题
WMI使用的端口是什么?
使用的端口是49152和65535。分布式组件对象模型(DCOM)基于WMI,它默认在49152和65535之间的范围内选择一个随机的TCP端口进行连接。
WMI是否已被弃用?
WMI仍然受支持。自Windows 10版本21H1和Windows Server 21H1半年通道版本发布之后,不再支持WMI命令行(WMIC)程序。
有哪些用于监视WMI的工具?
有许多可用于监视WMI的工具。然而,以下是一些特别受欢迎的工具:
SolarWinds带服务器和应用程序监视器的WMI监视器
Paessler具有PRTG的WMI服务传感器
Nagios XI
Sapien WMI Explorer
免费工具包括WMI Explorer,Adrem Free WMI Tools
如何解决WMI问题
在尝试访问应用程序或脚本中的WMI本地或远程数据时,可能会出现从缺少类到访问冲突的错误。请查看Microsoft WMI troubleshooting guide以获取解决此类错误的解决方案。
结论
总的来说,Windows管理规范是一个强大的工具,可用于处理各种与Windows系统相关的功能。 WMI对于处理link_10系统的任何人来说都可能是一个非常有帮助的工具,尽管最初可能会让人感到害怕。