web-dev-qa-db-ja.com

プロセスモニターが64ビットコンピューターで起動に失敗する

一部の64ビットWindows 7マシンでSysInternalsからプロセスモニターを起動しようとすると、プロセスが起動しません。エラーメッセージはありません。ダブルクリックしても何も起こりません。他の64ビットWindows 7コンピューターは正常に動作します。何か案は?

23
Ryan Michela

これが私が見つけたものです。 32ビットのProcmon.exeには、64ビットのexeがバイナリリソースとして含まれています。 32ビットのexeファイルが起動すると、64ビットバージョンがProcmon64.exeという隠しファイルに抽出されて実行されます。何らかの理由で、このプロセスは一部のWindows 7インストールで失敗します。

Visual Studio 2010を使用して64ビットのexeを抽出できました。

  1. Visual Studioを開き、[ファイル]-> [開く]-> [ファイル]メニューを使用してProcmon.exeファイルを開きます。
  2. リソースツリーで、「BINRES」ノードを展開します
  3. 1308ノードを右クリックし、[エクスポート...]を選択します。
  4. エクスポートしたリソースにProcmon-64.exeという名前を付けて保存します
  5. 解凍したexeを実行します

抽出されたexeにProcmon64.exe(ハイフンなし)という名前を付けないでください。32ビットのProcmonは、機会があれば削除することを試みます。

Visual Studioがない場合は、ResourcesExtract- http://www.nirsoft.net/utils/resources_extract.html のようなWindows実行可能リソースエクストラクターを使用してください。

33
Ryan Michela

あなたの心を爆破させてください。 procmon.exeを開始するには、ワークステーションサービスの実行が必要です。それは何かを列挙するためにそれを使用し、それなしで静かに死んでしまいます。

これはどこにも文書化されておらず、かなり偽物です。

5
Rasz_pl

次のPerlスクリプトをtempフォルダーに配置して実行し、ProcMon64.exeを抽出することに成功しました。

use File::Copy;

if(fork()==0)
{ system "C:\\SysInternals\\ProcMon.exe"}
else
{  for($i=1;$i<1000;$i++)
    {if(-e 'ProcMon64.exe')
      { copy('ProcMon64.exe',$i.'.exe')}
    }
}

複数回実行すると、すべて同じである数十の対処法(同じCRC32)が作成されます。

2
Dmitry Pi

私はこのスレッドが長い間知っているが、最近この問題を見ただけで、役立つかもしれない別の要因に気づきました。管理者権限。管理者としてログインして実行すると、問題なく動作します。非管理者としてログインして実行すると、問題が発生し、抽出されたprocmon-64に同じ問題が表示されます。

2
Cloud Guy

ospy はProcMonの代替です。これでprocmonの起動のトラブルシューティングを試すことができます。

0
Justin Dearing

この問題を修正するには、環境変数を再確認します。あなたはチェックすることができます%TEMP%これまでに何かを追加したかどうかを確認します。 Windows temp以外のフォルダをすべて削除してから、再起動します。

0
user365886