8 votes

Comment débloquer les fichiers en utilisant handle.exe et le nom du processus ?

J'ai essayé Unlocker 1.9.1 mais il ne fonctionne pas correctement pour moi sous Windows7 (il fonctionnait bien sous Windows XP) et j'ai également essayé LockHunter 2.0.2.103 x64 et j'ai signalé un bug mais ..... LockHunter débloque effectivement le fichier à partir de l'interface graphique mais pas à partir de la ligne de commande.

Je veux donc utiliser handle.exe en SysInternals pour débloquer un fichier "TestPro.log". Je connais le chemin absolu si cela peut aider. Je peux lister tous les processus qui ont verrouillé le fichier en exécutant

C:\Windows\system32>c:\edutester\progs\handle testpro.log
java.exe           pid: 2120   type: File           338: C:\Users\Public\TestPro
\TestPro Automation Framework\Logs\TestPro.log
java.exe           pid: 1004   type: File           934: C:\Users\Public\TestPro
\TestPro Automation Framework\Logs\TestPro.log

Ce dont j'ai besoin, c'est de savoir comment déverrouiller le fichier en utilisant les informations ci-dessus à partir de ligne de commande automatiquement . Aucune intervention de l'utilisateur n'est possible.

  • Windows 7 64bit
  • Microsoft Windows [Version 6.1.7601]

8voto

Lauren Points 1076

Vous pouvez utiliser handle.exe une fois pour lister les PIDs et les handles, puis plusieurs fois pour fermer chacun d'entre eux.

Utilisez le for /f pour boucler le résultat de la première commande. Je n'ai pas de machine Windows à portée de main pour tester, mais cela devrait ressembler à quelque chose comme ceci :

A partir d'un fichier batch :

for /F "tokens=3,6 delims=: " %%I IN ('handle.exe -accepteula TestPro.log') DO handle.exe -c %%J -y -p %%I

Depuis la ligne de commande :

for /F "tokens=3,6 delims=: " %I IN ('handle.exe -accepteula TestPro.log') DO handle.exe -c %J -y -p %I

1voto

https://technet.microsoft.com/en-us/sysinternals/handle.aspx

TEST ET AFFICHAGE :

for /f "tokens=3,6 skip=5 delims=: " %i in ('handle.exe -accepteula notepad.exe') do @echo %i %j                                                                    

EXECUTER :

for /f "tokens=3,6 skip=5 delims=: " %i in ('handle.exe -accepteula notepad.exe') do handle.exe -c %j -y -p %i  

EXECUTE ET TASKKILL :

for /f "tokens=3,6 skip=5 delims=: " %i in ('handle.exe -accepteula notepad.exe') do handle.exe -c %j -y -p %i & taskkill /t /f /PID %i

0voto

Garric Points 97

Exécution à partir du menu contextuel sans fichier bat. 1) Mettez le fichier handle64.exe dans C:\Windows. 2) Créer et exécuter le reg script

    Windows Registry Editor Version 5.00

    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\WhatBlockFile]
    "Icon"="C:\\ico\\Buttons\\Annotate_Help.ico"
    "MUIVerb"=" ?"
    "Position"="Top"

    [HKEY_LOCAL_MACHINE\SOFTWARE\Classes\*\shell\WhatBlockFile\command]
    @="C:\\Windows\\system32\\Cmd.exe /c C:\\Windows\\handle64.exe -u \"%1\" & pause"

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X