Ce tutoriel permet aussi de tracer l'ouverture ou fermeture de Windows afin de déterminer quel élément prend du temps.
Ce tutoriel a été fait sur un Windows 7, cela doit fonctionner sur Windows Vista.
Non confirmé pour Windows XP, pour les guerriers, vous pouvez quand même tenter.
Ce tutoriel est basé sur celui du site de msnf.org - pour ceux qui parlent anglais, n'hésitez pas à aller jeter un oeil, il est plus complet : http://www.msfn.org/board/topic/140247- ... me-issues/
! | Comment accélérer la fermeture/arrêt de Windows 10. |
Installation du Microsoft Windows SDK et Microsoft Windows SDK
Dans un premier temps, vous avez besoin du Microsoft Windows SDK, disponible depuis ce lien : http://www.microsoft.com/download/en/de ... en&id=3138
Cochez les options telles dans la capture ci-dessus, les autres éléments n'étant pas utile pour tracer le démarrage/fermeture de Windows.

Allez ensuite dans le dossier suivant : C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin
et repérez les fichiers encadrés dans la capture, ci-dessus.
Ouvrez celui correspondant à l'architecture de votre Windows.
- wpt_ia64.msi => Itanium Windows
- wpt_x64.msi => 64Bit Windows Vista/7/Server 2008 (R2)
- wpt_x86.msi => 32Bit Vista/7/Server 2008

Laissez-vous guider par l'installation.
Une fois terminé, ouvrez une invite de commandes (Menu Démarrer / Tous les Programmes / Accessoires et invites de commandes).
Vérifiez que la commande xbootmgr fonctionne.
Tracer l'ouverture ou la fermeture de Windows
Voici comment tracer le boot de Windows, le principe pour tracer la fermeture de Windows est la même.
Seules les commandes sont différentes, ces dernières sont à saisir en invite de commandes.
Pour :
- Tracer le boot, tapez la commande : xbootmgr -trace boot -traceFlags BASE+CSWITCH+DRIVERS+POWER -resultPath C:\TEMP
- Tracer la fermeture de Windows, tapez la commande : xbootmgr -trace shutdown -noPrepReboot -traceFlags BASE+CSWITCH+DRIVERS+POWER -resultPath C:\TEMP
- Tracer hibernation + power on, tapez la commande : xbootmgr -trace hibernate -traceFlags BASE+CSWITCH+DRIVERS+POWER -resultPath C:\TEMP

Dans le cas du trace du démarrage, au redémarrage, vous obtenez la fenêtre suivante, laissez l'opération s'effectuer


Enfin pour générer le rapport XML de lecture des résultats, toujours en invite de commande, saisir la commande suivante :
- cd Desktop afin de se placer sur le bureau
- dans le cas d'un trace de la fermeture de Windows : xperf /tti -i c:\temp\shutdown_BASE+CSWITCH+DRIVERS+POWER_1.etl -o summary_shutdown.xml -a shutdown
- dans le cas d'un trace du boot de Windows : xperf /tti -i c:\temp\boot_BASE+CSWITCH+DRIVERS+POWER_1.etl -o summary_shutdown.xml -a boot
- dans le cas d'un trace de l'hibernation : xperf /tti -i c:\temp\hibernate_BASE+CSWITCH+DRIVERS+POWER_1.etl -o summary_hibernation.xml -a suspend

Ce qui nous donne :

Il est conseillé de lire les résultats avec Internet Explorer afin de pouvoir réduire les blocs du XML (bouton - et +) et rendre la lecture plus facile.
Fichier de trace du Boot de Windows
Voici la partie intéressante sur le fichier XML de boot :

<timing bootDoneViaExplorer="132719" bootDoneViaPostBoot="155819" osLoaderDuration="5120" postBootRequiredIdleTime="10000" postBootDisturbance="13100" pnpBootStartStartTime="39" pnpBootStartEndTime="6791" pnpBootStartDuration="6752" pnpSystemStartStartTime="7816" pnpSystemStartEndTime="14862" pnpSystemStartDuration="7045">
- <interval name="PreSMSS" startTime="0" endTime="14866" duration="14866">
- bootDoneViaExplorer est le temps que met Windows pour arriver sur le bureau, soit dans mon cas 132719 ms => 2min
- bootDoneViaPostBoot est le temps complet du boot (+10s d'inactivité) soit donc 155819 ms => 2min et 50s
Le graphique suivant décrit les étapes du démarrage de Windows dans le temps, étape que l'on retrouve dans le fichier XML :

- PreSMSS : Initialisation du Kernel et des périphériques - c'est la partie du démarrage où le logo de Windows apparaît.
- SMSSInit : Lancement de SMSS.exe qui charge les drivers, dont ceux graphiques.
- WinLogonInit : Chargement de Winlogon, des groupes de sécurité ainsi que le démarrage des services. Winlogon se charge juste avant l'ouverture de session, cette phase est terminée quand le bureau apparaît, ce dernier passe la main à userinit.
- ExplorerInit : Chargement du shell (le bureau avec le menu Démarrer) et des clefs relatives à Explorer.exe (BHO, clef Active Setup qui sont souvent utilisées par les RAT/Bifrose, etc).
- PostBoot : lance les clefs run, place les programmes dans le systray.
Fichier de fermeture du Boot de Windows
Voici un exemple de fichier XML que vous pouvez générer :

- shutdownTime décrit le temps de fermeture et arrêt total de Windows.
- servicesShutdownDuration donne le temps de fermeture des services Windows.
- la partie duration de sessionShutdown donne le temps de fermeture des services d'une session
- 0 étant les services systèmes
- 1,2,n étant les services attachés à une session

- UserSession phase : csrss.exe lance la fermeture de Windows et ferme tous les applications. Si une application bloque la fermeture, l'utilisateur est notifié par un message, il peut stopper la fermeture de Windows et enregistrer son travail sur les diverses applications ou continuer la procédure, Windows tuera alors toutes les applications ouvertes.
- SystemSession Phase : C'est la phase de fermeture des services dans l'ordre des dépendances. Le temps de fermeture d'un service est déterminé par la clef WaitToKillServiceTimeout (voir plus bas), si le service ne s'est pas fermé au delà de ce laps de temps, il est "tué" pour ne pas bloquer la phase de fermeture.
- KernelShutdown : Fermeture des périphériques et de Windows.
Dans le cas où cette phase est très longue, voir la partie ClearPageFileAtShutdown plus bas.
Optimiser le démarrage
Ce paragraphe est issu de l'article suivant : http://www.msfn.org/board/topic/140262- ... windows-7/
Ensuite vérifier que le service :
- Superfetch pour Windows 7 est bien démarré et en mode de démarrage automatique.
- ReadyBoost pour Windows Vista est bien démarré et en mode de démarrage automatique.

pour cela :
- Menu Démarrer et saisir en bas services.msc et appuyer sur Entrée.
- Chercher le service mentionné selon votre version de Windows
- Vérifiez que dans la colonne Etat il est bien démarré.
- Double-cliquez dessus et vérifiez que le type de démarrage est en automatique
- Redémarrez l'ordinateur
Avant de commencer il convient d'avoir créé un fichier XML de trace du boot qui enregistre le temps de démarrage de Windows.
Ce fichier sera le point de référence pour déterminer si vous bien gagné du temps au chargement de Windows.
Ensuite nous pouvons commencer l'optimisation.
Saisir la commande suivante : xbootmgr -trace boot -prepSystem -verboseReadyBoot
puis laissez-vous guider, Windows peut redémarrer plusieurs fois c'est normal.

Une fois l'optimisation terminée.
Refaire un trace de boot afin de pouvoir générer un nouveau fichier XML et visualiser le temps gagné.
Dans mon cas - les valeurs parlent d'elles-mêmes.
Avant l'optimisation :

Après l'optimisation :

NOTE : le site msfn.org conseille de ne pas défragmenter avec un programme ensuite, vous risquez de perdre l'optimisation !
Problème connu de fermeture/Arrêt de Windows
Problème Arrêt Windows 10
Se reporter à la FAQ : Windows 10 : résoudre problème arrêt ordinateur
! | Comment accélérer la fermeture/arrêt de Windows 10. |
Problème Arrêt Windows 7
Sur Windows 7, Windows bloque sur "Arret système"
- Menu Démarrer puis tapez regedit et appuyez sur Entrée
- Déroulez l'arborescence suivante en cliquant sur les + : HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management
- A droite, double cliquez sur ClearPageFileAtShutdown et vérifiez que la valeur est à 0.
- Si ce n'est pas le cas, mettez la à zéro
- Validez toutes les fenêtres, redémarrez l'ordinateur puis tentez une fermeture de Windows.
dans HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control
La valeur standard étant 12000 (12s), vous pouvez la porter par exemple à 7000 (7s) pour gagner du temps.
Ne baissez pas trop la valeur, sous peine de ne pas laisser le temps aux services de se fermer convenablement, ce qui n'est pas bon.
Problème Arrêt Windows XP
Fermeture de Windows XP
Certains sites conseillent d’arrêter les services NVIDA et Terminal Server qui peuvent ralentir l’arrêt de Windows.
Pour cela :
- Menu Démarrer et exécuter, saisir en bas services.msc et appuyer sur Entrée.
- Chercher les services mentionnés selon votre version de Windows
- Double-cliquez dessus et positionnez le type de démarrage à manuel.
- Redémarrez l'ordinateur
Pour continuer sur le sujet, voici quelques liens relatifs à l'optimisation de Windows :