工具/版本
(1)安装环境:Windows7 64bit
(2)使用版本Python3.6
一、准备工作
安装pywin32模块
安装wmi模块
二、开始
1、获取系统版本,版本号等
def sys_version():
c = wmi.WMI()
#获取操作系统版本,版本号
for sys in c.Win32_OperatingSystem():
print_err("Version:%s ; Vernum:%s" % (sys.Caption, sys.BuildNumber))
print_err(sys.OSArchitecture) #系统是32位还是64位的
print_err(sys.NumberOfProcesses) #当前系统运行的进程总数
Version:Microsoft Windows 7 旗舰版 ; Vernum:7601
64-bit
107
2、获取CPU ID,CPU名称,内存大小
def cpu_mem():
c = wmi.WMI()
# CPU类型和内存
for processor in c.Win32_Processor():
print_err("Processor ID: %s" % processor.DeviceID)
print_err("Process Name: %s" % processor.Name.strip())
for Memory in c.Win32_PhysicalMemory():
print_err("Memory Capacity: %.fMB" % (int(Memory.Capacity)/1048576))
[2018-08-18 16:23:06]:Processor ID: CPU0
[2018-08-18 16:23:06]: Process Name: Intel(R) Core(TM) i7-4510U CPU @ 2.00GHz
[2018-08-18 16:23:06]: Memory Capacity: 8192MB
3、获取硬盘信息
def disk():
c = wmi.WMI ()
# 获取硬盘分区
for physical_disk in c.Win32_DiskDrive():
for partition in physical_disk.associators("Win32_DiskDriveToDiskPartition"):
for logical_disk in partition.associators("Win32_LogicalDiskToPartition"):
print(physical_disk.Caption, partition.Caption, logical_disk.Caption)
# 获取硬盘使用百分情况
for disk in c.Win32_LogicalDisk(DriveType=3):
print(disk.Caption, "%0.2f%% free" % (100.0 * int(disk.FreeSpace) / int(disk.Size)))
ST1000LM 024 HN-M101MBB SCSI Disk Device Disk #0, Partition #1 C:
ST1000LM 024 HN-M101MBB SCSI Disk Device Disk #0, Partition #2 D:
ST1000LM 024 HN-M101MBB SCSI Disk Device Disk #0, Partition #3 E:
ST1000LM 024 HN-M101MBB SCSI Disk Device Disk #0, Partition #3 F:
C: 68.68% free
D: 43.59% free
E: 70.90% free
F: 21.91% free
3、获取网卡信息
def network():
c = wmi.WMI()
# 获取MAC和IP地址
for interface in c.Win32_NetworkAdapterConfiguration(IPEnabled=1):
print_err("MAC: %s" % interface.MACAddress)
for ip_address in interface.IPAddress:
print_err("ip_add: %s" % ip_address)
# 获取自启动程序的位置
for s in c.Win32_StartupCommand():
print_err("[%s] %s <%s>" % (s.Location, s.Caption, s.Command))
# 获取当前运行的进程
for process in c.Win32_Process():
print_err((process.ProcessId, process.Name))