Process Monitor non si avvia su un computer a 64 bit


23

Quando provo ad avviare Process Monitor da SysInternals su alcune macchine Windows 7 a 64 bit, il processo non si avvia. Non c'è nessun messaggio di errore. Faccio doppio clic e non succede nulla. Altri computer Windows 7 a 64 bit funzionano correttamente. Qualche idea?


Ho lo stesso problema e posso eseguire Process Monitor in modalità 32 bit con l'opzione della riga di comando procmon.exe /Run32. Tuttavia, non supporta l'acquisizione in questa modalità.
— Jirkamat,

@jirkamat Non funziona qui :(
— Zero3

Risposte:


33

Ecco cosa ho trovato. Procmon.exe a 32 bit contiene l'exe a 64 bit al suo interno come risorsa binaria. All'avvio di exe a 32 bit, estrae la versione a 64 bit in un file nascosto chiamato Procmon64.exe e quindi lo esegue. Per qualche motivo questo processo non riesce su alcune installazioni di Windows 7.

Sono riuscito a estrarre l'exe a 64 bit usando Visual Studio 2010.

  1. Apri Visual Studio e apri il file Procmon.exe usando il menu File-> Apri-> File ...
  2. Nell'albero delle risorse, espandere il nodo "BINRES"
  3. Fare clic con il tasto destro sul nodo 1308 e selezionare Esporta ...
  4. Denominare la risorsa esportata Procmon-64.exe e salvare
  5. Esegui l'exe estratto

Non nominare l'exe Procmon64.exe estratto (nessun trattino) perché Procmon a 32 bit tenterà di eliminarlo se ne ha la possibilità.

Se non si dispone di Visual Studio, utilizzare un estrattore di risorse eseguibile di Windows come ResourcesExtract - http://www.nirsoft.net/utils/resources_extract.html


2
È interessante che tu abbia trovato una soluzione, ma sarei molto più interessato al motivo per cui dovresti persino farlo.
— Zoredache,

Vorrei trovare anche la causa principale, ma il debug di un processo nativo senza simboli non vale la pena. Soprattutto uno integrato con il sistema operativo come Process Monitor.
— Ryan Michela,

Estraendo l'ex 64 bit di ProcMon in EXE autonomo ed eseguendo questo exe risolve questo problema per me! ProcMon funziona bene.
— Jirkamat,

4
Una volta, mentre facevo doppio clic pigramente su Procmon.exe più e più volte frustrato, ho visto il flash nascosto Procmon64.exe in Esplora risorse. Questo mi ha dato l'idea che la versione a 64 bit veniva estratta dalla versione a 32 bit. A seguito di questo sospetto, mi sono spinto ad aprire l'ex a 32 bit per esaminare le sue risorse e ho trovato uno che era ordini di grandezza più grandi degli altri. Ho estratto la risorsa e l'ho salvata come .exe. Ecco, era il Process Monitor a 64 bit mancante.
— Ryan Michela,

1
Dato che sto riscontrando questo problema con molti programmi di Sysinternal, in particolare tutti quelli che estraggono una versione a 64 bit (questo è accaduto all'improvviso di recente, non è possibile eseguirne nessuno perché dice che la directory non è scrivibile), ma se esegui l'estrattore di risorse e fai clic su "risorse binarie" o su qualsiasi altra applicazione del sistema interno, puoi sostanzialmente ordinare per dimensione e la più grande sarà l'app. Basta rinominarlo in exe e il gioco è fatto ~
— mgrandi

5

Lasciami stravolgere la tua mente. procmon.exe RICHIEDE Servizio di workstation in esecuzione per iniziare. Lo usa per enumerare qualcosa e morirà silenziosamente senza di essa.

Questo non è documentato da nessuna parte e piuttosto fasullo.


1
Sì! Era questo! Questa risposta deve andare in cima.
— stesso

Sì, è stato per me. La versione 3.10 non lo richiede, ma la versione 3.20 lo fa. Ci sei riuscito; sbalordire. Dire "piuttosto fasullo" è un eufemismo enorme. Non ho alcun desiderio di gestire quel servizio, quindi sono profondamente deluso da Mark.
— Synetech,

2

So che questa discussione è stata un po 'di tempo, ma ho visto questo problema ultimamente e ho notato un altro fattore che potrebbe essere utile. Amministratore giusto. Se accedo come amministratore e lo eseguo, funziona benissimo. Se accedi come non amministratore ed eseguilo, il problema si verifica e il procmon-64 estratto mostra lo stesso problema.


2

Riesco a estrarre ProcMon64.exe con il successivo script Perl inserito ed eseguito nella cartella temp.

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

Dopo esecuzioni multiple crea decine di copie tutte uguali (lo stesso CRC32)



0

Ho risolto questo problema ricontrollando le mie variabili di ambiente. Puoi verificare %TEMP%se hai mai aggiunto qualcosa all'interno prima. Rimuovere qualsiasi altra cartella tranne Windows Temp e quindi riavviare.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.