zoukankan      html  css  js  c++  java
  • 检测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 != '
    ']
        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 != '
    '][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计算机硬件检查的函数
    
    
    
    
    # 检查计算机是什么类型的
    
  • 相关阅读:
    微人事项目-mybatis-持久层
    通过外键连接多个表
    springioc
    Redis 消息中间件 ServiceStack.Redis 轻量级
    深度数据对接 链接服务器 数据传输
    sqlserver 抓取所有执行语句 SQL语句分析 死锁 抓取
    sqlserver 索引优化 CPU占用过高 执行分析 服务器检查
    sql server 远程备份 bak 删除
    冒泡排序
    多线程 异步 beginInvoke EndInvoke 使用
  • 原文地址:https://www.cnblogs.com/sunchao1984/p/5121491.html
Copyright © 2011-2022 走看看