python_way ,day25 wmi

pip install wmi  如果不能安装,就使用 安装 python3 -m pip install wmi

再安装pywin32这个包

使用:

import platform
import win32com
import wmi
class Win32Info(object):    def __init__(self):        #wmi固定用法这样就可以获取服务器的信息了        self.wmi_obj = wmi.WMI()        self.wmi_service_obj = win32com.client.Dispatch("WbemScripting.SWbemLocator")        self.wmi_service_connector =self.wmi_service_obj.ConnectServer(".", "root\cimv2")
  
  def get_cpu_info(self):    """获取cpu信息"""      data = {}      cpu_lists = self.wmi_obj.Win32_Processor()      cpu_core_count = 0  #初始化cpu核数
    for cpu in cpu_lists:  #有几颗cpu就循环几回        cpu_core_count += cpu.NumberOfCores   #内循环一次增加一个cpu核数        cpu_model = cpu.Name    data["cpu_count"] = len(cpu_lists)    data["cpu_model"] = cpu_model    data["cpu_core_count"] =cpu_core_count    return data
  
    def get_ram_info(self):      """获取内存信息"""        data = []        #提取内存所有的内容        ram_collections = self.wmi_service_connector.ExecQuery("Select * from Win32_PhysicalMemory")        for item in ram_collections:            item_data = {}            #print item            mb = int(1024 * 1024)            ram_size = int(item.Capacity) / mb            item_data = {                "slot":item.DeviceLocator.strip(),                "capacity":ram_size,                "model":item.Caption,                "manufactory":item.Manufacturer,                "sn":item.SerialNumber,            }            data.append(item_data)        #for i in data:        #    print i        return {"ram":data}

  

 

  内存:

linux 获取服务器硬件信息命令:

dmidecode -t system

 

时间: 2024-12-07 19:57:24

python_way ,day25 wmi的相关文章

python_way ,day25 CMDB_models (数据库设计)

from django.db import models from django.contrib.auth.models import User # Create your models here. class UserProfile(User): name = models.CharField("姓名", max_length=32) def __str__(self): return self.name class Meta: #在admin中可以显示中文 super(User.M

Atitit.获取主板与bios序列号获取硬件设备信息  Wmi wmic 的作用

Atitit.获取主板与bios序列号获取硬件设备信息  Wmi wmic 的作用 1 获取硬件核心基础核心基础Wmi1 2 其他资料2 3 Wmic WMI 命令行接口2 4 Atitit.获取主板与bios序列号2 5 参考3 1 获取硬件核心基础核心基础Wmi WMI,是Windows 2K/XP管理系统的核心:对于其他的Win32操作系统,WMI是一个有用的插件.WMI以CIMOM为基础,CIMOM即公共信息模型对象管理器(Common Information Model Object 

通过WMI - Win32_Processor - ProcessorId获取到的并不是CPU的序列号,也并不唯一

现在网上不少教程,教人通过WMI - Win32_Processor - ProcessorId来获取CPU的“序列号”,典型代码如下: public static string GetCPUSerialNumber() { string cpuSerialNumber = string.Empty; ManagementClass mc = new ManagementClass("Win32_Processor"); ManagementObjectCollection moc =

ring3下利用WMI监视进程创建(vc版)

[cpp] view plain copy #include "stdafx.h" #define _WIN32_DCOM #include <iostream> using namespace std; #include <comdef.h> #include <Wbemidl.h> # pragma comment(lib, "wbemuuid.lib") int main(int argc, char **argv) { H

python_way.day7 模块(configparser,xml,shutil,subprocess)、面向对象(上)(创建类,类的构成,函数式编程与面向对象编程的选择,类的继承)

python_way.day7 1.模块 configparser,xml,shutil,subprocess 2.面向对象(上) 创建类,类的构成,函数式编程与面向对象编程的选择,类的继承 1.模块 configparser 用于处理特定格式的文件,其本职上使用open来操作,只能是  [test1] 特定的格式 [test1] k1 = 123 k2 = True [test2] k1 = 123 k2 = v1 文件内容 1.获取 import configparser #打开文件找到文件

python_way day6 反射,正则 模块

python_way day6 反射 正则 模块 一.模块: 1.sys & os: 我们在写项目的时候,经常遇到模块互相调用的情况,但是在不同的模块下我们通过什么去可以找到这些模块的位置哪? 那就是环境变量! 如何查看当前的环境变量?a = sys.pathprint(a)['D:\\资料\\python\\oldboy13\\jobs\\day5\\conf', 'D:\\资料\\python\\python35\\lib\\site-packages\\requests-2.10.0-py

通过WMI脚本来操作SteadyState,将磁盘保护功能设置为“永久保留所有更改”

Option Explicit 'WDP_Control.CurrentStatus const WDP_ACTIVE = 0 const WDP_PASSIVE = 1 'WDP_Control.CurrentMode const WDP_MODE_DISCARD = 0 '在重新启动时删除所有更改 const WDP_MODE_PERSIST = 1 const WDP_MODE_COMMIT = 2 '永久保留所有更改 Dim objSWbemLocator Set objSWbemLoc

访问SQL Server WMI对象

访问SQL Server WMI对象 1. 使用Powershell访问 get-wmiobject -list -namespace "root\Microsoft\SqlServer" get-wmiobject -list -namespace "root\Microsoft\SqlServer\ServerEvents\MSSQLSERVER" get-wmiobject -namespace "root\Microsoft\SqlServer\C

基于WMI的信息查询和编辑,按微软的说明一般都是

晕!这个不是很简单的东西吗? //---------WMI---------- type Rec_Wmi = record ComputerName: string; Namespace: string; User: string; Password: string; WMIType: string; Enum: IEnumVariant; class function GetWmiEnum(WMIType: string; var AEnum: IEnumVariant; Namespace: