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

猜你喜欢

转载自www.cnblogs.com/zhongguiyao/p/8997925.html