Powershell专栏:

https://www.jb51.net/list/list_234_1.htm

https://www.pstips.net/get-wmiobject-becomes-obsolete.html

原文:  https://www.jb51.net/article/56233.htm

使用WMI归根到底是对WMI类的访问,如何找到合适的类是其中关键的一步。我一直在为找不到合适的类和命名空间苦恼。你也有这样的问题吗?

类层次结构

  WMI的类是以命名空间和继承层次方式组织的,呈树形结构。命名空间的根是root,在它的下面还有十几个命名空间,最常用的是root\cimv2。命名空间的信息存储在静态类__Namespace类中,要查询当前命名空间下的所有命名空间,可以查看__Namespace类的实例。以下是在我的机器上使用PowerShell查询到的命名空间:

复制代码 代码如下:
PS C:\Users\idsswtt> Get-WmiObject -Class __namespace -Namespace root | select name

name
----
subscription
DEFAULT
cimv2
Cli
Nap
MicrosoftIISv2
SECURITY
SmsDm
CCMVDI
RSOP
WebAdministration
ccm
WMI
directory
Policy
virtualization
Interop
Hardware
ServiceModel
Microsoft
aspnet

关于命名空间更详细的信息,可以写一个递归的脚本来取得,或者从WMI入门(二):如何使用WMI中提到的WMI CIM Studio工具中查到。

常用WMI类

  WMI体系结构中有成百上千个类。我们经常用到的只有其中一部分。其中有些是用来查询实例的,另一些用来查询类的Schema的。除了上面提到的__Namespace类,我们还会用到__Win32Provider类,来查询当前系统中都有哪些提供程序。这两个类是系统类。

  此外,还有两类WMI类我们经常用到:CIM_*类和Win32_*类。前者是WMI的核心类和公共类,很多时候也被称为CIM核心类和公共类。后者是Win32扩展类,我们查询实例多在Win32扩展类中查询。例如Win32_Product、Win32_LogicalDisk等。

WMI类查找手册?

  很遗憾的是,到目前为止。我没有发现一个好用的WMI类查找手册。但在微软MSDN网站上,有一个分类。我们可以依照这个分类来做查询。以下几个链接是我经常用到的,贴在这里,希望你能用到。

  WMI Reference

  Win32 Classes

  WMI Providers

结语

  看完上面我写的这些东西,如果你还是找不到你要的类,那你就只能怪微软了。我觉得微软为WMI做的还是太少,至少在类查询这一块儿是这样。在微软为WMI投入更多之前,我们只能依赖经验和搜索引擎来寻找适当的类了。

 
 

WMI入门教程之WMI中的类在哪里?的更多相关文章

  1. HealthKit开发快速入门教程之HealthKit数据的操作

    HealthKit开发快速入门教程之HealthKit数据的操作 数据的表示 在HealthKit中,数据是最核心的元素.通过分析数据,人们可以看到相关的健康信息.例如,通过统计步数数据,人们可以知道 ...

  2. HealthKit开发快速入门教程之HealthKit框架体系创建健康AppID

    HealthKit开发快速入门教程之HealthKit框架体系创建健康AppID HealthKit开发准备工作 在开发一款HealthKit应用程序时,首先需要讲解HealthKit中有哪些类,在i ...

  3. C#开发Unity游戏教程之Unity中方法的参数

    C#开发Unity游戏教程之Unity中方法的参数 Unity的方法的参数 出现在脚本中的方法,无论是在定义的时候,还是使用的时候,后面都跟着一对括号“( )”,有意义吗?看起来最多也就是起个快速识别 ...

  4. C++入门教程之二:变量

    C++入门教程之二:变量 变量,顾名思义,意思是变化的量.变量的定义是计算机语言中能储存计算结果或能表示值的抽象概念.一个基本的程序需要变量,因此变量是程序设计中的一大重点. 变量基本结构 var_t ...

  5. HealthKit开发快速入门教程之HealthKit开发概述简介

    HealthKit开发快速入门教程之HealthKit开发概述简介 2014年6月2日召开的年度开发者大会上,苹果发布了一款新的移动应用平台,可以收集和分析用户的健康数据.该移动应用平台被命名为“He ...

  6. github 入门教程之 github 访问速度太慢怎么办

    github 是全世界最流行的开源项目托管平台,其代表的开源文化从根本上改变了软件开发的方式. 基本上所有的需求都能从 github 上或多或少找到现成的实现方案,再也不用重头开始造轮子而是自定义轮子 ...

  7. iOS 9应用开发教程之ios9中实现按钮的响应

    iOS 9应用开发教程之ios9中实现按钮的响应 IOS9实现按钮的响应 按钮主要是实现用户交互的,即实现响应.按钮实现响应的方式可以根据添加按钮的不同分为两种:一种是编辑界面添加按钮实现的响应:另一 ...

  8. nodejs入门教程之http的get和request简介及应用

    nodejs入门教程之http的get和request简介及应用 前言 上一篇文章,我介绍了nodejs的几个常用的模块及简单的案例,今天我们再来重点看一下nodejs的http模块,关于http模块 ...

  9. iOS 9应用开发教程之ios9中实现button的响应

    iOS 9应用开发教程之ios9中实现button的响应 IOS9实现button的响应 button主要是实现用户交互的.即实现响应.button实现响应的方式能够依据加入button的不同分为两种 ...

随机推荐

  1. 【重学计算机】计组D1章:计算机系统概论

    1.冯诺依曼计算机组成 主机(cpu+内存),外设(输入设备+输出设备+外存),总线(地址总线+数据总线+控制总线) 2.计算机层次结构 应用程序-高级语言-汇编语言-操作系统-指令集架构层-微代码层 ...

  2. ProgressWheelDialogUtil【ProgressWheel Material样式进度条对话框】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 简单封装网络请求时的加载对话框以及上传.下载文件的进度加载对话框. 效果图 代码分析 ProgressWheel : 自定义view ...

  3. 深入浅出mongoose

    深入浅出mongoose mongoose是nodeJS提供连接 mongodb的一个库. 此外还有mongoskin, mongodb(mongodb官方出品). 本人,还是比较青睐mongoose ...

  4. 一个box-sizing: border-box和felx混合使用中遇到的问题

    之前在项目中遇到一个布局上很趣的问题(也可能是笔者才疏学浅,哈哈).布局大概是这样的: 外层包裹器:采用flex布局,并指定内部子弹性盒子元素水平显示 侧边栏:flex盒子的子元素,可收起和展开.展开 ...

  5. [翻译]Protocol Buffer 基础: C++

    目录 Protocol Buffer Basics: C++ 为什么使用 Protocol Buffers 在哪可以找到示例代码 定义你的协议格式 编译你的 Protocol Buffers Prot ...

  6. golang命令行库cobra的使用

    简介 Cobra既是一个用来创建强大的现代CLI命令行的golang库,也是一个生成程序应用和命令行文件的程序.下面是Cobra使用的一个演示: Cobra提供的功能 简易的子命令行模式,如 app ...

  7. 从一个点子到一个社区APP,是如何通过.NET实现的?——“文林物业系统”APP介绍及采访记录

    “文林物业系统”(简称“文林社区”)是一款与物业管理软件无缝衔接的移动端系统.可在线查看通知公告.报修.投诉建议.查询物业管理费.水电气等其他费用,并且支持在线缴费.以物业管理为接入点,在未来,将会致 ...

  8. AspNetCore中使用Ocelot之 IdentityServer4(1)

    AspNetCore中使用Ocelot之 IdentityServer4(1) 前言: OceLot网关是基于AspNetCore 产生的可扩展的高性能的企业级Api网关,目前已经基于2.0 升级版本 ...

  9. 了解spring

    一.spring简介 Spring是一个JavaEE轻量级的一站式的开发框架(spring的可插拔特性,企业用于整合其他框架)轻量级:使用最少的代码启动程序,根据所需选择功能选择模块使用一站式:提供了 ...

  10. mysql命令查看表结构及注释

    使用如下命令:select table_schema,table_name,column_name,column_type,column_key,is_nullable,column_default, ...