Replacing Task Manager with Process Explorer in Windows 7 (64-Bit)

*** Updated June 14, 2010 ***

It turns out that the Procexp64.exe exists ONLY while Process explorer is running. Don’t ask me why. So my registry entry instead now shows:

C:\Bin\Procexp.exe.

Otherwise you still get the “cannot find” message.

*** End June 14, 2010 Update ***

I recently was introduced to Windows’ Process Explorer and liked it enough to want to replace Window’s native task manager with it.

It *should* be as simple as clicking “Options > Replace Task Manager” in the Process Explorer window but then, when you try to invoke the Task Manager (now supposedly Process Explorer) you get a message indicating that

“Windows cannot find ‘C:\Window\System32\taskmgr.exe’. Make sure you typed the name correctly, and then try again.”

For me, going back in Process Explorer to uncheck the above option shows that it’s not checked, and clicking it again doesn’t do anything at all.

Not sure exactly why but what’s happened is that a registry key for task manager has now been created with a debugger key that has a garbage value. Mine showed something like ” ^ $ ^”.

Check it out under HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe

To go back the way things were you just need to remove the “Debugger” key. Or, if you want to go forward and actually replace the task manager, then set the value of the debug key with the location of your process explorer executable. In my case it looks like “C:\bin\Procexp64.exe” “C:\bin\Procexp.exe”.

Funny, I deleted the debug key and then went back to process explorer and try “Options > Replace Task Manager” again and it works just fine now. Must be an initialization issue.

21 thoughts on “Replacing Task Manager with Process Explorer in Windows 7 (64-Bit)”

  1. I’ve installed the latest version, and I HAVE same problem. Well… Same message – same solution … Regedit and etc.

  2. Have the same problem with v14.0
    A simple workaround is, with Process Explorer running, flag Procexp64.exe as ReadOnly.
    Just remember, if you update to a newer version, delete the …64.exe file and repeat the above process.

  3. BTW….I used “…\Procexp64.exe” in my registry entry and it works just fine. I’m using the same entry in my Start Up menu, with the addition of the /t switch to start Process Explorer minimized. I’m using version 14.01 on Windows 7 x64. The replace task manager option didn’t work for me, but this registry change did the trick. Thanks.

  4. I had the same problem.
    But when I startet the Process Explorer “as admin” and then replaced the Taskmanager in the options, it worked nicely.
    I guess its a problem of admin privs when changing the keys in the registry.

  5. As far as procexp64 – you can start the 32-bit procexp, then copy the generated procexp64 into another folder while the 32-bit version is still running. Problem solved 🙂

    I’d recommend that one would put the procexp64 into a folder not containing the 32-bit procexp, or it’ll probably just disappear, again, next time around.

  6. this process worked for me:

    step 1: run procexp.exe
    step 2: copy the generated procexp64.exe to another folder.
    step 3: delete original procexp.exe
    step 4: rename procexp64.exe to procexp.exe
    step 5: run the new procexp.exe, and tell it to replace task manager.

    thanks to original poster for pointing me in the right direction for the fix.

  7. HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe
    string value debugger = “C:\PROCEXP64.EXE”
    Here you can manually adjust your taskmgr settings.
    This way you can get only 64 bit version to lunch with out procexp.exe

  8. The way to get the 64-bit version of Process Explorer to persist without running the 32-bit version is quite simple.

    Just copy all of the 32-bit versions to wherever you want, e.g.:

    C:\Program Files (x86)\Sysinternals

    Run each of the following programs:

    Disk2VHD.exe
    DiskView.exe
    ProcExp.exe
    ProcMon.exe
    RAMMap.exe
    VMMap.exe
    ZoomIt.exe

    and, while each of these programs are STILL RUNNING, copy the 64-bit versions to:

    C:\Program Files\Sysinternals

    Rename each of them back to whatever the 32-bit version is named. Since they in a different directory tree, it’s not a problem. (The same as MS does with System32 and SysWOW64.)

    Once that’s done, I create the following registry tree:

    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe]
    “Debugger”=”C:\Program Files\Sysinternals\ProcExp.exe”

  9. @geo – P.S. There’s really no reason to keep the 32-bit versions around after this. All they would do is create a new version on the 64-bit programs, which you’ve already done!

  10. Or instead of mucking around in the registry, you can just right-click the Process Explorer executable wherever you put it (I usually make a subfolder for it in c:\Program Files) – Run as Administrator – and then the “Replace Task Manager” setting will function as intended.

  11. Originally Posted By DaytonOr instead of mucking around in the registry, you can just right-click the Process Explorer executable wherever you put it (I usually make a subfolder for it in c:Program Files) – Run as Administrator – and then the “Replace Task Manager” setting will function as intended.

    Unfortunately, as mentioned above, that doesn’t work correctly. I just tried it, and instead of pointing to Process Explorer, the Task Manager key in question became:

    “Debugger”=””

    So, trying to run the task manager did nothing.

    Instead of running Regedit, finding the key and modifying it, you can use the command line registry command.

    Simply go to the Start Menu, and in the search box type “cmd”. Open the command window and type the following (all one line):

    REG ADD “HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\taskmgr.exe” /v Debugger /t REG_SZ /d “C:\Program Files\Sysinternals\procexp.exe”

    Replace “C:\Program Files\Sysinternals\procexp.exe” with the path to wherever Process Explorer is installed on your system.

    That will create the key without you having to use the Regedit command.

  12. @geo

    I need to amend my own post, as some things have changed…

    First off, do NOT replace the 32-bit version of VMMap.exe with the 64-bit version! Just leave the 32-bit version in place, and run it normally. It will create its own 64-bit version as needed.

    VMMap requires you to select a process that you want to inspect. It displays the virtual memory map of that process.

    If you run the 64-bit version of VMMap.exe directly, then, if you select a 32-bit process, it will fail! If, on the other hand, you run the 32-bit version, it automatically creates the 64-bit version. Then, regardless of the architecture of the process, it will select the correct version of VMMap.exe to use for THAT process!

    Therefore, remove VMMap.exe from that list!

    Similarly, ProcMon.exe should ALSO be removed from the list, as it works EXACTLY the same way as VMMap.exe!! If you run the 64-bit version of ProcMon.exe, but select a 32-bit process to monitor, it WILL fail!

    In addition, as I said above, once you’ve created the 64-bit versions of:

    Disk2VHD.exe
    DiskView.exe
    ProcExp.exe
    RAMMap.exe
    ZoomIt.exe

    There’s no reason to keep the 32-bit versions. Unlike VMMap and ProcMan, these five utilities work on a per-system basis, as opposed to a per-process basis. Therefore, on a 64-bit system, the 32-bit utilities aren’t needed.

    Finally, there are also a few command line utilities in the Sysinternals distribution that ALSO create 64-bit versions of themselves. These are:

    coreinfo.exe
    handle.exe
    listdlls.exe

    With coreinfo.exe, you can create the 64-bit version and delete the 32-bit version. It reports on your CPU and RAM, which is a per-system process.

    The other two, handle.exe and listdlls.exe are per-process utilities, therefore, you need both versions of these.

    I often separate listdlls.exe into the 32-bit and 64-bit versions, because using the 64-bit version, you can get a list of ONLY the 64-bit Dlls on your system. The 32-bit version will always report on both Dll architectures.

Leave a Reply

Your email address will not be published. Required fields are marked *