Partager via


Résoudre les problèmes liés aux applications qui ne parviennent pas à démarrer à l’aide du moniteur de processus (Process Monitor)

Cet article explique comment installer l’outil Process Monitor pour résoudre le problème dans lequel les applications modernes, boîtes de réception et Microsoft Store ne parviennent pas à démarrer.

Téléchargez l’outil Process Monitor . Une fois l’outil Process Monitor téléchargé localement, extrayez les fichiers.

Capturer des événements

Pour capturer une trace Process Monitor, exécutez-la avec des autorisations élevées (exécutées en tant qu’administrateur).

Note

Vérifiez que vous exécutez la version de Process Monitor qui correspond à la plateforme (Procmon.exe pour les systèmes x86, Procmon64.exe pour les systèmes X64 et Procmon64a.exe pour ARM).

Une fois démarré, réinitialisez les filtres précédemment enregistrés par défaut pour vous assurer qu’aucun événement potentiel n’est filtré par les filtres précédemment définis. S’il s’agit de la première fois que vous exécutez Process Monitor ou s’il n’existe aucun filtre défini, vous pouvez démarrer l’enregistrement sans la fenêtre contextuelle.

Capture d’écran de la fenêtre Filtre du moniteur de processus avec un bouton Réinitialiser.

Par défaut, l’enregistrement doit démarrer automatiquement. Toutefois, vous pouvez vous assurer qu’elle est en cours d’exécution en sélectionnant l’icône suivante :

Capture d’écran de la fenêtre Moniteur de processus avec une icône sélectionnée pour vérifier si l’outil est en cours d’exécution.

Vous pouvez également démarrer l’enregistrement en appuyant sur Ctrl + E ou en sélectionnant Capturer des événements dans le menu Fichier. Vous voyez les événements enregistrés dans la barre d’état comme suit :

Capture d’écran des événements enregistrés affichés dans la barre d’état.

Sinon, si une interface utilisateur graphique (GUI) n’est pas une option ou si le système est accessible à distance uniquement avec l’accès à la console, vous pouvez suivre le problème à l’aide de Windows PowerShell ou d’une invite de commandes. Par exemple :

C:\ProcessMonitor>procmon64.exe -accepteula -backingfile C:\ProcessMonitor\Recording.pml -quiet -minimized

D’autres options sont disponibles, notamment le filtrage et la définition de la taille maximale du fichier. Pour plus d’informations, consultez Process Monitor.

Capture d’écran des arguments de ligne de commande de l’utilisation du moniteur de processus.

Pour terminer et enregistrer la trace, vous pouvez utiliser la commande suivante :

C:\ProcessMonitor>procmon64.exe -terminate -quiet

En outre, vous pouvez exécuter à distance Process Monitor à l’aide de PowerShell ou de l’outil PsExec. Par exemple :

C:\PSTools>psexec.exe -sd \\<Computer Name> C:\ProcessMonitor\procmon64.exe -accepteula -backingfile C:\ProcessMonitor\Recording.pml -quiet -minimized

Pour arrêter l’enregistrement, vous pouvez utiliser la commande suivante :

C:\PSTools>psexec.exe -sd \\<Computer Name> C:\ProcessMonitor\procmon64.exe -terminate -quiet

Stocker et enregistrer des événements

Il existe plusieurs méthodes disponibles pour stocker et enregistrer les événements. Vous pouvez sélectionner Fichiers de stockage dans le menu Fichier . Vous pouvez ensuite voir deux méthodes pour stocker des événements :

  • Utiliser la mémoire virtuelle
  • Utiliser le fichier nommé

Capture d’écran de la fenêtre Fichiers de stockage du moniteur de processus avec deux méthodes de stockage d’événements.

Utiliser la mémoire virtuelle

Cette méthode utilise la mémoire du système pour stocker le fichier jusqu’à ce qu’il soit enregistré manuellement par l’utilisateur.

Note

L’exécution du Moniteur de processus pendant trop longtemps, soutenue par la mémoire virtuelle, peut entraîner l’utilisation de l’analyseur de processus pour toutes les mémoires virtuelles du système disponibles, ce qui peut entraîner l’arrêt du système de réponse.

Capture d’écran des événements soutenus par la mémoire virtuelle affichée dans la barre d’état.

Si vous démarrez l’enregistrement sous forme de mémoire virtuelle, vous devez enregistrer l’enregistrement avant de quitter process Monitor.

Capture d’écran d’une icône d’enregistrement et de la fenêtre Enregistrer dans le fichier avec tous les événements et le format De moniteur de processus natif sélectionné.

Vérifiez que vous sélectionnez Tous les événements et que le format est défini en tant que format PML (Native Process Monitor Format). Si l’enregistrement ne contient pas tous les événements, vous disposez uniquement des événements affichés ou mis en surbrillance disponibles pour l’analyse, ce qui peut être insuffisant.

Sauvegardé par fichier

Cette méthode utilise un fichier pour stocker l’enregistrement et ne nécessite pas d’enregistrer le fichier manuellement avant de quitter Process Monitor.

Note

Si la taille de fichier maximale n’est pas définie, l’exécution du Moniteur de processus pendant trop longtemps, sauvegardée par un fichier, peut entraîner l’utilisation de l’espace disque système disponible par le Moniteur de processus, ce qui peut entraîner l’arrêt du système de réponse.

Capture d’écran des événements soutenus par un fichier affiché dans la barre d’état.

Une fois le moniteur de processus défini et l’enregistrement démarré, vous devez reproduire le problème.

Exemple de résolution des problèmes

Prenez ce problème comme exemple ; vous disposez de l’application Calculatrice qui ne fonctionne pas. Tout d’abord, démarrez l’enregistrement Process Monitor avec l’une des méthodes décrites ci-dessus. Reproduire ensuite le problème en essayant de démarrer l’application. Une fois le problème reproduit, arrêtez l’enregistrement du Moniteur de processus et enregistrez les données.

Pour analyser la trace du Moniteur de processus enregistrée, ouvrez-la avec Process Monitor. Sélectionnez Arborescence des processus sous Outils dans le menu pour voir si votre application démarre pendant l’enregistrement.

Sélectionnez le processus de calculatrice :

Capture d’écran de la fenêtre Arborescence des processus avec le processus de calculatrice sélectionné.

Pour vous concentrer sur le processus, cliquez avec le bouton droit sur le nom de l’application et sélectionnez Ajouter un processus à inclure un filtre.

Capture d’écran du processus de calculatrice cliqué avec le bouton droit et montrant Ajouter un processus pour inclure le filtre.

De même, vous pouvez ajouter un filtre manuellement pour votre ID de processus.

Capture d’écran de la fenêtre Filtre du moniteur de processus avec l’ID de processus défini.

Quittez l’arborescence des processus ou sélectionnez OK dans la fenêtre Filtre du moniteur de processus pour afficher les lignes capturées filtrées contenant votre processus. Dans cet exemple, le processus Calculator.exe démarre.

Capture d’écran de la fenêtre Moniteur de processus avec le processus de calculatrice sélectionné.

Ensuite, accédez à la fin de la capture du processus et recherchez un groupe d’événements de sortie de thread juste avant l’événement De sortie du processus.

Capture d’écran de la fenêtre Moniteur de processus avec le processus de calculatrice sélectionné et les événements de sortie de thread ci-dessus.

Vous pouvez également voir l’événement Process Create pour WerFault.exe. À ce stade, l’application a déjà atteint une condition irrécupérable et a appelé le gestionnaire d’erreurs par défaut.

Vous devez également remarquer que certains journaux d’événements liés aux incidents d’application sont également enregistrés.

Capture d’écran de la fenêtre Observateur d’événements montrant l’événement d’erreur d’application.

Capture d’écran de la fenêtre Observateur d’événements montrant l’événement 5961.

Vous pouvez commencer à partir de cette ligne pour voir si vous pouvez repérer les événements De résultats refusés d’accès.

Capture d’écran de la fenêtre Moniteur de processus avec un processus de calculatrice d’accès refusé sélectionné.

Dans ce cas, vous devez vérifier les autorisations de la clé de Registre suivante sur celles d’une machine de travail pour voir s’il existe des différences.

\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders

Dans cet exemple, tous les packages d’application ne disposent pas des autorisations de « lecture » dans les dossiers User Shell.

Capture d’écran des autorisations pour dossiers User Shell avec tous les packages d’application sélectionnés.

Cette opération peut également être effectuée à l’aide de PowerShell ou d’une invite de commandes.

Pour le système de travail :

Capture d’écran de l’applet de commande PowerShell pour l’autorisation Dossiers De l’interpréteur de commandes utilisateur pour un système opérationnel.

Pour le système non travail :

Capture d’écran de l’applet de commande PowerShell pour l’autorisation Dossiers De l’interpréteur de commandes utilisateur pour un système non-travail.

Si vous ne trouvez pas de problèmes d’autorisation à proximité susceptibles d’être suspects, vous pouvez toujours vérifier l’intégralité de la trace des blocs d’autorisations suspects. Tout d’abord, supprimez le filtre du processus de calculatrice en sélectionnant Réinitialiser le filtre sous le menu Filtre . Sélectionnez ensuite l’option Count Occurrences dans le menu Outils . Vous pouvez choisir le résultat dans le menu déroulant, puis sélectionner Nombre.

Une fois le filtrage terminé, vous pouvez double-cliquer sur la ligne « Accès refusé » pour afficher les événements filtrés :

Capture d’écran de la fenêtre Count Values Occurrences avec une ligne d’accès refusée sélectionnée.

Capture d’écran du processus calculatrice suivi de certains processus d’accès refusés.

Si vous utilisez la liste, tous les résultats « Accès refusé » ne provoquent pas l’échec du code.

En règle générale, tout ce qui demande « Tout accès » est souvent refusé, de sorte que vous pouvez les exclure de vos enquêtes. Vous pouvez le faire automatiquement en filtrant les événements contenant l’accès souhaité : Tous les accès sont les suivants :

Capture d’écran de la fenêtre Filtre du moniteur de processus avec le filtre Accès souhaité tout accès.

Dans cet exemple, le résultat ressemble à ce qui suit :

Capture d’écran de la fenêtre Moniteur de processus avec le processus StartMenuExperienceHost et Calculatrice sélectionné.

Capture d’écran de la fenêtre Moniteur de processus avec le processus StartMenuExperienceHost sélectionné.

L’ajout de l’autorisation appropriée pour « Tous les packages d’application » résout les deux problèmes en même temps pour les deux applications.

Parfois, il n’est pas possible de savoir quelle modification d’autorisation empêche le démarrage de l’application. Process Monitor capture uniquement certaines parties des activités de processus.

Si de nombreux ordinateurs sont affectés par le même problème, résolvez la résolution des problèmes en commençant par une nouvelle machine fraîchement installée et en ajoutant lentement vos stratégies jusqu’à ce que l’application ne démarre plus.

Si une seule machine est affectée, récupérez ou réinitialisez la machine. Si un seul utilisateur est affecté, recréez le profil de l’utilisateur.