I'm trying to remotely reboot a hung 2003 server.
The server is pingable but I cannot remote into it.
psshutdown does not work
shutdown -i does not work
What can I do now that the server is back up to make sure one of these solutions will work in the future?
Servers off site should always have an IPMI daughterboard with KVM functionality. This allows you to remote control the server including turning it on or off. Servers without that are not servers.
You can try
shutdown /m \\computer /r /t 0
to try and force an immediate reboot and force-close any open programs.If that doesn't work, you're probably going to have to power cycle it. If you have a DRAC/iLO or similar LOM card, now would be the time to take advantage of it.
If Windows doesn't respond to the usual requests to reboot, there's not much else you can do at that point to ensure similar situations in the future to be prevented. A few times I've managed to reboot a hung Windows OS that didn't respond to shutdown or psshutdown by using SCCM client center or pskill to kill lsass.exe. Once that is killed, the kernel forcibly bring the system down for a reboot after 60 seconds. More often than not, however, lsass cannot be killed and that trick won't work.
What kind of hardware is this server running on? Can you install Server 2008R2 instead? While server 2003 is pretty stable, it's still a long way from the stability of 2008, if that's an option. Another option would be to virtualize the 2003 server if it has stability issues due to some odd program it needs to run or some other configuration that cannot be changed to resolve the stability issues. That way you can reset the virtual session if it hangs.
There's many options to resolve your situation, however none of them will involve something as simple as changing a few settings in your Windows Server 2003 install or installing a piece of software. Usually by the time a Windows OS is to the point you describe, it's hung to the point that nothing short of a power/reset button press will suffice.