With the latest Windows (Vista and 7) you can select “Hybrid Sleep” as a suspend mode. In essence, it provides the fast restart of your usual sleep mode with the durability of hibernation: it writes the system state to disk like hibernate, but if the system is “warm” (versus powered off) it’ll use the data in memory when coming out of sleep. If you power down during hybrid sleep (AFTER the data has been flushed to the hibernation file) the system will reboot on power up and will restore from disk.
This is all nice, but when you enable hybrid sleep you lose “hibernate” as a separate option. Perhaps this is to avoid confusion (remember: hybrid sleep performs hibernation as part of its process, it just doesn’t completely power down). However, there are times I’d rather have the system fully hibernate instead of just sleeping (such as if I’m going to be away a few days). Since touching the power button once it’s in full hybrid sleep often re-awakens my system (and I don’t prefer to power down directly from any sleep state), I wanted a one-click solution.
So, if you use hybrid sleep and want to explicitly hibernate, run this (even as a regular user) and your system should hibernate rather than just enter hybrid sleep:
%windir%\system32\rundll32.exe PowrProf.dll, SetSuspendState 0,1,0
This should also work if you DON’T use hybrid sleep and DO have the hibernation option… though if you have “hibernate” as an option you’re probably not looking for this sort of fix.
Disclaimers: If hibernation or hybrid sleep didn’t work before this won’t make hibernation work (e.g., if you have insufficient disk space or have explicitly disabled hibernation and hybrid sleep)… in that case this will likely send you into the typical sleep mode. You can usually tell the difference by noting the lengthy time spend writing data to the disk, followed by a clear power off. (Hybrid sleep does the same, except it goes into sleep mode – how your computer shows this will vary).
More info here.