蟒蛇psutil给出拒绝访问
操作系统:Windows专业蟒蛇psutil给出拒绝访问
我想使用psutil得到的进程及其CPU使用情况的列表,我跑了脚本管理员在遇到进程DymoPnpService失败。 exe,可能是什么问题?
import psutil
def process():
plist = psutil.get_process_list()
plist = sorted(plist, key=lambda i: i.name)
for i in plist:
print i.name, i.get_cpu_percent()
def main():
process()
main()
AcroRd32.exe 0.0 AcroRd32.exe 0.0 DymoPnpService.exe
Traceback (most recent call last):
File "C:\Users\krisdigitx\Documents\windowsutil.py", line 13, in <module>
main()
File "C:\Users\krisdigitx\Documents\windowsutil.py", line 10, in main
process()
File "C:\Users\krisdigitx\Documents\windowsutil.py", line 7, in process
print i.name, i.get_cpu_percent()
File "C:\Python27\lib\site-packages\psutil\__init__.py", line 330, in get_cpu_percent
pt1 = self._platform_impl.get_cpu_times()
File "C:\Python27\lib\site-packages\psutil\_psmswindows.py", line 125, in wrapper
raise AccessDenied(self.pid, self._process_name)
AccessDenied: (pid=1832, name='DymoPnpService.exe')
更多的研究:
奇怪,我可以运行程序从Windows命令提示符...但它在Python IDE中失败
在cmd.exe提示符下运行此操作:tasklist /FI "IMAGENAME eq DymoPnpService.exe" /V
并检查“用户名”。如果它是“NT AUTHORITY \ SYSTEM”,那么它甚至可能故意不允许管理员帐户获取proc的CPU时间,%等。
抓住Process Explorer的副本,找到进程的路径,并检查首选项右键菜单选项的安全选项卡。修复您的问题可能能够编辑DymoPnpService.exe可执行文件的所有者或权限,但这可能会导致Windows中意外的问题。
你也可以继续循环,如果过程不允许你得到关于它的详细信息:
import psutil
def process():
plist = psutil.get_process_list()
plist = sorted(plist, key=lambda i: i.name)
for i in plist:
try:
print i.name, i.get_cpu_percent()
except AccessDenied:
print "'%s' Process is not allowing us to view the CPU Usage!" % i.name
def main():
process()
main()
该服务的安全选项卡中的用户被列为“用户”..... – krisdigitx
从版本开始在Windows 0.6.0 psutil将不再提高存取遭拒的不同的处理方法(其中包括cpu_percent()): https://groups.google.com/forum/?fromgroups#!topic/psutil/oxAd0BuAzt0%5B1-25%5D
这与Debian有什么关系? – nmichaels
改为windows .. – krisdigitx
我的猜测是,它被执行为SYSTEM – Konrads