No computer runs perfectly forever. Somewhere along the line, something will go wrong. While each successive version of Windows has been that much more reliable and self-healing, that's never been an argument to forgo a good collection of software tools.

Over the years I've accumulated a slew of third-party troubleshooting apps that have proven their value again and again, so much so that they're among the very first programs installed in any system I use. If something goes wrong -- a Blue Screen of Death, a slow-booting system, a recent program install that's made everything slower than molasses going uphill in January -- I turn to these tools to set things right. All of them are free for personal use, some are open source, and each of them deserves a place in the toolbox of the savvy Windows user.

[ There's no shortage of great free tools for Windows. See also "Top 10 Windows tools for IT pros" and "The best free open source software for Windows." ]

Sysinternals's Process Explorer

"Task Manager on steroids" -- that's how someone described Process Explorer to me when Mark Russinovich first released it many years ago. It can replace Task Manager or run side by side with it, but either way it's an absolute must-have for technically savvy users. I typically use it as the replacement for Task Manager on any PC I run; it's just too handy not to have installed.

When you launch Process Explorer, you'll see a tree view of processes; they're nominally organized by which process spawned which, but you can click on the column headers to change the sorting as you please. The top portion of the window has four graphs: CPU usage, commit history, I/O bytes history, and physical memory history. Click on one to bring up a full-sized window view that's akin to the Performance tab in Task Manager -- but with a level of detail and insight into what programs are doing that Task Manager doesn't even come close to providing.

Double-click on the name of a process, and up pops a window with a startling amount of detail: the process's running threads (and the stack for each thread), which can be frozen or killed; its permissions; its network access; the program it was launched from; even a dump of text strings in either the on-disk program image or its copy in memory. Processes, or whole trees of them, can be killed off, frozen, resumed, or have their windows or priorities manipulated -- handy if a process window vanishes behind something else and you need to force it to the front. You can also toggle on or off a lower pane that contains detailed information about a process, find the process for a particular window by pointing to it, or search by name for any running process, handle, or DLL.