WinPE : Déboguer des applications

Vous pouvez utiliser des débogueurs Windows, tels que Ntsd.exe, Cdb.exe et Windbg.exe, ainsi que des outils de prise en charge pour déboguer des applications sur Windows PE et pour déboguer le noyau Windows PE. Les outils de débogage sont inclus dans le Kit de développement logiciel (SDK) Windows 10. Vous devez rendre les outils de débogage disponibles sur l’ordinateur Windows PE en les copiant localement ou en les utilisant à partir d’un partage.

Pour déboguer Windows PE à distance, vous devrez peut-être désactiver le pare-feu intégré sur le PC :

wpeutil disablefirewall

Débogage en mode utilisateur

La méthode de débogage en mode utilisateur la plus simple consiste à exécuter un serveur de processus sur l’ordinateur Windows PE et à s’y connecter à l’aide d’un débogueur sur un autre ordinateur. Le serveur de processus est inclus avec les outils de débogage dans le Kit de développement logiciel (SDK) Windows 10.

Pour exécuter un serveur de processus en mode utilisateur

  1. Copiez l’outil Serveur de processus de débogage Windows : dbgsrv.exe, à partir du dossier outils de débogage du SDK Windows 10 (exemple : C:\Program Files (x86)\Windows Kits\10.0\Debuggers\x64) vers l’ordinateur Windows PE.

  2. À l’invite de commandes Windows PE, désactivez le pare-feu.

    wpeutil disablefirewall
    
  3. Démarrez le serveur de processus de débogage Windows, en spécifiant une méthode de connexion au PC, par exemple, un port TCP :

    dbgsrv.exe -t tcp:port=1234
    

    Pour plus d’informations, consultez Activation d’un serveur de processus (débogueurs Windows).

  4. À partir de l’ordinateur distant, utilisez le serveur de processus pour attacher ou démarrer des processus sur l’ordinateur de destination Windows PE :

    windbg -premote tcp:server=Server,port=1234
    

    Pour plus d’informations, consultez Activation d’un client intelligent (débogueurs Windows).

Il est également possible d’exécuter le débogueur directement sur l’ordinateur Windows PE. Toutefois, cela nécessite la configuration des chemins de symbole et de source après chaque redémarrage de l’ordinateur Windows PE. Nous vous recommandons d’effectuer un débogage à partir d’un ordinateur exécutant une version complète de Windows, comme décrit dans cette procédure.

La procédure de débogage suivante est utile lorsque vous souhaitez contourner startnet.cmd ou setup.exe et passer directement à une invite de commandes à des fins de débogage. Cette procédure contourne toute l’initialisation, y compris le programme d’installation, et n’exécute aucune commande, telle que Wpeinit.exe. Cette procédure doit être effectuée en ligne sur un système d’exploitation en ligne.

Pour activer le débogage en mode utilisateur avant toute initialisation

  1. Supprimez le fichier winpeshl.ini, s’il existe. Si le fichier winpeshl.ini n’existe pas, le débogage en mode utilisateur est accessible par défaut.

  2. Maintenez la touche Ctrl enfoncée pendant le démarrage avant d’afficher l’invite de commandes. Une invite de commandes s’affiche.

  3. Poursuivez le débogage.

Débogage en mode noyau

Pour déboguer en mode noyau, vous devez activer le débogage en mode noyau avant le démarrage du système. Le fichier de configuration de démarrage a un paramètre pour le débogage en mode noyau, qui est activé à l’aide de l’outil en ligne de commande bcdedit.exe pour modifier le magasin de données de configuration de démarrage (BCD). Le débogage du noyau ne peut être effectué qu’à l’aide de bcdedit.exe. Bcdedit.exe se trouve dans le répertoire \Windows\System32 de la partition Windows.

Les paramètres par défaut du débogueur sont les suivants :

identifier              {dbgsettings} 
debugtype               Serial 
debugport               1 
baudrate                115200

Pour créer des ISO pour les environnements de machine virtuelle, activez le noyau avec des entrées BCD avant de créer l’ISO.

Pour plus d’informations sur la modification du magasin BCD par défaut (default.bcd), consultez Comment modifier le magasin BCD à l’aide de Bcdedit.

Pour activer le débogage en mode noyau

  1. Recherchez le magasin BCD, qui est contenu dans un fichier nommé bcd. Ce fichier se trouve dans le répertoire de démarrage à la racine du média contenant l’image Windows PE.

  2. À l’invite de commandes, tapez la commande bcdedit suivante pour définir l’indicateur de débogage du magasin BCD utilisé pour démarrer l’image sur debug on:

    bcdedit /store <path to winpe>/boot/bcd /set {default} debug on
    

    Le {default} peut être remplacé par l’identificateur unique (UID) de l’option de démarrage pour Windows PE.

    Vous pouvez également activer le débogage du noyau en appuyant sur F8 pendant le démarrage et en sélectionnant l’option de débogage.

    Note Pour utiliser un serveur de symboles à partir de Windows PE, utilisez la net use commande sur les symboles et les partages de fichiers du serveur.

Pour plus d’informations sur les options de ligne de commande qui contrôlent le débogage, consultez BCDEdit Command-Line Options.

Pour activer le débogage en mode noyau réseau

Sur un PC de technicien, exécutez les commandes suivantes pour créer une image Windows PE avec les paramètres de débogage du mode noyau réseau :

  1. Démarrez l’Environnement de déploiement et d’outils de création d’images en tant qu’administrateur.

  2. Exécutez copype pour créer une copie de travail des fichiers Windows PE.

    copype amd64 d:\WinPE_amd64
    
  3. Si le PC cible est un système UEFI, exécutez les commandes suivantes (le port et la clé suivants sont des exemples. PORT peut être défini de 50000 à 50039. Pour la clé, consultez Clé de chiffrement) :

    bcdedit /store d:\WinPE_amd64\media\EFI\Microsoft\Boot\BCD /set {default} debug on
    bcdedit /store d:\WinPE_amd64\media\EFI\Microsoft\Boot\BCD /set {default} bootdebug on
    bcdedit /store d:\WinPE_amd64\media\EFI\Microsoft\Boot\BCD /dbgsettings NET HOSTIP:xxx.xxx.xxx.xxx PORT:50005 key:5.5.5.5
    
  4. Si le PC cible est un système BIOS hérité, exécutez les commandes suivantes (le PORT et la clé suivants sont des exemples. PORT peut être défini de 50000 à 50039. Pour la clé, consultez Clé de chiffrement) :

    bcdedit /store d:\WinPE_amd64\media\Boot\BCD /set {default} debug on
    bcdedit /store d:\WinPE_amd64\media\Boot\BCD /set {default} bootdebug on
    bcdedit /store d:\WinPE_amd64\media\Boot\BCD /dbgsettings NET HOSTIP:xxx.xxx.xxx.xxx PORT:50005 key:5.5.5.5
    
  5. Utilisez MakeWinPEMedia avec l’option /ISO pour créer un fichier ISO contenant les fichiers Windows PE, exécutez les commandes suivantes :

    makewinpemedia /iso d:\WinPE_amd64\winpe_x64_debug.iso
    

Sur le PC cible, commencez par winpe_x64_debug.iso et exécutez la commande suivante :

windbg.exe -k net:port=50005,key=5.5.5.5

WinPE pour Windows 10

WinPE : monter et personnaliser

Wpeutil Command-Line Options

référenceWinpeshl.ini : Lancement d’une application au démarrage de WinPE

BCDEdit Command-Line Options