L’hibernation ca peu etre utile sur un laptop. On rabats l’écran, le système sauvegarde l’état de la RAM sur le disque, et on reprend la où on en était quelques heures plus tard. Par contre ca decharge la batterie.

Sur une station de travail c’est une autre histoire. L’hibernation réserve un fichier hiberfil.sys sur le disque système dont la taille équivaut à la totalité de la RAM installée. Sur une machine avec 32 Go de RAM, c’est 32 Go d’espace disque bloqué pour une fonctionnalité que personne n’utilisera jamais. Autre consequence observée en prod, des mises à jours distribuées par un serveur WSUS en interne et qui necessitaent un reboot, échouent a chaque fois. En creusant vous constatez, qu’apres le reboot demandé par la mise a jour, dans le gestionnaire des taches le comtpeur de durée de fonctionnement (uptime) n’as pas été réinitailisé à zéro donc la machine n’as pas réellement rebooté. Résultat : WSUS attend la confirmation du reboot, la machine répond “reboot fait” mais techniquement non, et certaines mises à jour en multi-étapes (notamment les cumulatives et les mises à jour de sécurité kernel) restent bloquées indéfiniment.

La commande powercfg /hibernate off règle le problème sur une machine. La GPO le règle sur tout le parc.

La bonne approche, c’est de passer par une clé de registre GPP. Pas de compte utilisateur, pas de script, pas de dépendance externe. Une clé, un reboot, c’est fait.

Création de la GPO

Dans la GPMC :

Clic droit sur l'OU cible → Create a GPO in this domain and link it here
Nom : Disable Hibernation

Lier sur STATIONS. Inutile sur les serveurs — l’hibernation y est désactivée par défaut sous Windows Server.

La clé de registre

Computer Configuration → Preferences → Windows Settings → Registry
→ New → Registry Item
Champ Valeur
Action Mettre à jour
Ruche HKEY_LOCAL_MACHINE
Chemin SYSTEM\CurrentControlSet\Control\Power
Nom de la valeur HibernateEnabled
Type REG_DWORD
Données 0

HibernateEnabled = 0. Une clé, une valeur, zéro complication.

C’est tout. Une clé, une valeur, zéro complication.

Ce qui se passe sous le capot

La valeur HibernateEnabled = 0 est l’équivalent registre de powercfg /hibernate off. Windows désactive le service d’hibernation au démarrage suivant et supprime hiberfil.sys au prochain redémarrage, libérant l’espace disque correspondant à la taille de la RAM.

Vérification post-déploiement

Après gpupdate /force et reboot :

# Doit retourner 0
Get-ItemPropertyValue "HKLM:\SYSTEM\CurrentControlSet\Control\Power" -Name HibernateEnabled

# hiberfil.sys ne doit plus exister
Test-Path C:\hiberfil.sys
# Confirme l'état de l'hibernation
powercfg /query SCHEME_CURRENT SUB_SLEEP HIBERNATEIDLE