2011-09-08 5 views
3

OS 거부 제공 : 내가 프로세스와 CPU 사용량의 목록을 얻으려면 psutil를 사용하는 것을 시도하고있다파이썬 psutil 액세스가

전문 창을, 내가 관리자로 스크립트를 실행하고 프로세스 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') 

더 많은 연구 : 윈도우 명령 프롬프트에서

이상한 내가 프로그램을 실행할 수 있습니다 ... 하지만 그것은 파이썬 IDE에서 실패합니다.

+0

이것은 데비안과 어떤 관련이 있습니까? – nmichaels

+0

windows로 변경되었습니다. – krisdigitx

+1

제 생각에 시스템 – Konrads

답변

5

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() 
+0

서비스에 대한 보안 탭의 사용자가 "user ".....로 표시됩니다. – krisdigitx

관련 문제