1

PC で実行されているプロセス (PID、コマンド ラインなど) に関する情報を取得する Python スクリプトを作成しています。

私の Windows 7 PC では、「wmic」を使用して、その出力を使用できます。

output = subprocess.Popen(['wmic process get creationdate,commandline,processid'], stdout=subprocess.PIPE, shell=True).communicate()[0]

この出力から取得できる情報の例:

プロセス PID 開始時間コマンド: blah.exe 1234 Thu Jun 06 15:33:40 2013 C:\blah\blah.exe -a -b blah.txt

これにより、必要なすべての情報が得られます...ただし、私は管理者ではないため、すべてのマシンで「wmic」を使用できるわけではありません。

「タスクリスト」を使用できますが、wmic が提供する「コマンドライン」情報が得られません。

「psutils」(または「wmi」モジュール) は、必要な PC にインストールされていないため使用できません。これらすべての PC で管理者がモジュールをインストールする必要はありません。

標準の Python 2.6 を使用して上記のプロセス情報を取得する方法についてのアイデアはありますか?

前もってありがとう、ニック

Windows XP/7 上の PYTHON 2.6

================================================== ===================

編集 (2013 年 6 月 12 日):

以下で提案されているようにしようとしていますが、問題があります... psutil ディレクトリ (psutil-0.7.1) をスクリプトと同じディレクトリに配置し、スクリプトに次を追加しました。

パス = '.\psutil-0.7.1'

sys.path.append(パス)

psutil をインポート

以下のエラーが表示されます。

トレースバック (最新の呼び出しが最後):

  File "C:\Users\nickw\Desktop\ProcessMonitor\ProcessMonitor_MODPS2.py", line 21, in <module>

    import psutil

  File ".\psutil-0.7.1\psutil\__init__.py", line 77, in <module>

    import psutil._psmswindows as _psplatform

  File ".\psutil-0.7.1\psutil\_psmswindows.py", line 15, in <module>

     import _psutil_mswindows

ImportError: No module named _psutil_mswindows

私が間違っていることは何か分かりますか?

4

1 に答える 1

0

プロセスのコマンド ラインを取得する手法はややハックですが、XP から WMI に組み込まれました。基本的に、別のプロセスのメモリを読み取っています。詳細については、たとえば、Windowsで別のプロセス コマンド ラインを取得する、およびそこからのリンクを参照してください。

だから、あなたのどちらか

  • ctypes上記のリンクが言うように、手動で、または何でも、自分で再実装するか、または

  • どういうわけか、それを行う既存のモジュールを利用してください。複数のzipimportファイルに対してこれを簡単にvirtualenvし、ファイルシステムのどこにでも環境全体を作成できるようにするためのものですが、後者はやり過ぎになる可能性があります。

于 2013-06-13T00:42:58.017 に答える