One problem with upgrading software remotely is that you often need to stop the software you are upgrading first. Often, there is no service that can be stopped. The process must be killed. This can be a bit nasty with Windows systems because there is no easy way to find all instances of a particular program. Another problem is the lack of command-line utilities to deal with local and remote processes. There are some limited utilities that come with the Windows 2000 Resource Kit. Better, still, there is a cool set of free utilities available from Sysinternals that will, among other things, list processes and kill all processes matching a certain name.
Let’s list the processes running on this XP box:
Pstools>pslist PsList v1.12 - Process Information Lister Copyright (C) 1999-2000 Mark Russinovich Systems Internals - http://www.sysinternals.com Process information for DIVINE: Name Pid ... Elapsed Time Idle 0 ... 0:00:00.000 System 4 0:00:00.000 smss 4483 43:32:18.794 csrss 496 43:32:14.856 winlogon 520 43:32:14.638 services 564 43:32:14.309 . . . devldr32 1424 41:09:30.249 cmd 1920 0:00:53.718 IEXPLORE 1996 0:00:30.062 IEXPLORE 832 0:00:04.953 pslist 308 0:00:00.093
OK. Let’s kill all instances of IEXPLORE:
Pstools>pskill IEXPLORE PsKill v1.03 - local and remote process killer Copyright (C) 2000 Mark Russinovich http://www.sysinternals.com 2 processes named IEXPLORE killed. Pstools>
All gone. Nice. There are many other utilities related to processes, event logs, and shutdown/reboot in Pstools. Not only do these utilities work for local machines, you can also use them to manage remote machines. Do check it out.