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.
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 :
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 :
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.
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é
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.
Si vous démarrez l’enregistrement sous forme de mémoire virtuelle, vous devez enregistrer l’enregistrement avant de quitter process Monitor.
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.
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 :
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.
De même, vous pouvez ajouter un filtre manuellement pour votre ID de processus.
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.
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.
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.
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.
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.
Cette opération peut également être effectuée à l’aide de PowerShell ou d’une invite de commandes.
Pour le système de travail :
Pour le 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 :
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 :
Dans cet exemple, le résultat ressemble à ce qui suit :
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.