Python笔记 之 wmi模块

运行环境

pip 22.0.4
python 3.10
windows 10 专业版

安装wmi模块

pip3.10 install wmi

自定义类

说明:不同环境相关子类的属性各不相同,可以通过将遍历结果打印出来根据实际情况进行筛选。

import wmi

class Computer():
	def __init__(self):
		self.cmp = wmi.WMI();
		self.infos=[]
		self.showInfos()

	def showInfos(self):
		self.infos.append('电脑配置:')
		# print(dir(self.cmp.__dict__))
		# 获取主板信息
		self.infos.append('\n')
		self.infos.append('主板信息:')
		for bbd in self.cmp.Win32_BaseBoard():
			self.infos.append('制造商:%s' % bbd.Manufacturer)
			self.infos.append('主板型号:%s' % bbd.Product)
			self.infos.append('服务编号:%s' % bbd.SerialNumber)
			self.infos.append('主板状态:%s' % bbd.Status)
		# 获取处理器信息
		self.infos.append('\n')
		self.infos.append('处理器信息:')
		for cpu in self.cmp.Win32_Processor():
			# print(cpu)
			self.infos.append('处理器型号:%s' % cpu.Name)
			self.infos.append('数据位数:%d' % cpu.DataWidth)
			self.infos.append('二级缓存:%d' % cpu.L2CacheSize)
			self.infos.append('三级缓存:%d' % cpu.L3CacheSize)
			self.infos.append('核心数量:%d' % cpu.NumberOfCores)
			self.infos.append('逻辑核数:%d' % cpu.NumberOfLogicalProcessors)
			self.infos.append('CPU状态:%s' % cpu.Status)
		# 查看物理磁盘信息
		self.infos.append('\n')
		self.infos.append('物理磁盘信息:')
		for pdisk in self.cmp.Win32_DiskDrive():
			# print (pdisk)
			self.infos.append('磁盘:%d'%pdisk.Index)
			self.infos.append('磁盘名称:%s'%pdisk.Caption)
			self.infos.append('服务编号:%s'%pdisk.SerialNumber.strip())
			self.infos.append('磁盘大小:' + str(round(int(pdisk.Size) / (1024 * 1024 * 1024), 0)))
			self.infos.append('磁盘状态:' + pdisk.Status)
		# 查看磁盘分区信息
		self.infos.append('\n')
		self.infos.append('磁盘分区信息:')
		for ldisk in self.cmp.Win32_logicalDisk():
			if ldisk.DriveType == 3:
				# print(ldisk)
				self.infos.append(ldisk.Name)
				self.infos.append('文件系统:'+ldisk.FileSystem)
				self.infos.append('磁盘大小:'+str(round(int(ldisk.Size)/(1024*1024*1024),0)))
				self.infos.append('剩余空间:' + str(round(int(ldisk.FreeSpace) / (1024 * 1024 * 1024), 0)))
				self.infos.append('磁盘空置率:%0.2f%%'%round(int(ldisk.FreeSpace) /int(ldisk.Size)*100,2))
		# 查看BIOS信息
		self.infos.append('\n')
		self.infos.append('BIOS信息:')
		for bios in self.cmp.Win32_BIOS():
			self.infos.append('制造商:%s' % bios.Manufacturer)
			self.infos.append('服务编号:%s' % bios.SerialNumber)
			self.infos.append('BIOS版本号:%s' % bios.SMBIOSBIOSVersion)
			self.infos.append('BIOS版本号(制造商):%s' % bios.Version)
		# 查看网络适配器信息
		self.infos.append('\n')
		self.infos.append('网络适配器信息:')
		for mac in self.cmp.Win32_NetworkAdapter():
			if mac.PhysicalAdapter:
				self.infos.append('适配器信息:%s' % mac.AdapterType)
				self.infos.append('适配器描述:%s' % mac.Description)
				self.infos.append('适配器GUID:%s' % mac.GUID)
				self.infos.append('适配器Mac地址:%s' % mac.MACAddress)
		# 查看进程信息
		self.infos.append('\n')
		self.infos.append('进程信息:')
		for pcs in self.cmp.Win32_Process():
			self.infos.append('进程ID:%s' % pcs.ProcessId)
			self.infos.append('进程名称:%s' % pcs.Name)
			self.infos.append('启动时间:%s' %  pcs.CreationDate.split('.')[0])
			self.infos.append('运行地址:%s' % pcs.CommandLine)
		# 获取本机Ip地址
		self.infos.append('\n')
		self.infos.append('本机Ip地址:')
		for ips in self.cmp.Win32_NetworkAdapterConfiguration():
			if ips.IPAddress:
				self.infos.append('Ip地址:%s' % str(ips.IPAddress[0]))
				# print(ips.IPAddress[0])
				# print(type(ips.IPAddress))
				self.infos.append('子网掩码:%s' % ips.IPSubnet[0])
				self.infos.append('网关地址:%s' % ips.DefaultIPGateway)
				self.infos.append('Dns地址:%s' % ips.DNSServerSearchOrder)
				self.infos.append('是否DHCP:%s' % ips.DHCPEnabled)	

if __name__ == '__main__':
	cmp = Computer()
	for item in cmp.infos:
		print (item)

未完待续

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值