我的编程空间,编程开发者的网络收藏夹
学习永远不晚

【脚本】python中wmi介绍和使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

【脚本】python中wmi介绍和使用

一:WMI基础知识
===================================================================
WMI 最初于1998年作为一个附加组件与 Windows NT 4.0 Service Pack 4 一起发行,是内置在Windows 2000、 Windows XP和Windows Server 2003 系列操作系统中核心的管理支持技术。基于由 Distributed Management Task Force (DMTF) 所监督的业界标准,WMI是一种规范和基础结构,通过它可以访问、配置、管理和监视几乎所有的Windows资源。大多用户习惯于使用众多的图形化管理工 具来管理Windows资源,在WMI之前这些工具都是通过 Win32应用程序编程接口(Application ProgrammingInterfaces,API)来访问和管理Windows资源的。只要你熟悉系统编程你就知道API有多么重要。但是大多数脚本 语言都不能直接调用Win32 API,WMI的出现使得系统管理员可以通过一种简便的方法即利用常见的脚本语言实现常用的系统管理任务。
利用WMI需要和脚本如WSH和VBScript结合起来,可以实现的功能大家可以看微软的MSDN文档。
在编写我们自己的脚本之前,我们需要对WMI的体系结构有个基本的了解。如图一:(1.gif)

在WMI 体系结构中我们最需要关心的就是WMI提供程序,WMI提供程序在WMI和托管资源之间扮演着中间方的角色。提供程序代表使用者应用程序和脚本从WMI托 管资源请求信息,并发送指令到WMI托管资源。下面是我们利用WMI编程经常要用到的WMI内置提供程序清单,以供编程参考。


1.Active Directory提供程序
链接库文件:dsprov.dll
命名空间:root\directory\ldap
作用:将Active Directory 对象映射到 WMI。

2.事件日志提供程序
链接库文件:ntevt.dll
命名空间:root\cimv2
作用:管理 Windows 事件日志,例如,读取、备份、清除、复制、删除、监视、重命名、压缩、解压缩和更改事件日志设置。

3.注册表提供程序
链接库文件:stdprov.dll
命名空间:root\default
作用:读取、写入、枚举、监视、创建、删除注册表项和值。

4.Win32 提供程序
链接库文件:cimwin32.dll
命名空间:root\cimv2
作用:提供关于计算机、磁盘、外围设备、文件、文件夹、文件系统、网络组件、操作系统、打印机、进程、安全性、服务、共享、SAM 用户及组,以及更多资源的信息。

5.Windows 安装程序提供程序
链接库文件:msiprov.dll
命名空间:root\cimv2
作用:提供对已安装软件信息的访问。

从 上面可以看出在WMI中类(即内置提供程序)被分组到命名空间中,命名空间可以看成是一个组。比如,命名空间 root\cimv2 包括大部分表示通常与计算机和操作系统相关联的资源的类。在使用类的时候要说明类所在的命名空间。类由属性和方法构成。这是可视化编程中的两个重要的概 念。属性描述的是对象的状态,方法是对象可以执行的操作。

接着看python 中的WMI使用

是Tim Golden's 的WMI.PY,使用起来非常简单.下面的例子是摘自它自身提供的example

import wmi

c = wmi.WMI ()
for s in c.Win32_Service ():
if s.State == 'Stopped':
  print s.Caption, s.State
打印WIN的服务名称和状态.其中服务是在停止状态下才打印.

List all running processes

import wmi
c = wmi.WMI ()
for process in c.Win32_Process ():
print process.ProcessId, process.Name
简单吧,几天语句就把进程列出来了,提权什么都不用,比用delphi方便多了,嘿嘿,不过就是速度慢了点。

Reboot a remote machine

import wmi
c = wmi.WMI (computer="other_machine", privileges=["RemoteShutdown"])
os = c.Win32_OperatingSystem (Primary=1)[0]
os.Reboot ()


Show the IP and MAC addresses for IP-enabled network interfaces

import wmi
c = wmi.WMI ()
for interface in c.Win32_NetworkAdapterConfiguration (IPEnabled=1):
print interface.Description, interface.MACAddress
for ip_address in interface.IPAddress:
  print ip_address
print


List registry keys

import _winreg
import wmi
r = wmi.Registry ()
result, names = r.EnumKey (hDefKey=_winreg.HKEY_LOCAL_MACHINE, sSubKeyName="Software")
for key in names:
print key
操作注册表.

越用越爽啊,简单易用,真不愧是pythonic啊。当然还有很多其他的example,自己看咯.

wmi python
http://tgolden.sc.sabren.com/python/wmi.html
wim cookbook
http://tgolden.sc.sabren.com/python/wmi_cookbook.html

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

【脚本】python中wmi介绍和使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

【脚本】python中wmi介绍和使用

一:WMI基础知识===================================================================WMI 最初于1998年作为一个附加组件与 Windows NT 4.0 Service
2023-01-31

Shell脚本中的echo命令使用介绍

目录引言1.显示普通字符串:2.显示转义字符3.显示变量4.显示换行5.显示不换行6gDBSetFS.显示结果定向至文件7.原样输出字符串,不进行转义或取变量(用单引号)8.显示命令执行结果引言Shell 的 echo 指令与 php 的
2023-05-12

Python中ttkbootstrap的介绍与基本使用

ttkbootstrap是一个基于 tkinter 的界面美化库,使用这个工具可以开发出类似前端bootstrap风格的tkinter桌面程序,下面这篇文章主要给大家介绍了关于Python中ttkbootstrap的介绍与基本使用的相关资料,需要的朋友可以参考下
2023-01-15

详解shell脚本中的case条件语句介绍和使用案例

#前言:这篇我们接着写shell的另外一个条件语句case,上篇讲解了if条件语句。case条件语句我们常用于实现系统服务启动脚本等场景,case条件语句也相当于if条件语句多分支结构,多个选择,case看起来更规范和易读 #case条件语
2022-06-04

Python中itertools简介使用介绍

itertools是python内置的模块,使用简单且功能强大,itertools模块标准化了一个快速、高效利用内存的核心工具集,这些工具本身或组合都很有用,这篇文章主要介绍了Python中itertools详解,需要的朋友可以参考下
2022-12-28

shell脚本中$符号的命令用法介绍

这篇文章主要讲解了“shell脚本中$符号的命令用法介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“shell脚本中$符号的命令用法介绍”吧! 关于$符号,大家肯定都不陌生,在shel
2023-06-09

Webpack介绍和基本使用指南

Webpack是一款静态模块加载器,用于管理JavaScript模块和依赖项的打包。通过将源文件优化为捆绑文件,提升代码运行效率。入门指南包括:NPM安装Webpack。创建配置文件,指定入口点和输出路径。编写应用程序代码。运行Webpack,构建捆绑包。在HTML中包含捆绑包文件。Webpack提供自定义配置选项,支持HMR、树摇晃和代码分割等功能,帮助开发人员构建优化且高效的代码。
Webpack介绍和基本使用指南
2024-04-02

Python JWT 介绍和使用详解

1. JWT 介绍 jwt( JSON Web Tokens ),是一种开发的行业标准 RFC 7519 ,用于安全的表示双方之间的声明。目前,jwt广泛应用在系统的用户认证方面,特别是现在前后端分离项目 jwt认证流程:在项目开发中,一般
2022-06-02

Python中各个模块的介绍和使用

北京 | 高性能计算之GPU CUDA课程11月24-26日3天密集学习 快速带你晋级阅读全文>作者,许胜利,Python开发工程师,任职于上海某财富管理有限公司。在Python中有一个概念叫做模块(module),这个和C语言中的头文件以
2023-01-31

Go中Sync.Cond的介绍和使用

本篇内容介绍了“Go中Sync.Cond的介绍和使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. 程序中的通信方式GO语言中有句名言:
2023-06-15

shell脚本编程之for语句、if语句使用介绍

上部: 面向过程:顺序执行选择执行: if, case循环执行: for, while, until 一、for语句格式: for 变量 in 列表;do 语句1; 语句2; ...
2022-06-04

Linux 脚本编写基础知识以及在shell脚本中可以使用三类命令介绍

本篇内容主要讲解“Linux 脚本编写基础知识以及在shell脚本中可以使用三类命令介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux 脚本编写基础知识以及在shell脚本中可以使用三
2023-06-09

Python中jieba库的介绍与使用

使用jieba库对一段文本进行词频的统计是一件非常有意思的事,我们只需要使用这第三方库,就可以在不阅读文本的情况下,得到该文本的高频率词汇,这篇文章主要介绍了Python中jieba库的介绍与使用,需要的朋友可以参考下
2023-03-02

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录