脚本如下:

#!/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. $Luogu2512/CH122/AcWing122$糖果传递 模拟

    $Luogu$  $AcWing$ $Description$ 有$n$个小朋友坐成一圈,每人有$a_i$个糖果. 每人只能给左右两人传递糖果. 每人每次传递一个糖果代价为$1$. 求使所有人获得均等 ...

  2. 菜鸟系列Fabric源码学习 — MVCC验证

    Fabric 1.4 源码分析 MVCC验证 读本节文档之前建议先查看[Fabric 1.4 源码分析 committer记账节点]章节. 1. MVCC简介 Multi-Version Concur ...

  3. JSONP Hijackin攻击详解

    JSONP Hijackin的中文意思是JSON劫持,而能产生JSON数据劫持的原因在于前端被跨站攻击了.跨站=跨域,跨域从字面上理解的话,就是指超出了范围.领域.继续追问一下,那超出了什么范围?原来 ...

  4. 个性化重排--Personalized Re-ranking for Recommendation

    推荐中的个性化重排--Personalized Re-ranking for Recommendation 这篇文章是阿里在ResSys'19发表的,主要贡献是在重排序阶段,引入了用户的相关信息,很符 ...

  5. kubernetes基础——一文读懂k8s

    容器 容器与虚拟机对比图(左边为容器.右边为虚拟机)   容器技术是虚拟化技术的一种,以Docker为例,Docker利用Linux的LXC(LinuX Containers)技术.CGroup(Co ...

  6. wpf 画五角星函数

    public void ABC() { var canvas = new Canvas(); Content = canvas; var points = new List<Point>( ...

  7. 《图解机器学习-杉山将著》读书笔记---CH5

    CH5 稀疏学习 重点提炼 提出稀疏学习的缘故: 虽然带有约束条件的最小二乘学习法结合交叉验证法,在实际应用中是非常有效的回归方法,但是,当参数特别多时,计算参数以及预测值需要大量时间.此时,我们要解 ...

  8. Class 'org.apache.tomcat.jdbc.pool.DataSource' not found

    把项目移动到新的运行环境时,明明包都导入了,项目也放进tomcat里面了,但是还会找不到该类 解决方法:项目右键选择底下的Properties ->project facets ->jav ...

  9. wireshark使用过程中,卡死未响应

    原因 : 未知 处理办法:1.重装wireshark ----------无效果 2.卸载有道词典-----------成功,wireshark正常运行,重装有道词典该问题必现,所以问题由有道词典引起 ...

  10. Java 项目热部署,节省构建时间的正确姿势

    上周末,帮杨小邪(我的大学室友)远程调试项目.SpringBoot 构建,没有热部署,改一下就得重启相关模块.小小的 bug ,搞了我一个多小时,大部分时间都还在构建上(特么,下次得收钱才行).我跟他 ...