python写的用WMI检测windows系统信息的脚本

Posted 钟桂耀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python写的用WMI检测windows系统信息的脚本相关的知识,希望对你有一定的参考价值。

 

 

脚本如下:

 

#!/usr/bin/env python
#coding:utf-8


import wmi
import sys,time,platform

def get_system_info(os):
    """
    获取操作系统版本。
    """
    print
    print "Operating system:"
    if os == "Windows":
        c = wmi.WMI ()
        for sys in c.Win32_OperatingSystem():
            print \t + "Version :\t%s" % sys.Caption.encode("UTF-8")
            print \t + "Vernum :\t%s" % sys.BuildNumber

def get_memory_info(os):
    """
    获取物理内存和虚拟内存。
    """
    print
    print "memory_info:"
    if os == "Windows":
        c = wmi.WMI ()
        cs = c.Win32_ComputerSystem()
        pfu = c.Win32_PageFileUsage()
        MemTotal = int(cs[0].TotalPhysicalMemory)/1024/1024
        print \t + "TotalPhysicalMemory :" + \t + str(MemTotal) + "M"
        #tmpdict["MemFree"] = int(os[0].FreePhysicalMemory)/1024
        SwapTotal = int(pfu[0].AllocatedBaseSize)
        print \t + "SwapTotal :" + \t + str(SwapTotal) + "M"
        #tmpdict["SwapFree"] = int(pfu[0].AllocatedBaseSize - pfu[0].CurrentUsage)

def get_disk_info(os):
    """
    获取物理磁盘信息。
    """
    print
    print "disk_info:"
    if os == "Windows":
        tmplist = []
        c = wmi.WMI ()
        for physical_disk in c.Win32_DiskDrive():
            if physical_disk.Size:
                print \t + str(physical_disk.Caption) +  :\t + str(long(physical_disk.Size)/1024/1024/1024) + "G"

def get_cpu_info(os):
    """
    获取CPU信息。
    """
    print
    print "cpu_info:"
    if os == "Windows":
        tmpdict = {}
        tmpdict["CpuCores"] = 0
        c = wmi.WMI ()
        for cpu in c.Win32_Processor():
            tmpdict["CpuType"] = cpu.Name
        try:
            tmpdict["CpuCores"] = cpu.NumberOfCores
        except:
            tmpdict["CpuCores"] += 1
            tmpdict["CpuClock"] = cpu.MaxClockSpeed
        print \t + CpuType :\t + str(tmpdict["CpuType"])
        print \t + CpuCores :\t + str(tmpdict["CpuCores"])


def get_network_info(os):
    """
    获取网卡信息和当前TCP连接数。
    """
    print
    print "network_info:"
    if os == "Windows":
        tmplist = []
        c = wmi.WMI ()
        for interface in c.Win32_NetworkAdapterConfiguration (IPEnabled=1):
                tmpdict = {}
                tmpdict["Description"] = interface.Description
                tmpdict["IPAddress"] = interface.IPAddress[0]
                tmpdict["IPSubnet"] = interface.IPSubnet[0]
                tmpdict["MAC"] = interface.MACAddress
                tmplist.append(tmpdict)
        for i in tmplist:
            print \t + i["Description"]
            print \t + \t + "MAC :" + \t + i["MAC"]
            print \t + \t + "IPAddress :" + \t + i["IPAddress"]
            print \t + \t + "IPSubnet :" + \t + i["IPSubnet"]
        for interfacePerfTCP in c.Win32_PerfRawData_Tcpip_TCPv4():
                print \t + TCP Connect :\t + str(interfacePerfTCP.ConnectionsEstablished)

if __name__ == "__main__":
    os = platform.system()
    get_system_info(os)
    get_memory_info(os)
    get_disk_info(os)
    get_cpu_info(os)
    get_network_info(os)

 

执行结果:

Operating system:
    Version :    Microsoft Windows 10 家庭中文版
    Vernum :    15063

memory_info:
    TotalPhysicalMemory :    4011M
    SwapTotal :    6656M

disk_info:
    TOSHIBA MQ01ABF050 :    465G
    KINGSTON SA400S37120G :    111G

cpu_info:
    CpuType :    Intel(R) Core(TM) i5-5257U CPU @ 2.70GHz
    CpuCores :    2

network_info:
    Realtek RTL8723BE Wireless LAN 802.11n PCI-E NIC
        MAC :    60:6D:C7:8D:28:8D
        IPAddress :    192.168.0.103
        IPSubnet :    255.255.255.0
    TCP Connect :    54

 

 

参考:http://blog.51cto.com/wangwei007/1033760

 

以上是关于python写的用WMI检测windows系统信息的脚本的主要内容,如果未能解决你的问题,请参考以下文章

python 模块 wmi 远程连接 windows 获取配置信息

Python用WMI模块获取windowns系统信息

使用WMI对象收集计算机信息

使用WMI对象收集计算机信息

WMI 与 Windows API

WMI Provider Host