zoukankan      html  css  js  c++  java
  • 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 '	' + "Version :	%s" % sys.Caption.encode("UTF-8")
                print '	' + "Vernum :	%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 '	' + "TotalPhysicalMemory :" + '	' + str(MemTotal) + "M"
            #tmpdict["MemFree"] = int(os[0].FreePhysicalMemory)/1024
            SwapTotal = int(pfu[0].AllocatedBaseSize)
            print '	' + "SwapTotal :" + '	' + 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 '	' + str(physical_disk.Caption) + ' :	' + 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 '	' + 'CpuType :	' + str(tmpdict["CpuType"])
            print '	' + 'CpuCores :	' + 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 '	' + i["Description"]
                print '	' + '	' + "MAC :" + '	' + i["MAC"]
                print '	' + '	' + "IPAddress :" + '	' + i["IPAddress"]
                print '	' + '	' + "IPSubnet :" + '	' + i["IPSubnet"]
            for interfacePerfTCP in c.Win32_PerfRawData_Tcpip_TCPv4():
                    print '	' + 'TCP Connect :	' + 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

  • 相关阅读:
    学术诚信与职业道德
    第8,9,10章读后感
    Scrum项目7.0
    燃尽图
    Scrum 项目4.0
    Sprint计划
    复利计算再升级——连接数据库
    软件工程---做汉堡,结对2.0
    软件工程---复利计算-结对
    学习进度条博客
  • 原文地址:https://www.cnblogs.com/zhongguiyao/p/8997925.html
Copyright © 2011-2022 走看看