脚本如下:

  1. #!/usr/bin/env python
  2. #coding:utf-
  3.  
  4. import wmi
  5. import sys,time,platform
  6.  
  7. def get_system_info(os):
  8. """
  9. 获取操作系统版本。
  10. """
  11. print
  12. print "Operating system:"
  13. if os == "Windows":
  14. c = wmi.WMI ()
  15. for sys in c.Win32_OperatingSystem():
  16. print '\t' + "Version :\t%s" % sys.Caption.encode("UTF-8")
  17. print '\t' + "Vernum :\t%s" % sys.BuildNumber
  18.  
  19. def get_memory_info(os):
  20. """
  21. 获取物理内存和虚拟内存。
  22. """
  23. print
  24. print "memory_info:"
  25. if os == "Windows":
  26. c = wmi.WMI ()
  27. cs = c.Win32_ComputerSystem()
  28. pfu = c.Win32_PageFileUsage()
  29. MemTotal = int(cs[].TotalPhysicalMemory)//
  30. print '\t' + "TotalPhysicalMemory :" + '\t' + str(MemTotal) + "M"
  31. #tmpdict["MemFree"] = int(os[].FreePhysicalMemory)/
  32. SwapTotal = int(pfu[].AllocatedBaseSize)
  33. print '\t' + "SwapTotal :" + '\t' + str(SwapTotal) + "M"
  34. #tmpdict["SwapFree"] = int(pfu[].AllocatedBaseSize - pfu[].CurrentUsage)
  35.  
  36. def get_disk_info(os):
  37. """
  38. 获取物理磁盘信息。
  39. """
  40. print
  41. print "disk_info:"
  42. if os == "Windows":
  43. tmplist = []
  44. c = wmi.WMI ()
  45. for physical_disk in c.Win32_DiskDrive():
  46. if physical_disk.Size:
  47. print '\t' + str(physical_disk.Caption) + ' :\t' + str(long(physical_disk.Size)///) + "G"
  48.  
  49. def get_cpu_info(os):
  50. """
  51. 获取CPU信息。
  52. """
  53. print
  54. print "cpu_info:"
  55. if os == "Windows":
  56. tmpdict = {}
  57. tmpdict["CpuCores"] =
  58. c = wmi.WMI ()
  59. for cpu in c.Win32_Processor():
  60. tmpdict["CpuType"] = cpu.Name
  61. try:
  62. tmpdict["CpuCores"] = cpu.NumberOfCores
  63. except:
  64. tmpdict["CpuCores"] +=
  65. tmpdict["CpuClock"] = cpu.MaxClockSpeed
  66. print '\t' + 'CpuType :\t' + str(tmpdict["CpuType"])
  67. print '\t' + 'CpuCores :\t' + str(tmpdict["CpuCores"])
  68.  
  69. def get_network_info(os):
  70. """
  71. 获取网卡信息和当前TCP连接数。
  72. """
  73. print
  74. print "network_info:"
  75. if os == "Windows":
  76. tmplist = []
  77. c = wmi.WMI ()
  78. for interface in c.Win32_NetworkAdapterConfiguration (IPEnabled=):
  79. tmpdict = {}
  80. tmpdict["Description"] = interface.Description
  81. tmpdict["IPAddress"] = interface.IPAddress[]
  82. tmpdict["IPSubnet"] = interface.IPSubnet[]
  83. tmpdict["MAC"] = interface.MACAddress
  84. tmplist.append(tmpdict)
  85. for i in tmplist:
  86. print '\t' + i["Description"]
  87. print '\t' + '\t' + "MAC :" + '\t' + i["MAC"]
  88. print '\t' + '\t' + "IPAddress :" + '\t' + i["IPAddress"]
  89. print '\t' + '\t' + "IPSubnet :" + '\t' + i["IPSubnet"]
  90. for interfacePerfTCP in c.Win32_PerfRawData_Tcpip_TCPv4():
  91. print '\t' + 'TCP Connect :\t' + str(interfacePerfTCP.ConnectionsEstablished)
  92.  
  93. if __name__ == "__main__":
  94. os = platform.system()
  95. get_system_info(os)
  96. get_memory_info(os)
  97. get_disk_info(os)
  98. get_cpu_info(os)
  99. get_network_info(os)

执行结果:

  1. Operating system:
  2. Version : Microsoft Windows 家庭中文版
  3. Vernum :
  4.  
  5. memory_info:
  6. TotalPhysicalMemory : 4011M
  7. SwapTotal : 6656M
  8.  
  9. disk_info:
  10. TOSHIBA MQ01ABF050 : 465G
  11. KINGSTON SA400S37120G : 111G
  12.  
  13. cpu_info:
  14. CpuType : Intel(R) Core(TM) i5-5257U CPU @ .70GHz
  15. CpuCores :
  16.  
  17. network_info:
  18. Realtek RTL8723BE Wireless LAN .11n PCI-E NIC
  19. MAC : :6D:C7:8D::8D
  20. IPAddress : 192.168.0.103
  21. IPSubnet : 255.255.255.0
  22. 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. tensorflow之tf.train.exponential_decay()指数衰减法

    exponential_decay(learning_rate,  global_steps, decay_steps, decay_rate, staircase=False, name=None) ...

  2. 《Java开发学习大纲文档》V8.0

    <Java开发学习大纲文档>V8.0 第八版是以实战作为核心,同时也包含前面所有版本的精华部分,第八版加入的部分有云开发(阿里云OSS存储.(github)gitlab+docker网站自 ...

  3. 从0开发3D引擎(二):准备预备知识

    大家好,本文介绍了开发3D引擎需要的预备知识,给出了相关的资源. 上一篇博文 从0开发3D引擎(一):开篇 了解Web 3D Web 3D的历史 目前Web 3D是基于WebGL这个Web端3D AP ...

  4. 细说javascript typeof操作符

    细说javascript typeof操作符 typeof定义 typeof是一元运算符,用来返回操作数类型的字符串.下面是ECAMScript5.1关于typeof的标准定义: NOTE:上面表格标 ...

  5. 扫描器是如何判定有xss漏洞的

    这个问题,看似简单,实则触及到很多人的知识盲区 我们都知道,弹窗就能判定这个页面存在xss, 那么扫描器是怎么判断的呢,或者说扫描器是怎么判断是否弹窗的呢 测试发现 当响应的头中content-typ ...

  6. BFS小记

    题目:求从S走到G点所需步数 #S######.#......#..#.#.##.##.#.#........##.##.####....#....#.#######.#....#......#### ...

  7. C# DataTable数据类型判断

    当我们从数据中获取到数据,一般会使用 DataTable 接收,然后会遍历每行数据.由于从数据库中读取的数据可能为空,比如我们的编译代码如下: foreach (DataRow datarow in ...

  8. GXOI&GZOI

    T1 与或和   2s&&512MB   简明题意:求一个矩阵的所有子序列的 \(and\)和 和\(or\)和: 子矩阵的\(and\)和就是所有值\(and\)起来:\(or\)类 ...

  9. Spring Boot2 系列教程 (十八) | 整合 MongoDB

    微信公众号:一个优秀的废人.如有问题,请后台留言,反正我也不会听. 前言 如题,今天介绍下 SpringBoot 是如何整合 MongoDB 的. MongoDB 简介 MongoDB 是由 C++ ...

  10. Spring Boot2 系列教程 (十六) | 整合 WebSocket 实现广播

    前言 如题,今天介绍的是 SpringBoot 整合 WebSocket 实现广播消息. 什么是 WebSocket ? WebSocket 为浏览器和服务器提供了双工异步通信的功能,即浏览器可以向服 ...