检测windows计算机的硬件

自己造了个轮子,用python+wmic去获取windows的硬件信息,其实是很狭隘的版本。

之前写过一个版本,用requests+json去网上获取,但是那个有个坑,联想的序列号分不清带不带I,如x230和x230i序列号可能是一样的,还得选。

所以只好自己写了。

# coding=GBK
import os,re

# windows计算机硬件检查的函数


def wmic_get(command, return_type = 's', location = 1):
# 这个函数的目的是解析windows的强大的wmic命令行,解析出返回值
# 参数带q,表示返回的是一个队列,参数带s,表示返回的是要取的值,默认是s
    return_value = [i for i in os.popen(command).readlines() if i != '\n']
    return_queue = []
    for i in return_value:
        return_queue.append(i.strip())
    return_one = return_queue[location]
    if return_type == 'q':
        return return_queue
    elif return_type == 's':
        return return_one


def get_manufacturer():  # 检查厂商
    return wmic_get('wmic bios get manufacturer')


def get_cpu_info():  # 检查CPU型号
    cpu_info = os.popen('wmic cpu list brief')
    cpu_info = cpu_info.readlines()
    f = [i for i in cpu_info if i != '\n'][1].split('  ')
    for i in f:
        if re.search('.*@.*', i):
            return i


def get_hdd_info():  # 检查硬盘名称
    return wmic_get("wmic diskdrive get model")


def get_hdd_size():  # 检查硬盘容量
    hdd_size = int(wmic_get('wmic diskdrive get size')) / 1000000000
    return str(int(hdd_size)) + ' GB'


def get_free_space():  # 检查硬盘剩余容量
    free_space = wmic_get('wmic volume get freespace', 'q')
    summary = []
    for i in free_space:
        s = re.match('\d+', i)
        if s != None:
            summary.append(int(s.group(0)))
    return str(int(sum(summary) / 1073741824)) + ' GB'


def get_mem_size():  # 检查内存大小
    result = wmic_get('wmic memorychip get capacity')
    result = int(result) / 1024 ** 3
    return str(result) + ' GB'


def get_mem_speed():  # 检查内存速率
    return wmic_get('wmic memorychip get speed')


def get_type_number():  # 检查TYPE号(如果有)
    return wmic_get('wmic baseboard get product')


def get_sn():  # 检查序列号
    return wmic_get('wmic bios get serialnumber')


def get_os_name():  # 检查操作系统
    os = wmic_get('wmic os get name')
    os_name = os.split('|')
    return os_name[0]


def get_os_path():  # 检查操作系统SP补丁号:
    return wmic_get('wmic os get csdversion')


def get_domain():  # 检查域
    return wmic_get('wmic computersystem get domain')


def get_install_date():  # 检查安装日期
    i = wmic_get('wmic os get installdate')[:14]
    i = i[:4] + '\\' + i[4:6] + '\\' + i[6:8] + ' ' + i[8:10] + ':' + i[10:12] + ':' + i[12:14]
    return i


def get_window_dir():  # 检查C盘所在位置
    return wmic_get('wmic os get windowsdirectory')


def get_pc_name():  # 检查计算机名
    return wmic_get('wmic computersystem get caption')


def get_pc_model():  # 检查计算机型号
    return wmic_get('wmic computersystem get model')


def get_user_name():  # 检查当前登录用户
    return wmic_get('wmic computersystem get username')

# test function

print '厂商: ', get_manufacturer()
print '型号: ', get_pc_model()
print 'CPU: ', get_cpu_info()
print '内存大小: ', get_mem_size()
print '内存速度: ', get_mem_speed()
print '硬盘: ', get_hdd_info()
print '硬盘大小: ', get_hdd_size()
print '剩余空间: ', get_free_space()
print 'TYPE: ', get_type_number()
print 'SN: ', get_sn()
print '操作系统: ', get_os_name()
print '补丁: ', get_os_path()
print '域: ', get_domain()
print '安装时间: ', get_install_date()
print '计算机名: ', get_pc_name()
print 'windows目录: ', get_window_dir()
print '登录用户: ', get_user_name()

a=input()
# APPLE计算机硬件检查的函数




# 检查计算机是什么类型的

 

posted on 2016-01-11 15:46  我家有个小豌豆  阅读(565)  评论(0编辑  收藏  举报

导航