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

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

admin1年前 (2024-12-13)工作笔记535
'''
  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硬件信息” 的相关文章

Nmap进行端口扫描检测

Nmap进行端口扫描检测

Command,Description (中文翻译)nmap ,简单扫描nmap -v ,详细模式nmap -vv ,增强详细模式nmap -sS ,TCP 扫描nmap -sU ,UDP 扫描nmap sn ,扫描但不发送数据包nmap sp ,主机发现nmap-open ,有开放端口的主机nma...

python获取windows的硬件信息

python获取windows的硬件信息

# -*- coding: UTF-8 -*- ''' ================================================= @Project -> File &n...

开机登录失败 提示"user profile service服务未能登录,无法加载用户配置文件" 问题解决办法

开机登录失败 提示"user profile service服务未能登录,无法加载用户配置文件" 问题解决办法

【问题描述】Windows系统开机后,在用户登录界面输入密码无法正常登录,提示“user profile service服务未能登录,无法加载用户配置文件”。点击“确定”按钮后又回到密码输入界面。【解决办法】1、重新启动计算机,并在开机时按 F8,之后选择 “安全模式” 或者 “带网络的安全模式”...

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

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

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