Process Monitor ne démarre pas sur un ordinateur 64 bits

23

Lorsque j'essaie de démarrer Process Monitor à partir de SysInternals sur certaines machines Windows 7 64 bits, le processus ne démarre pas. Il n'y a aucun message d'erreur. Je double-clique et rien ne se passe. Les autres ordinateurs Windows 7 64 bits fonctionnent bien. Des idées?

Ryan Michela
la source
J'ai le même problème et je peux exécuter Process Monitor en mode 32 bits avec l'option de ligne de commande procmon.exe /Run32. Cependant, il ne prend pas en charge la capture dans ce mode.
jirkamat
@jirkamat Ne fonctionne pas ici :(
Zero3

Réponses:

33

Voici ce que j'ai trouvé. Le Procmon.exe 32 bits contient l'exe 64 bits à l'intérieur en tant que ressource binaire. Lorsque l'exe 32 bits démarre, il extrait la version 64 bits dans un fichier caché appelé Procmon64.exe, puis l'exécute. Pour une raison quelconque, ce processus échoue sur certaines installations de Windows 7.

J'ai réussi à extraire l'exe 64 bits à l'aide de Visual Studio 2010.

  1. Ouvrez Visual Studio et ouvrez le fichier Procmon.exe à l'aide du menu Fichier-> Ouvrir-> Fichier ...
  2. Dans l'arborescence des ressources, développez le nœud "BINRES"
  3. Cliquez avec le bouton droit sur le nœud 1308 et sélectionnez Exporter ...
  4. Nommez la ressource exportée Procmon-64.exe et enregistrez
  5. Exécutez l'exe extrait

Ne nommez pas l'exe extrait Procmon64.exe (pas de trait d'union) car le Procmon 32 bits essaiera de le supprimer s'il en a l'occasion.

Si vous n'avez pas Visual Studio, utilisez un extracteur de ressources exécutable Windows comme ResourcesExtract - http://www.nirsoft.net/utils/resources_extract.html

Ryan Michela
la source
2
Il est intéressant que vous ayez trouvé une solution de contournement, mais je serais beaucoup plus intéressé à savoir pourquoi vous auriez même besoin de le faire.
Zoredache
J'aimerais aussi trouver la cause première, mais le débogage d'un processus natif sans symboles ne vaut tout simplement pas l'effort. Surtout un aussi intégré au système d'exploitation que Process Monitor.
Ryan Michela
Extraire l'exe 64 bits de ProcMon en EXE autonome et exécuter cet exe résout ce problème pour moi! ProcMon fonctionne bien.
jirkamat
4
Une fois, tout en double-cliquant inutilement sur Procmon.exe, dans la frustration, j'ai vu le flash Procmon64.exe caché dans l'Explorateur Windows. Cela m'a donné l'indice que la version 64 bits était extraite par la version 32 bits. Suite à cette intuition, je me suis efforcé d'ouvrir l'exe 32 bits pour examiner ses ressources et j'en ai trouvé une qui était de plusieurs ordres de grandeur plus grande que les autres. J'ai extrait la ressource et l'ai enregistrée en tant que .exe. Et voilà, c'était le moniteur de processus 64 bits manquant.
Ryan Michela
1
Étant donné que j'ai ce problème avec beaucoup de programmes de Sysinternal, en particulier tous ceux qui extraient une version 64 bits (cela s'est produit tout à coup très récemment, ne peut pas exécuter l'un d'eux car il dit que le répertoire n'est pas accessible en écriture), mais si vous exécutez l'extracteur de ressources et cliquez sur 'actifs binaires' ou quoi que ce soit sur l'une des applications de sysinternal, vous pouvez essentiellement trier par taille, et la plus grande sera l'application.
Renommez-le
5

Laisse moi te surprendre. procmon.exe EXIGE le service de poste de travail en cours d'exécution pour démarrer. Il l'utilise pour énumérer quelque chose et mourra silencieusement sans lui.

Ce n'est documenté nulle part et assez faux.

Rasz_pl
la source
1
Oui! C'était ça! Cette réponse doit aller en haut.
lui
Ouais, ça l'a fait pour moi. La version 3.10 ne l'exige pas, mais la version 3.20 en a besoin. Vous avez réussi; l'esprit soufflé. Dire «assez faux» est un énorme euphémisme. Je n'ai aucune envie de gérer ce service, donc je suis profondément déçu de Mark.
Synetech
2

Je sais que ce fil a été un certain temps, mais je viens de voir ce problème récemment et j'ai remarqué un autre facteur qui pourrait être utile. Droit d'administrateur. Si je me connecte en tant qu'administrateur et l'exécute, cela fonctionne bien. Si vous vous connectez en tant que non-administrateur et l'exécutez, le problème se produit et le procmon-64 extrait affiche le même problème.

Cloud Guy
la source
2

Je réussis à extraire ProcMon64.exe avec le prochain script Perl placé et exécuté dans le dossier temporaire.

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')}
    }
}

Après plusieurs exécutions, il crée des dizaines de copies qui sont toutes identiques (le même CRC32)

Dmitry Pi
la source
0

ospy est une alternative à ProcMon. Vous pouvez essayer de dépanner le démarrage de procmon avec cela.

Justin Dearing
la source
0

J'ai résolu ce problème en revérifiant mes variables d'environnement. Vous pouvez vérifier %TEMP%si vous avez déjà ajouté quelque chose à l'intérieur auparavant. Supprimez tous les autres dossiers, à l'exception de Windows Temp, puis redémarrez.

user365886
la source
-2

J'ai utilisé Resource Hacker. Extrayez 1038 en tant que bac. ajoutez .exe et il semble commencer.

Erixx Haxx
la source
L'exécutable ne s'ouvre pas dans le pirate de ressources ....
Amalgovinus