为何不用wmi呢?因为执行很慢,为啥不用winreg?因为winreg在批量获取及遍历服务方面很不方便,于是采用这方法

该方法同命令行下的wmic执行

获取服务信息

#coding=utf8
from win32com.client import GetObject
mywmi = GetObject("winmgmts:")
objs = mywmi.InstancesOf("Win32_Service")
for obj in objs:
print obj.PathName

获取进程信息

#coding=utf8
from win32com.client import GetObject
mywmi = GetObject("winmgmts:")
objs = mywmi.InstancesOf("Win32_Process")
for obj in objs:
#print obj.executablepath
print obj.CommandLine

执行代码的灵感来源于以下这段文字:

VB使用Wmi获取系统当前进程详细信息/列表,VB使用Wmi获取系统当前进程信息/列表,VB使用Wmi获取系统进程信息/列表,VB使用Wmi获取当前进程信息/列表,VB使用Wmi获取进程信息/列表,VB Wmi 获取当前进程信息/列表,VB Wmi 系统进程详细信息/列表,VB Wmi 进程列表,VB Wmi 进程信息,VB Wmi 进程,VB Wmi,GetObject("winmgmts://./root/cimv2:win32_process").instances,winmgmts://./root/cimv2:win32_process,VB winmgmts://./root/cimv2,VB win32_process,VB GetObject,进程名称:Wmi.Name,进程路径:Wmi.executablepath,线程数量:Wmi.ThreadCount,PID:Wmi.ProcessID,父PID:Wmi.ParentProcessID,优先级:Wmi.Priority,命令行:Wmi.CommandLine,占用内存:Wmi.WorkingSetSize / 1024 & "K",用户名称:Wmi.ExecMethod_("GetOwner").User,启动时间:Wmi.CreationDate,另外一种获取PID函数:Wmi.Handle。
VB使用Wmi获取系统当前进程详细信息:
Dim Wmi, Jic As String
For Each Wmi In GetObject("winmgmts://./root/cimv2:win32_process").instances_ '循环进程
Jic = Jic & " " & _
"进程:" & Wmi.Name & " " & _
"路径:" & Wmi.executablepath & " " & _
"线程:" & Wmi.ThreadCount & " " & _
"PID:" & Wmi.ProcessID & " " & _
"父PID:" & Wmi.ParentProcessID & " " & _
"优先级:" & Wmi.Priority & " " & _
"命令行:" & Wmi.CommandLine & " " & _
"内存:" & Wmi.WorkingSetSize / & "K" & " " & _
"用户:" & Wmi.ExecMethod_("GetOwner").User & " " & _
"启动时间:" & Wmi.CreationDate & " " & vbCrLf
'"PID:" & Wmi.Handle '另外一种获取PID函数
Next
MsgBox Jic
VB "winmgmts://./root/CIMV2"对象的详细用法:
·GetOwner() 取得进程用户名。用法:objGetOwner(变量名)
Terminate() 结束进程。用法:obj.Terminate() 属性:
ProcessID 进程的PID。
ThreadCount 进程的线程数
ExecutablePath 进程的完整路径

服务状态 State

可用参数如下

[Dynamic, Provider("CIMWin32"), SupportsUpdate, UUID("{8502C4D9-5FBB-11D2-AAC1-006008C78BC7}"), DisplayName("Services"), AMENDMENT]
class Win32_Service : Win32_BaseService
{
boolean AcceptPause;
boolean AcceptStop;
string Caption;
uint32 CheckPoint;
string CreationClassName;
boolean DelayedAutoStart;
string Description;
boolean DesktopInteract;
string DisplayName;
string ErrorControl;
uint32 ExitCode;
datetime InstallDate;
string Name;
string PathName;
uint32 ProcessId;
uint32 ServiceSpecificExitCode;
string ServiceType;
boolean Started;
string StartMode;
string StartName;
string State;
string Status;
string SystemCreationClassName;
string SystemName;
uint32 TagId;
uint32 WaitHint;
};

  参见msdn:https://docs.microsoft.com/zh-cn/windows/desktop/CIMWin32Prov/win32-service

python调用win32com.client的GetObject查找进程信息及服务信息的更多相关文章

  1. 当前机器的各种进程、服务信息的收集(win)

    当前机器的各种进程.服务信息的收集(win) 前言 我们在做渗透测试的过程中,遇到Windows系统的环境是最多的,然而在拿到一台Windows胸膛呢权限之后,我们要进行横向渗透测试或者纵向渗透测试, ...

  2. python win32com.client

    搜集的一些关于win32com.client操作office的相关用法 #创建 #word w = win32com.client.Dispatch("Word.Application&qu ...

  3. Python: 读写Excel(openpyxl / win32com.client)

    项目周报汇报的时候要做数据汇总,总是要从不同的excel文件中去获取数据最后汇总到一个excel表里面,所以决定用python直接写个自动化脚本来自动执行. 用python来读写excel,目前找了2 ...

  4. [转]Python中出错:ImportError: No module named win32com.client

    Python中出错:ImportError: No module named win32com.client [问题] [已解决]Python中处理操作Excel中的图表(Chart,Graph) 的 ...

  5. Python 3中,import win32com.client 出错

    在 import win32com.client 时,出现了界面: Traceback (most recent call last): File "<pyshell#1>&qu ...

  6. Python 使用 win32com 模块对 word 文件进行操作

    what's the win32com 模块 win32com 模块主要为 Python 提供调用 windows 底层组件对 word .Excel.PPT 等进行操作的功能,只能在 Windows ...

  7. 如何使用Python调用AutoIt来实现Flash控件的上传功能

    先看一段代码 upload.au3(这个后缀autoit3的格式): ;等待出现title为数据采集-军课网-MozillaFirefox的浏览器窗口 WinWait("数据采集 - XX网 ...

  8. Python调用C# Com dll组件实战

    之前公司有套C# AES加解密方案,但是方案加密用的是Rijndael类,而非AES的四种模式(ECB.CBC.CFB.OFB,这四种用的是RijndaelManaged类),Python下Crypt ...

  9. Python调用大漠插件

    Python版本要用32位的?我去官网下载,太慢了,就在腾讯软件里面下载了一个,结果实验成功 import win32com.client dm = win32com.client.Dispatch( ...

随机推荐

  1. MD5 SHA1 CRC32

    md5: import hashlib md5 = hashlib.md5() md5.update(bytes('http://www.baidu.com',encoding="utf-8 ...

  2. poj2386(简单的dfs/bfs)

    题目链接:http://poj.org/problem?id=2386 Description Due to recent rains, water has pooled in various pla ...

  3. Java NIO -- 直接缓冲区与非直接缓冲区

    直接缓冲区与非直接缓冲区: 非直接缓冲区:通过 allocate() 方法分配缓冲区,将缓冲区建立在 JVM 的内存中直接缓冲区:通过 allocateDirect() 方法分配直接缓冲区,将缓冲区建 ...

  4. code::Blocks生成的dll 在 java jni 调用遇到的问题

    Test.java__________________________________ public class Test{    public static native void p(); pub ...

  5. json模块和pickle模块(二十二)

    之前我们学习过用eval内置方法可以将一个字符串转成python对象,不过,eval方法是有局限性的,对于普通的数据类型, json.loads和eval都能用,但遇到特殊类型的时候,eval就不管用 ...

  6. 紧急通知:Onion勒索病毒正在大范围传播!已有大量学生中招!(转)

    在5月12日晚上20点左右,全国各地的高校学生纷纷反映,自己的电脑遭到病毒的攻击,文档被加密,壁纸遭到篡改,并且在桌面上出现窗口,强制学生支付等价300美元的比特币到攻击者账户上.我们的一位成员和其多 ...

  7. FastDFS整合nginx后,nginx一直报错

    FastDFS整合nginx后,nginx一直报错: 报错内容: [2018-06-11 09:41:21] ERROR - file: ../common/fdfs_http_shared.c, l ...

  8. Oracle记录-开启与关闭数据库

    1.配置tnsnames.ora/listener.ora #cd /usr/oracle/oracle/product/11.2.0/db_1/network/admin ---切换到安装目录 #v ...

  9. Java记录-SpringMVC整合Echarts画地图加散点图

    1.搭建eclipse+JDK+Maven+SpringMVC+Spring+Mybatis后台架构,详细就不过多阐述了 2.下载百度eharts插件:http://echarts.baidu.com ...

  10. Hive记录-hive权限控制

    在使用Hive的元数据配置权限之前必须现在hive-site.xml中配置两个参数,配置参数如下: <property> <name>hive.security.authori ...