当前位置:首页 > 工作笔记 > 正文内容

Python使用WMI模块获取Windows硬件信息

admin1年前 (2024-12-13)工作笔记538
'''
  Code description:Create time:Developer:
'''
# -*- coding: utf-8 -*-
import wmi
import os

print("###使用说明:请打开计算机基础配置文件夹,进入到dist目录下,双击运行:计算机基础配置信息.exe文件,"
      "在命令行窗口输入保存的文件名,运行完成后打开生成的txt文本即可查看获取到的计算机基础配置信息###")
while True:
    fname=input('enter filename>')
    if os.path.exists(fname):
        print("Error:'%s' already exists" %fname)
    else:
        break
# open函数在打开目录中进行检查,如果有则打开,否则新建
fobj=open(fname,'a',encoding='utf-8')

# 获取操作系统版本信息
def sys_version():
    c = wmi.WMI()
    for sys in c.Win32_OperatingSystem():
        print("操作系统版本:%s" % sys.Caption)
        fobj.write('操作系统版本:' + sys.Caption)
        print("操作系统位数:",sys.OSArchitecture)
        fobj.write('\n' + '操作系统位数:' + sys.OSArchitecture)
# 获取机器IP和MAC地址以及网卡类型
def getIP():
    c = wmi.WMI()
    for interface in c.Win32_NetworkAdapterConfiguration(IPEnabled=1):
        print("网口型号为:",interface.Description)
        fobj.write('\n' + '网口型号为:' + interface.Description)
        for ip_address in interface.IPAddress:
            print(ip_address)
            fobj.write('\n' + 'IP地址和MAC地址:' + ip_address)
# 获取CPU和内存大小
def cpu_and_mem():
    c = wmi.WMI()
    for cpu in c.Win32_Processor():
        print("CPU: %s" % cpu.Name.strip())
        fobj.write('\n' + 'CPU:' + cpu.Name.strip())
    for Memory in c.Win32_PhysicalMemory():
        print("内存大小: %.fGB" % ( (int(Memory.Capacity) / 1048576) /1024) )
        fobj.write('\n' + "内存大小: %.fGB" % ( (int(Memory.Capacity) / 1048576) /1024) )
# 获取磁盘分区和各分区大小
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)
                fobj.write('\n' + '磁盘分区:' + 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)))
        print(disk.Caption,"磁盘大小: %0.1fGB" % ((int(disk.Size) / 1048576) / 1024))
        fobj.write('\n' +disk.Caption + "磁盘大小: %0.1fGB" % ((int(disk.Size) / 1048576) / 1024))
def main():
    sys_version()
    getIP()
    cpu_and_mem()
    disk()
if __name__ == '__main__':
    main()

fobj.close()


“Python使用WMI模块获取Windows硬件信息” 的相关文章

How to fix the User Profile Service failed the logon

How to fix the User Profile Service failed the logon

By Jim MartinExecutive Editor, Tech Advisor AUG 14, 2019 12:54 am BSTPC AdvisorCorrupt user profiles are a common problem with Win...

软路由推荐及硬件设备选择指南

软路由推荐及硬件设备选择指南

选择软路由时,需综合考虑性能需求、预算、扩展性以及系统兼容性。以下是针对不同场景的推荐方案,涵盖硬件设备和系统选择: 一、硬件设备推荐1. 入门级(预算500元内) 友善 NanoPi R4S 瑞芯微RK3399双核处理器 + 4GB内存 双千兆网口,支持USB 3.0和PCIe扩展...