内容简介:在 PowerShell 可以很容易使用 WMI 拿到系统的信息,如果有关注我的网站,就会发现我写了很多通过 WMI 拿到系统的显卡,系统安装的软件等方法,本文告诉大家如果通过 PowerShell 拿到 WMI 类里面的属性在 Windows 系统通过 Windows Management Instrumentation (WMI) 统一管理系统的配置,在 PowerShell 能使用 WMI 的功能进行获取系统很少有人知道 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 可以拿很多属性
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 使用JGit获取变更细节
- WebRTC 使用之 —— 使用 getUserMedia 获取视频流
- 使用ColorfulImg获取图片主题色!
- 使用 PHP 获取网站 SSL 证书信息
- 使用 Docker CertBot 获取 SSL 证书
- Python获取CPU、内存使用率以及网络使用状态代码
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Qt 5.9 C++开发指南
王维波、栗宝鹃、侯春望 / 人民邮电出版社 / 2018-5-1 / 89.00元
本书以Qt 5.9 LTS版本为开发平台,详细介绍了Qt C++开发应用程序的技术,包括Qt应用程序的基本架构、信号与槽工作机制、图形显示的Graphics/View架构、数据编辑和显示的Model/View架构、对话框和多窗口的设计与调用方法等,介绍了常用界面组件、文件读写、绘图、图表、数据可视化、数据库、多线程、网络和多媒体等模块的使用。每个编程主题都精心设计了完整的实例程序。 通过阅读......一起来看看 《Qt 5.9 C++开发指南》 这本书的介绍吧!