2019-8-31-PowerShell-使用-WMI-获取信息
| title | author | date | CreateTime | categories |
|---|---|---|---|---|
|
PowerShell 使用 WMI 获取信息
|
lindexi
|
2019-08-31 16:55:58 +0800
|
2019-2-22 21:0:51 +0800
|
PowerShell WMI
|
在 PowerShell 可以很容易使用 WMI 拿到系统的信息,如果有关注我的网站,就会发现我写了很多通过 WMI 拿到系统的显卡,系统安装的软件等方法,本文告诉大家如果通过 PowerShell 拿到 WMI 类里面的属性
在 Windows 系统通过 Windows Management Instrumentation (WMI) 统一管理系统的配置,在 PowerShell 能使用 WMI 的功能进行获取系统
很少有人知道 WMI 里面包含了多少可以使用的类,包括我之前写的很多博客,实际上也只是里面的很少,通过下面的例子告诉大家如何获取设备里面包含的类
获取 WMI 类
在使用 WMI 之前需要知道 WMI 是能做什么的,这个方法能做的就是描述系统能被管理的资源,在系统里面包含了几百个类,一个类里面包含很多属性
通过 Get-WmiObject 可以找到设备里面所有可以被找到的 WMI 类
Get-WmiObject -List
在 Windows 10 设备,右击开始菜单,打开 PowerShell 输入上面代码,就可以看到输出
在 Get-WmiObject 的参数可以加上计算机是哪个,支持访问局域网可以访问的计算机的信息
Get-WmiObject -List -ComputerName 192.168.1.29
尝试在自己的系统输入一下,可以看到很多代码
PS> Get-WmiObject -List Name Methods Properties
---- ------- ----------
__thisNAMESPACE {} {SECURITY_DESCRIPTOR}
__Provider {} {Name}
__Win32Provider {} {ClientLoadableCLSID, CLSID, Concurrency, DefaultMachineNam...
__ProviderRegistration {} {provider}
__EventProviderRegistration {} {EventQueryList, provider}
__ObjectProviderRegistration {} {InteractionType, provider, QuerySupportLevels, SupportsBat...
__ClassProviderRegistration {} {CacheRefreshInterval, InteractionType, PerUserSchema, prov...
__InstanceProviderRegistration {} {InteractionType, provider, QuerySupportLevels, SupportsBat...
__MethodProviderRegistration {} {provider}
__PropertyProviderRegistration {} {provider, SupportsGet, SupportsPut}
__EventConsumerProviderRegistration {} {ConsumerClassNames, provider}
__NAMESPACE {} {Name}
__EventFilter {} {CreatorSID, EventAccess, EventNamespace, Name...}
__EventConsumer {} {CreatorSID, MachineName, MaximumQueueSize}
__FilterToConsumerBinding {} {Consumer, CreatorSID, DeliverSynchronously, DeliveryQoS...}
__AggregateEvent {} {NumberOfEvents, Representative}
__TimerNextFiring {} {NextEvent64BitTime, TimerId}
__Event {} {SECURITY_DESCRIPTOR, TIME_CREATED}
__ExtrinsicEvent {} {SECURITY_DESCRIPTOR, TIME_CREATED}
Win32_DeviceChangeEvent {} {EventType, SECURITY_DESCRIPTOR, TIME_CREATED}
Win32_SystemConfigurationChangeE... {} {EventType, SECURITY_DESCRIPTOR, TIME_CREATED} // 后面还有很多
显示 WMI 类的信息
从上面列出的任意一个 WMI 类,可以使用下面代码显示这个类里面的属性
PS> Get-WmiObject -Class Win32_OperatingSystem SystemDirectory : C:\WINDOWS\system32
Organization :
BuildNumber : 17763
RegisteredUser : lindexi_gd@outlook.com
SerialNumber : 00331-10000-00001-AA523
Version : 10.0.17763
这里的输出只是简要的信息,没有包含所有的属性,如果想输出所有的属性,可以使用下面代码
PS> Get-WmiObject -Class Win32_OperatingSystem | Get-Member -MemberType Property Name MemberType Definition
---- ---------- ----------
BootDevice Property string BootDevice {get;set;}
BuildNumber Property string BuildNumber {get;set;}
BuildType Property string BuildType {get;set;}
Caption Property string Caption {get;set;}
CodeSet Property string CodeSet {get;set;}
CountryCode Property string CountryCode {get;set;}
CreationClassName Property string CreationClassName {get;set;}
CSCreationClassName Property string CSCreationClassName {get;set;}
CSDVersion Property string CSDVersion {get;set;}
CSName Property string CSName {get;set;}
// 还有很多属性
总结一下,获取一个 WMI 类的简洁属性,可以通过这个格式
Get-WmiObject -Class 某个类
具体的类可以通过 Get-WmiObject -List 找到
获取某个类里面包含的所有属性,通过这个格式
Get-WmiObject -Class 某个类 | Get-Member -MemberType Property
如果需要获取某个类的某一些属性的值,可以通过下面的代码
Get-WmiObject -Class 某个类 | Format-Table -Property 属性1,属性2
如获取 Win32_OperatingSystem 的 TotalVirtualMemorySize 和 RegisteredUser 因为小伙伴的设备和我不相同,可以看到不一样的
PS> Get-WmiObject -Class Win32_OperatingSystem | Format-Table -Property TotalVirtualMemorySize,RegisteredUser TotalVirtualMemorySize RegisteredUser
---------------------- --------------
36052888 lindexi_gd@outlook.com
如果有很多属性,可以通过列表的方法输出,将 Format-Table 修改为 Format-List 请看下面
PS> Get-WmiObject -Class Win32_OperatingSystem -Namespace root/cimv2 -ComputerName . | Format-List TotalVirtualMemorySize,TotalVisibleMemorySize,FreePhysicalMemory,FreeVirtualMemory,FreeSpaceInPagingFiles TotalVirtualMemorySize : 36052888
TotalVisibleMemorySize : 25042840
FreePhysicalMemory : 8510920
FreeVirtualMemory : 9954748
FreeSpaceInPagingFiles : 10482656
通过 WMI 可以拿很多属性
2019-8-31-PowerShell-使用-WMI-获取信息的更多相关文章
- PowerShell 使用 WMI 获取信息
在 PowerShell 可以很容易使用 WMI 拿到系统的信息,如果有关注我的网站,就会发现我写了很多通过 WMI 拿到系统的显卡,系统安装的软件等方法,本文告诉大家如果通过 PowerShell ...
- PowerShell 通过 WMI 获取系统安装的驱动
本文告诉大家如何通过 WMI 获取用户已经安装的驱动程序 通过下面代码可以获取用户已经安装的驱动程序 Get-WmiObject Win32_SystemDriver | Format-List Ca ...
- PowerShell 通过 WMI 获取系统服务
本文告诉大家如何通过 WMI 获取系统服务 通过 Win32_Service 可以获取系统启动的服务 Get-WmiObject Win32_Service | Format-List Caption ...
- PowerShell 通过 WMI 获取系统安装软件
本文告诉大家如何通过 WMI 获取系统安装的软件 通过 Win32_Product 可以获取系统安装的软件 Get-WmiObject Win32_Product | Format-List Capt ...
- PowerShell 通过 WMI 获取系统信息
本文告诉大家如何通过 WMI 使用 Win32_OperatingSystem 获取设备厂商 通过下面代码可以获取 系统版本和系统是专业版还是教育版 Get-WmiObject Win32_Opera ...
- WMI 获取硬件信息的封装函数与获取联想台式机的出厂编号方法
原文:WMI 获取硬件信息的封装函数与获取联想台式机的出厂编号方法 今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都是可以提取出来的,就自己把那些公共部分提出出来,以后如果要获取 某部分的 ...
- Python使用wmi获取Windows相关信息
在使用Python获取Windows系统上的相关的信息可以使用WMI接口来获取, 什么是wmi? WMI是一项核心的Windows管理技术,WMI作为一种规范和基础结构,通过它可以访问.配置.管理和监 ...
- 主机性能监控之wmi 获取磁盘信息
标 题: 主机性能监控之wmi 获取磁盘信息作 者: itdef链 接: http://www.cnblogs.com/itdef/p/3990541.html 欢迎转帖 请保持文本完整并注明出处 仅 ...
- 主机性能监控之wmi 获取进程信息
标 题: 主机性能监控之wmi 获取进程信息作 者: itdef链 接: http://www.cnblogs.com/itdef/p/3990499.html 欢迎转帖 请保持文本完整并注明出处 仅 ...
- 主机性能监控之wmi 获取系统信息及内存性能信息
标 题: 主机性能监控之wmi 获取系统信息及内存性能信息作 者: itdef链 接: http://www.cnblogs.com/itdef/p/3990240.html 欢迎转帖 请保持文本完整 ...
随机推荐
- js原型详解
js中的原型毫无疑问一个难点,学习如果不深入很容易就晕了! 任何一个js知识点,比如事件流,闭包,继承等,都有许许多多的说法,对于这些知识点我们都应该先熟练的使用,然后自己整理一套属于自己的理解说辞, ...
- Redis 中 scan 命令太坑了,千万别乱用!!
作者:铂赛东\链接:www.jianshu.com/p/8cf8aac3dc25 1 原本以为自己对redis命令还蛮熟悉的,各种数据模型各种基于redis的骚操作.但是最近在使用redis的scan ...
- 详解SSL证书系列(6)了解HTTP及网络基础
使用HTTP协议访问Web 你知道当我们在网页浏览器(比如Chrome)的地址栏中输入URL时,Web网页是如何呈现的吗? Web页面当然不会凭空显示出来.根据Web浏览器地址栏中指定的URL,W ...
- KingbaseES 中select for update语句引起的锁问题
背景 客户现场执行压测时候,发生周期性的TPS大幅下降,通过查看kwr报告发现DBcpu时间占DBtime时间很少,百分之90的DBtime花费在tuple锁等待上,等待事件类型是lock. 等待时间 ...
- LCD - 液晶显示原理(一)
1. 显示器介绍 显示器属于计算机的I/O设备,即输入输出设备.它是一种将特定电子信息输出到屏幕上再反射到人眼的显示工具.常见的有CRT显示器.液晶显示器. LED点阵显示器及OLED显示器. 液 ...
- 程序员/后端开发方向Java 跳槽注意事项(简历和面试经验分享)
程序员/后端开发方向Java 跳槽注意事项(简历和面试经验分享) 应届生面试经验参考:https://www.cnblogs.com/rainbow-1/p/16779048.html 简历: 1.个 ...
- #树状数组#洛谷 3531 [POI2012] LIT-Letters
题目 给出两个长度相同且由大写英文字母组成的字符串\(A\).\(B\),保证\(A\)和\(B\)中每种字母出现的次数相同. 现在每次可以交换\(A\)中相邻两个字符,求最少需要交换多少次可以使得\ ...
- 一图读懂DCI版权服务
访问华为开发者联盟官网 获取开发指导文档 华为移动服务开源仓库地址:GitHub.Gitee 关注我们,第一时间了解 HMS Core 最新技术资讯~
- 第十九篇:Django ORM外键关联关系
一.一对多的创建 二.一对多跨表操作 三.创建多对多 四.Ajax处识 五.模板继承与导入 六.自定义分页
- 重新整理数据结构与算法(c#)——算法套佛洛伊德算法[三十二]
前言 佛洛伊德算法和迪杰斯特拉算法非常像,但是它求的是任何一个点到其他点之间的距离. 假设有一张图: 转换为矩阵为: 他们的前驱为: 可能上面表述前驱不清楚,举个例子. 看下图: 这第二种图表示,从A ...