python调用win32com.client的GetObject查找进程信息及服务信息
为何不用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查找进程信息及服务信息的更多相关文章
- 当前机器的各种进程、服务信息的收集(win)
当前机器的各种进程.服务信息的收集(win) 前言 我们在做渗透测试的过程中,遇到Windows系统的环境是最多的,然而在拿到一台Windows胸膛呢权限之后,我们要进行横向渗透测试或者纵向渗透测试, ...
- python win32com.client
搜集的一些关于win32com.client操作office的相关用法 #创建 #word w = win32com.client.Dispatch("Word.Application&qu ...
- Python: 读写Excel(openpyxl / win32com.client)
项目周报汇报的时候要做数据汇总,总是要从不同的excel文件中去获取数据最后汇总到一个excel表里面,所以决定用python直接写个自动化脚本来自动执行. 用python来读写excel,目前找了2 ...
- [转]Python中出错:ImportError: No module named win32com.client
Python中出错:ImportError: No module named win32com.client [问题] [已解决]Python中处理操作Excel中的图表(Chart,Graph) 的 ...
- Python 3中,import win32com.client 出错
在 import win32com.client 时,出现了界面: Traceback (most recent call last): File "<pyshell#1>&qu ...
- Python 使用 win32com 模块对 word 文件进行操作
what's the win32com 模块 win32com 模块主要为 Python 提供调用 windows 底层组件对 word .Excel.PPT 等进行操作的功能,只能在 Windows ...
- 如何使用Python调用AutoIt来实现Flash控件的上传功能
先看一段代码 upload.au3(这个后缀autoit3的格式): ;等待出现title为数据采集-军课网-MozillaFirefox的浏览器窗口 WinWait("数据采集 - XX网 ...
- Python调用C# Com dll组件实战
之前公司有套C# AES加解密方案,但是方案加密用的是Rijndael类,而非AES的四种模式(ECB.CBC.CFB.OFB,这四种用的是RijndaelManaged类),Python下Crypt ...
- Python调用大漠插件
Python版本要用32位的?我去官网下载,太慢了,就在腾讯软件里面下载了一个,结果实验成功 import win32com.client dm = win32com.client.Dispatch( ...
随机推荐
- ZABBIX 3.4 监控服务器TCP连接状态(六)
TCP的连接状态对于我们web服务器来说是至关重要的,尤其是并发量ESTAB:或者是syn_recv值,假如这个值比较大的话我们可以认为是不是受到了攻击,或是是time_wait值比较高的话,我们要考 ...
- 2019.3.18考试&2019.3.19考试&2019.3.21考试
2019.3.18 C O D E T1 树上直接贪心,环上for一遍贪心 哇说的简单,码了将近一下午终于码出来了 感觉自己码力/写题策略太糟糕了,先是搞了一个细节太多的写法最后不得不弃疗了,然后第二 ...
- LICS O(n*m)+前驱路径
LICS:最长公共上升子序列: 一般令f[i][j]表示a串前i位,b串以j结尾的LICS长度.于是,答案为:max(1~m)(f[n][i]); 朴素做法:O(n^3) 相等时,从1~j-1枚举最大 ...
- A1074. Reversing Linked List
Given a constant K and a singly linked list L, you are supposed to reverse the links of every K elem ...
- vue-cli入门(二)——项目结构
前言 在上一篇项目搭建文章中,我们已经下载安装了node环境以及vue-cli,并且已经成功构建了一个vue-cli项目,那么接下来,我们来梳理一下vue-cli项目的结构. 总体框架 一个vue-c ...
- MySQL中双NDBD节点Cluster快速配置
是MySQL适合于分布式计算环境的高实用.高冗余版本.它采用了NDB Cluster 存储引擎,允许在1个 Cluster 中运行多个MySQL服务器.在MyQL 5.0及以上的二进制版本中.以及与最 ...
- 网络编程基础【day09】:解决socket粘包之大数据(七)
本节内容 概述 linux下运行效果 sleep解决粘包 服务端插入交互解决粘包问题 一.概述 刚刚我们在window的操作系统上,很完美的解决了,大数据量的数据传输出现的问题,但是在Linux环境下 ...
- python---xss(Cross Site Scripting)跨站脚本攻击和csrf(xsrf)跨站点请求伪造(Cross—Site Request Forgery)攻击
xss跨站脚本攻击:恶意攻击者往Web页面里插入恶意Script代码,当用户浏览该页之时,嵌入其中Web里面的Script代码会被执行,从而达到恶意攻击用户的目的. 例如:某些论坛允许用户自由发言,而 ...
- docker部署路飞学城
docker部署路飞学城blog来啦 部署需求分析: 之前是将nginx.django.vue直接部署在服务器上,既然学了docker,试试怎么部署在docker中 1.环境准备 一台linux服务器 ...
- 用jsch.jar实现SFTP上传下载删除【转】【补】
java类: 需要引用的jar: jsch-0.1.53.jar 关于jsch有篇文章关于目录的问题写得非常好:http://www.zzzyk.com/show/9f02969327434a6c.h ...