当前位置:首页 > 操作系统 > Windows

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

 

 

脚本如下:

 

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


import wmi
import sys,time,platform

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

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

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

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


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

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

 

执行结果:

            <span>Operating system:
    Version :    Microsoft Windows </span>
            <span>10</span>
            <span> 家庭中文版
    Vernum :    </span>
            <span>15063</span>
            <span>

memory_info:
    TotalPhysicalMemory :    4011M
    SwapTotal :    6656M

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

cpu_info:
    CpuType :    Intel(R) Core(TM) i5</span>-<span>5257U</span> CPU @ <span>2</span><span>.70GHz
    CpuCores :    </span><span>2</span><span>

network_info:
    Realtek RTL8723BE Wireless LAN </span><span>802</span>.11n PCI-<span>E NIC
        MAC :    </span><span>60</span>:6D:C7:8D:<span>28</span><span>:8D
        IPAddress :    </span><span>192.168</span>.<span>0.103</span><span>
        IPSubnet :    </span><span>255.255</span>.<span>255.0</span><span>
    TCP Connect :    </span><span>54</span>

 

 

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

 

原文:https://www.cnblogs.com/zhongguiyao/p/8997925.html


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐