最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

python怎么导入wmi

来源:懂视网 责编:小采 时间:2020-11-27 14:09:57
文档

python怎么导入wmi

python怎么导入wmi:使用Python操作WMI,最大的难点并不在于如何编写Python语句,而在于如果获知想要查询的内容在哪个名称空间以及对应的类和属性。而这些内容则需要查阅官方文档以及使用wbemtest进行探索。获得了这些必要的信息后,再去编写Python代码就是一件非常轻松的事情。
推荐度:
导读python怎么导入wmi:使用Python操作WMI,最大的难点并不在于如何编写Python语句,而在于如果获知想要查询的内容在哪个名称空间以及对应的类和属性。而这些内容则需要查阅官方文档以及使用wbemtest进行探索。获得了这些必要的信息后,再去编写Python代码就是一件非常轻松的事情。

使用Python操作WMI,最大的难点并不在于如何编写Python语句,而在于如果获知想要查询的内容在哪个名称空间以及对应的类和属性。而这些内容则需要查阅官方文档以及使用wbemtest进行探索。获得了这些必要的信息后,再去编写Python代码就是一件非常轻松的事情。

一常用的例子:

import wmi

from win32com.client import GetObject

wmi的名称空间,获取当前计算机的名称空间:

from win32com.client import GetObject

import pywintypes

def enum_namespace(name):

try:

wmi = GetObject('winmgmts:/' + name)

namespaces = wmi.InstancesOf('__Namespace')

for namespace in namespaces:

enum_namespace('{name}/{subname}'.format(name=name,subname=namespace.Name))

except pywintypes.com_error:

print(name, 'limit of authority')

else:

print(name)

enum_namespace('root')

获取硬盘信息

c = wmi.WMI()

i = 0

for disk in c.Win32_LogicalDisk (DriveType=3):

#print(disk)

b = disk.Caption

a = round(int(disk.Size) / (1024*1024*1024), 2)

i =round(i + a, 2)

print(b,'容量为:',a,'GB',end='\n')

print('硬盘的总容量为:',i,'GB')

获取CPU信息与内存信息,操作系统版本,计算机序列号

c = wmi.WMI()

for cpu in c.Win32_Processor():

aa = cpu.Name

print('CPU型号为:',aa)

for memory in c.CIM_Chip():

bb = round(int(memory.Capacity) / (1024*1024*1024))

print('内存大小为:',bb,"GB")

for sy in c.CIM_OperatingSystem():

cc = sy.Caption

print("操作系统版本为:",cc)

cc1 =sy.CSName

print('计算机名为:',cc1)

for sn in c.Win32_BIOS():

dd = sn.SerialNumber

print('计算机产品编号为:',dd)

查看本地连接网卡(有线网卡)MAC地址

c = wmi.WMI()

for zz in c.Win32_NetworkAdapter():

zz1 = '本地'

zz2 = zz.NetConnectionID

if zz2 == None: #python中单等号为赋值,双等号为条件判断. python if语句不允许赋值再判断.

continue #none,continue 是为了空值时可以继续执行,否则为出错。

elif zz1 in zz2:

zz3 = zz.MACAddress

print('本地网卡物理地址为:',zz3)

获取本地网卡MAC地址的另一种写法。(更为友好一些。)

from win32com.client import GetObject

wmi = GetObject('winmgmts:/root/cimv2')

# wmi = GetObject('winmgmts:') #更简单的写法

pro = wmi.ExecQuery('Select * from Win32_NetworkAdapter where NetConnectionID like "本地%"') #WQL语句中like用%匹配后面的字符

for p in pro:

print('本地网卡MAC地址为:', p.MACAddress)

查看系统进程列表:

c = wmi.WMI()

for zz in c.Win32_Process():

cap = zz.Caption

print(cap)

查看已安装软件列表:

c = wmi.WMI()

for zz in c.Win32_Product():

cap = zz.Caption

print(cap)

查看已安装补丁列表:

c = wmi.WMI()

for zz in c.Win32_QuickFixEngineering():

na = zz.HotFixID

print(na)

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

python怎么导入wmi

python怎么导入wmi:使用Python操作WMI,最大的难点并不在于如何编写Python语句,而在于如果获知想要查询的内容在哪个名称空间以及对应的类和属性。而这些内容则需要查阅官方文档以及使用wbemtest进行探索。获得了这些必要的信息后,再去编写Python代码就是一件非常轻松的事情。
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top