
正文
Python的功能模块[0] -> wmi -> 获取 Windows 内部信息
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
wmi模块 / wmi Module
WMI (Windows Management Instrumentation) 模块可用于获取 Windows 内部信息。该模块需要 win32com 的支持,环境安装如下,
pip install wmi
pip install pypiwin32
模块信息
WMI() 类
类实例化:w = wmi.WMI()
类的功能: 用于生成 WMI 的实例
传入参数: 无
返回参数: w
Win32_Processor() 方法
函数调用: processorList = w.Win32_Processor()
函数功能: 用于获取处理器信息对象,并存以列表形式
传入参数: 无
返回参数: processorList
processorList: list类型,list中每个元素均为一个含cpu信息的object
cpu object通过object.name调用,所含信息包括:
instance of Win32_Processor
{
AddressWidth = 64;
Architecture = 9;
Availability = 3;
Caption = "Intel64 Family 6 Model 78 Stepping 3";
CpuStatus = 1;
CreationClassName = "Win32_Processor";
CurrentClockSpeed = 2376;
CurrentVoltage = 9;
DataWidth = 64;
Description = "Intel64 Family 6 Model 78 Stepping 3";
DeviceID = "CPU0";
ExtClock = 100;
Family = 205;
L2CacheSize = 512;
L3CacheSize = 3072;
L3CacheSpeed = 0;
Level = 6;
LoadPercentage = 29;
Manufacturer = "GenuineIntel";
MaxClockSpeed = 2401;
Name = "Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz";
NumberOfCores = 2;
NumberOfLogicalProcessors = 4;
PowerManagementSupported = FALSE;
ProcessorId = "BFEBFBFF000406E3";
ProcessorType = 3;
Revision = 19971;
Role = "CPU";
SocketDesignation = "U3E1";
Status = "OK";
StatusInfo = 3;
SystemCreationClassName = "Win32_ComputerSystem";
SystemName = "CN00208511";
UpgradeMethod = 1;
Version = "";
};
Win32_PhysicalMemory() 方法
函数调用: memModuleList = w.Win32_PhysicalMemory()
函数功能: 用于获取物理内存信息对象,并存以列表形式
传入参数: 无
返回参数: memModuleList
memModuleList: list 类型,list 中每个元素均为一个含物理内存信息的 object
物理内存 object 通过 object.name 调用,所含信息包括:
instance of Win32_PhysicalMemory
{
BankLabel = "ChannelA";
Capacity = "";
Caption = "Physical Memory";
CreationClassName = "Win32_PhysicalMemory";
DataWidth = 64;
Description = "Physical Memory";
DeviceLocator = "Bottom-Slot 1(left)";
FormFactor = 12;
InterleaveDataDepth = 0;
InterleavePosition = 0;
Manufacturer = "Hynix/Hyundai";
MemoryType = 0;
Name = "Physical Memory";
PartNumber = "HMA81GS6AFR8N-UH ";
PositionInRow = 1;
SerialNumber = "28ECE200";
Speed = 2133;
Tag = "Physical Memory 0";
TotalWidth = 64;
TypeDetail = 16512;
};
Win32_LogicalDisk () 方法
函数调用: diskList = w.Win32_LogicalDisk(DriverType=3)
函数功能:用于获取磁盘信息对象,并存以列表形式
传入参数: *argv
DriverType: int 类型,筛选驱动类型
返回参数: diskList
diskList: list类型,list 中每个元素均为一个含磁盘信息的object
磁盘信息 object 通过object.name调用,所含信息包括:
instance of Win32_LogicalDisk
{
Access = 0;
Caption = "C:";
Compressed = FALSE;
CreationClassName = "Win32_LogicalDisk";
Description = "Local Fixed Disk";
DeviceID = "C:";
DriveType = 3;
FileSystem = "NTFS";
FreeSpace = "";
MaximumComponentLength = 255;
MediaType = 12;
Name = "C:";
Size = "";
SupportsDiskQuotas = FALSE;
SupportsFileBasedCompression = TRUE;
SystemCreationClassName = "Win32_ComputerSystem";
SystemName = "CN00208511";
VolumeName = "OSDisk";
VolumeSerialNumber = "3AFBC150";
}; instance of Win32_LogicalDisk
{
Access = 0;
Caption = "D:";
Compressed = FALSE;
CreationClassName = "Win32_LogicalDisk";
Description = "Local Fixed Disk";
DeviceID = "D:";
DriveType = 3;
FileSystem = "FAT32";
FreeSpace = "";
MaximumComponentLength = 255;
MediaType = 12;
Name = "D:";
Size = "";
SupportsDiskQuotas = FALSE;
SupportsFileBasedCompression = FALSE;
SystemCreationClassName = "Win32_ComputerSystem";
SystemName = "CN00208511";
VolumeName = "HP_TOOLS";
VolumeSerialNumber = "B2FBEEA0";
}; instance of Win32_LogicalDisk
{
Access = 0;
Caption = "E:";
Compressed = FALSE;
CreationClassName = "Win32_LogicalDisk";
Description = "Local Fixed Disk";
DeviceID = "E:";
DriveType = 3;
FileSystem = "NTFS";
FreeSpace = "";
MaximumComponentLength = 255;
MediaType = 12;
Name = "E:";
Size = "";
SupportsDiskQuotas = FALSE;
SupportsFileBasedCompression = TRUE;
SystemCreationClassName = "Win32_ComputerSystem";
SystemName = "CN00208511";
VolumeName = "HP_RECOVERY";
VolumeSerialNumber = "BCFC555B";
};
Win32_ NetworkAdapterConfiguration()方法
函数调用: interfaceList = w.Win32_NetworkAdapterConfiguration(IPEnabled=1)
函数功能: 用于网络接口信息对象,并存以列表形式
传入参数: *argv
IPEnabled: bool 类型,可传入1,默认为False,为 True 将显示 IP 信息
返回参数: interfaceList
interfaceList: list 类型,list 中每个元素均为一个网络接口信息的 object
网络接口信息 object 通过 object.name 调用,所含信息包括(部分具体信息已删除):
instance of Win32_NetworkAdapterConfiguration
{
Caption = "[00000011] Intel(R) Dual Band Wireless-AC 8260";
DatabasePath = "%SystemRoot%\\System32\\drivers\\etc";
DefaultIPGateway = {"192.168.1.1"};
Description = "Intel(R) Dual Band Wireless-AC 8260";
DHCPEnabled = TRUE;
DHCPLeaseExpires = "20170531002222.000000+480";
DHCPLeaseObtained = "20170530222222.000000+480";
DHCPServer = "192.168.1.1";
DNSDomain = "DHCP HOST";
DNSDomainSuffixSearchOrder = {"ericsson.se", "DHCP HOST"};
DNSEnabledForWINSResolution = FALSE;
DNSHostName = "";
DNSServerSearchOrder = {"", ""};
DomainDNSRegistrationEnabled = FALSE;
FullDNSRegistrationEnabled = TRUE;
GatewayCostMetric = {0};
Index = 11;
InterfaceIndex = 12;
IPAddress = {"", ""};
IPConnectionMetric = 20;
IPEnabled = TRUE;
IPFilterSecurityEnabled = FALSE;
IPSecPermitIPProtocols = {};
IPSecPermitTCPPorts = {};
IPSecPermitUDPPorts = {};
IPSubnet = {"", ""};
MACAddress = "";
ServiceName = "NETwNs64";
SettingID = "{}";
TcpipNetbiosOptions = 0;
WINSEnableLMHostsLookup = TRUE;
WINSScopeID = "";
};
利用wmi模块获取PC信息
获取PC信息的步骤主要有:
(1)打开存储信息的文件;
(2)实例化WMI类,利用各函数获取硬件信息类的列表;
(3)遍历硬件信息类列表,获取硬件信息并写入存储文件。
import wmi
hardware=open('Hardware.txt', 'w') w=wmi.WMI() hardware.write("cpu type,main frequency:\n")
for processor in w.Win32_Processor():
hardware.write("Processor ID: %s" % processor.DeviceID)
hardware.write("\nProcess Name: %s" % processor.Name.strip()+'\n\n')
hardware.write('Memory size:')
totalMemSize=0
for memModule in w.Win32_PhysicalMemory():
totalMemSize+=int(memModule.Capacity)
hardware.write("\nMemory Capacity: %.2fMB" %((totalMemSize+1048575)/1048576)+'\n\n')
hardware.write('Hard disk usage:')
for disk in w.Win32_LogicalDisk (DriveType=3):
temp=disk.Caption+" %0.2f%% free" %(100.0 * int(disk.FreeSpace) / int(disk.Size))
hardware.write('\n'+temp)
hardware.write('\n')
hardware.write('\nIP and MAC:\n')
for interface in w.Win32_NetworkAdapterConfiguration(IPEnabled=1):
hardware.write('Network card driver information:')
hardware.write(interface.Description+'\n')
hardware.write('Network card MAC address:')
hardware.write(interface.MACAddress+'\n')
hardware.write('IP address:')
hardware.write(interface.IPAddress[0]+'\n')
hardware.write('Network IP interface')
hardware.write(interface.IPAddress[1]+'\n')
hardware.close()
最终可以在当前目录下得到一个包含硬件信息的文本文件。
Python的功能模块[0] -> wmi -> 获取 Windows 内部信息的更多相关文章- python wmi模块 获取windows内部信息
WMI (Windows Management Instrumentation) 模块可用于获取 Windows 内部信息,在使用Python获取Windows系统上的相关的信息可以使用WMI接口来获 ...
- Python使用wmi获取Windows相关信息
在使用Python获取Windows系统上的相关的信息可以使用WMI接口来获取, 什么是wmi? WMI是一项核心的Windows管理技术,WMI作为一种规范和基础结构,通过它可以访问.配置.管理和监 ...
- Python WMI获取Windows系统信息 监控系统
#!/usr/bin/env python # -*- coding: utf-8 -*- #http://www.cnblogs.com/liu-ke/ import wmi import os i ...
- 用PYTHON + PYWIN32 + WMI获取WINDOWS系统基本信息
网上原码,去了DECODE编码的问题. PyScripter这个PYTHON的IDE工具在WIN下表现不错哟. 感觉比SPYDER,ERIC,SUBLEME TEXT3之类的好用呀.. #!/usr/ ...
- 利用python 与 wmi 获取WINDOWS基本信息
#!/usr/bin/env python3.5 # -*- coding:utf8 -*- import platform import subprocess import wmi def serv ...
- Python WMI获取Windows系统信息
#!/usr/bin/env python # -*- coding: utf-8 -*- #http://www.cnblogs.com/liu-ke/ import wmi import os i ...
- Python的功能模块[1] ->; struct ->; struct 在网络编程中的使用
struct模块 / struct Module 在网络编程中,利用 socket 进行通信时,常常会用到 struct 模块,在网络通信中,大多数传递的数据以二进制流(binary data)存在. ...
- Python的功能模块[4] ->; pdb/ipdb ->; 实现 Python 的单步调试
pdb / ipdb 模块 / pdb / ipdb Module pdb 和 ipdb 的主要作用是用于 Python 程序的单步调试,Python 的调试可参考链接. 下面是一个简单的使用示例 i ...
- Python 使用 os 模块遍历目录/获取当前文件的路径
1.列出指定目录下所包含的目录 item = os.listdir("/Users/jinchengxie/go") 返回的是一个列表, 里面包含了指定目录下所包含的所有的目录 2 ...
随机推荐- WPF 捕获键盘输入事件
最近修改的一个需求要求捕获键盘输入的 Text,包括各种标点符号. 最开始想到的是 PreviewKeyDown 或者 PreviewKeyUp 这样的键盘事件. 但是这两个事件的对象 KeyEven ...
- HBase之过滤器
filter ==> SQL 中的Where filter的执行流程: 过滤器在客户端创建,然后通过RPC发送到服务器上,由服务器执行 基础过滤器: 比较器: Comparator D ...
- MVC3中使用AuthorizeAttribute特性来完成登陆权限的验证
以前判断用户是否登录,判断用户Session是否为空,一般会在这个页面写使用: if (HttpContext.Session.IsNewSession) { //todo Login } 每个需要验 ...
- MySQL(14):Select-limit(限制获得的记录数量)
1. limit 限制获得记录的数量 2.limit 语法: (1) limit offset, row_count: offset偏移量,从0开始. row_count总记录数. 分析: 案例演示 ...
- CoreLocation导航Demo
CoreLocation实现定位和导航功能还是非常简单的,基本思路是: 1.导入<CoreLocation/CoreLocation.h>头文件 2.使用该框架内的导航管理者,创建该导航管 ...
- javascript中的in运算符
in运算符希望它的左操作数是一个字符串或可以转换为字符串,希望他的又操作数是一个对象:如果右侧对象拥有一个名为左操作数值的属性名,那么表达式返回true: var point = {x:1,y:1}; ...
- 132.leecode-Palindrome Partitioning II
这个题需要两个dp,一个保存从i到j是否为回文串 另一个保存0到i的最小的分割 下面是我的效率不太高的代码 class Solution { public: int minCut(string s) ...
- 【Spark工作原理】stage划分原理理解
Job->Stage->Task开发完一个应用以后,把这个应用提交到Spark集群,这个应用叫Application.这个应用里面开发了很多代码,这些代码里面凡是遇到一个action操作, ...
- linux内核中的PTP clock是什么?
答: Precise Time Protocol(PTP),这是一种高精度时间同步协议,PTP是在硬件级实现的,因此需要硬件支持才能实现高精度时间同步
- java-信息安全(一)-BASE64,MD5,SHA,HMAC,RIPEMD算法
概述 信息安全基本概念: BASE64 编码格式 Base58 编码 MD5(Message Digest algorithm 5,信息摘要算法) SHA(Secure Hash Algorithm, ...
WMI (Windows Management Instrumentation) 模块可用于获取 Windows 内部信息,在使用Python获取Windows系统上的相关的信息可以使用WMI接口来获 ...
在使用Python获取Windows系统上的相关的信息可以使用WMI接口来获取, 什么是wmi? WMI是一项核心的Windows管理技术,WMI作为一种规范和基础结构,通过它可以访问.配置.管理和监 ...
#!/usr/bin/env python # -*- coding: utf-8 -*- #http://www.cnblogs.com/liu-ke/ import wmi import os i ...
网上原码,去了DECODE编码的问题. PyScripter这个PYTHON的IDE工具在WIN下表现不错哟. 感觉比SPYDER,ERIC,SUBLEME TEXT3之类的好用呀.. #!/usr/ ...
#!/usr/bin/env python3.5 # -*- coding:utf8 -*- import platform import subprocess import wmi def serv ...
#!/usr/bin/env python # -*- coding: utf-8 -*- #http://www.cnblogs.com/liu-ke/ import wmi import os i ...
struct模块 / struct Module 在网络编程中,利用 socket 进行通信时,常常会用到 struct 模块,在网络通信中,大多数传递的数据以二进制流(binary data)存在. ...
pdb / ipdb 模块 / pdb / ipdb Module pdb 和 ipdb 的主要作用是用于 Python 程序的单步调试,Python 的调试可参考链接. 下面是一个简单的使用示例 i ...
1.列出指定目录下所包含的目录 item = os.listdir("/Users/jinchengxie/go") 返回的是一个列表, 里面包含了指定目录下所包含的所有的目录 2 ...
- WPF 捕获键盘输入事件
最近修改的一个需求要求捕获键盘输入的 Text,包括各种标点符号. 最开始想到的是 PreviewKeyDown 或者 PreviewKeyUp 这样的键盘事件. 但是这两个事件的对象 KeyEven ...
- HBase之过滤器
filter ==> SQL 中的Where filter的执行流程: 过滤器在客户端创建,然后通过RPC发送到服务器上,由服务器执行 基础过滤器: 比较器: Comparator D ...
- MVC3中使用AuthorizeAttribute特性来完成登陆权限的验证
以前判断用户是否登录,判断用户Session是否为空,一般会在这个页面写使用: if (HttpContext.Session.IsNewSession) { //todo Login } 每个需要验 ...
- MySQL(14):Select-limit(限制获得的记录数量)
1. limit 限制获得记录的数量 2.limit 语法: (1) limit offset, row_count: offset偏移量,从0开始. row_count总记录数. 分析: 案例演示 ...
- CoreLocation导航Demo
CoreLocation实现定位和导航功能还是非常简单的,基本思路是: 1.导入<CoreLocation/CoreLocation.h>头文件 2.使用该框架内的导航管理者,创建该导航管 ...
- javascript中的in运算符
in运算符希望它的左操作数是一个字符串或可以转换为字符串,希望他的又操作数是一个对象:如果右侧对象拥有一个名为左操作数值的属性名,那么表达式返回true: var point = {x:1,y:1}; ...
- 132.leecode-Palindrome Partitioning II
这个题需要两个dp,一个保存从i到j是否为回文串 另一个保存0到i的最小的分割 下面是我的效率不太高的代码 class Solution { public: int minCut(string s) ...
- 【Spark工作原理】stage划分原理理解
Job->Stage->Task开发完一个应用以后,把这个应用提交到Spark集群,这个应用叫Application.这个应用里面开发了很多代码,这些代码里面凡是遇到一个action操作, ...
- linux内核中的PTP clock是什么?
答: Precise Time Protocol(PTP),这是一种高精度时间同步协议,PTP是在硬件级实现的,因此需要硬件支持才能实现高精度时间同步
- java-信息安全(一)-BASE64,MD5,SHA,HMAC,RIPEMD算法
概述 信息安全基本概念: BASE64 编码格式 Base58 编码 MD5(Message Digest algorithm 5,信息摘要算法) SHA(Secure Hash Algorithm, ...






