脚本如下:

#!/usr/bin/env python
#coding:utf- 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[].TotalPhysicalMemory)//
print '\t' + "TotalPhysicalMemory :" + '\t' + str(MemTotal) + "M"
#tmpdict["MemFree"] = int(os[].FreePhysicalMemory)/
SwapTotal = int(pfu[].AllocatedBaseSize)
print '\t' + "SwapTotal :" + '\t' + str(SwapTotal) + "M"
#tmpdict["SwapFree"] = int(pfu[].AllocatedBaseSize - pfu[].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)///) + "G" def get_cpu_info(os):
"""
获取CPU信息。
"""
print
print "cpu_info:"
if os == "Windows":
tmpdict = {}
tmpdict["CpuCores"] =
c = wmi.WMI ()
for cpu in c.Win32_Processor():
tmpdict["CpuType"] = cpu.Name
try:
tmpdict["CpuCores"] = cpu.NumberOfCores
except:
tmpdict["CpuCores"] +=
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=):
tmpdict = {}
tmpdict["Description"] = interface.Description
tmpdict["IPAddress"] = interface.IPAddress[]
tmpdict["IPSubnet"] = interface.IPSubnet[]
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 家庭中文版
Vernum : memory_info:
TotalPhysicalMemory : 4011M
SwapTotal : 6656M disk_info:
TOSHIBA MQ01ABF050 : 465G
KINGSTON SA400S37120G : 111G cpu_info:
CpuType : Intel(R) Core(TM) i5-5257U CPU @ .70GHz
CpuCores : network_info:
Realtek RTL8723BE Wireless LAN .11n PCI-E NIC
MAC : :6D:C7:8D::8D
IPAddress : 192.168.0.103
IPSubnet : 255.255.255.0
TCP Connect :

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

python写的用WMI检测windows系统信息的脚本的更多相关文章

  1. Python WMI获取Windows系统信息 监控系统

    #!/usr/bin/env python # -*- coding: utf-8 -*- #http://www.cnblogs.com/liu-ke/ import wmi import os i ...

  2. Python WMI获取Windows系统信息

    #!/usr/bin/env python # -*- coding: utf-8 -*- #http://www.cnblogs.com/liu-ke/ import wmi import os i ...

  3. 用Python写了个下载快手视频的小脚本

    最近又重新拾起了,对python的热情. 贴个地址: https://github.com/d1y/lovepack/blob/master/kuaishou.py 前戏说明 因为我近乎癫狂的喜欢一个 ...

  4. Python使用wmi获取Windows相关信息

    在使用Python获取Windows系统上的相关的信息可以使用WMI接口来获取, 什么是wmi? WMI是一项核心的Windows管理技术,WMI作为一种规范和基础结构,通过它可以访问.配置.管理和监 ...

  5. 用python写windows服务

    用python写windows服务(1) 以python2.5 为例需要软件 * python 2.5        * pywin32(与2.5 版本相匹配的) Service Control Ma ...

  6. 用PYTHON + PYWIN32 + WMI获取WINDOWS系统基本信息

    网上原码,去了DECODE编码的问题. PyScripter这个PYTHON的IDE工具在WIN下表现不错哟. 感觉比SPYDER,ERIC,SUBLEME TEXT3之类的好用呀.. #!/usr/ ...

  7. 181102 Windows下安装kivy(用python写APP)

    了解到Instgram,知乎等APP是用python写的.我也决定学习用python写APP.这里我们需要安装kivy. 环境:win7,python3.6 安装方式:DOS命令窗口 注意事项:目前不 ...

  8. 【Python】如何基于Python写一个TCP反向连接后门

    首发安全客 如何基于Python写一个TCP反向连接后门 https://www.anquanke.com/post/id/92401 0x0 介绍 在Linux系统做未授权测试,我们须准备一个安全的 ...

  9. Python写各大聊天系统的屏蔽脏话功能原理

    Python写各大聊天系统的屏蔽脏话功能原理 突然想到一个视频里面弹幕被和谐的一满屏的*号觉得很有趣,然后就想用python来试试写写看,结果还真玩出了点效果,思路是首先你得有一个脏话存放的仓库好到时 ...

随机推荐

  1. 有关call和apply、bind的区别及this指向问题

    call和apply都是解决this指向问题的方法,唯一的区别是apply传入的参数除了其指定的this对象之外的参数是一个数组,数组中的值会作为参数按照顺序传入到this指定的对象中. bind是解 ...

  2. vc++调用msscript.ocx解析实现C++与JavaScript脚本交互

    ScriptControl接口 属性名称 类型 备注 AllowUI BOOL 检测是否允许运行用户的接口元素.如果为False,则诸如消息框之类的界面元素不可见. CodeObject Object ...

  3. $Poj3179\ Corral\ the\ Cows$ 二分+离散化+二维前缀和

    Poj $Description$ 在一个二维平面上,有$N$颗草,每颗草的大小是$1*1$,左下角坐标为$x_i,y_i$.要求一个正方形,正方形的边平行于$x$或$y$轴,正方形里面包含至少$C$ ...

  4. MediatorPattern(中介者模式)-----Java/.Net

    中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性.这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护.中介者模式属于行为型模式.

  5. 人生苦短,我用Python(6)

    1.分隔.合并字符串 分隔字符串是把字符串分隔为列表,而合并字符串是把列表合并为字符串,分割字符串和合并字符串可以看作是互逆操作. (1)分隔字符串 字符串对象得split()方法可以实现字符串分隔, ...

  6. 洛谷P1462 通往奥格瑞玛的道路 题解 最短路+二分答案

    题目链接:https://www.luogu.com.cn/problem/P1462 题目大意: 有 \(n\) 个点 \(m\) 条边,每个点有一个点权,每个边有一个边权.求所有长度不超过 \(b ...

  7. 小小知识点(三十五)MATLAB中如何更改所画Figure的图形比例

    1. 打开一个figure,show plot tools and dock figure 2.选择图形的 more properties 3. 选择aspect ratio中的plotboxaspe ...

  8. centos7.3安装chrome

    Centos7安装chrome浏览器 1.配置yum源 在目录 /etc/yum.repos.d/ 下新建文件 google-chrome.repo cd /ect/yum.repos.d/ vim ...

  9. three.js入门第一个案例

    准备工作 1.运用three.js进行3d开发,其实和页面编程一样,首先需要在html文件中引入three.js.Three.js使用面向对象的方式来构建程序,它包含3个基本对象: 场景(scene) ...

  10. Ceph日常运维管理和排错 -- <7>

    Ceph日常运维管理 集群监控管理 集群整体运行状态 [root@cephnode01 ~]# ceph -s cluster: id: 8230a918-a0de-4784-9ab8-cd2a2b8 ...