Comment réparer les associations de fichiers EXE cassées sous Windows ?
Si vous essayez d’ouvrir des fichiers et que rien ne se passe, ou si vous obtenez ces étranges erreurs Windows du type « Ce fichier n’a pas d’application associée », c’est plutôt frustrant. Généralement, ce problème est dû à un virus qui endommage le registre ou à une tentative ratée d’« optimisation » de Windows. Le principal souci est que les entrées du registre qui indiquent à Windows comment gérer les fichiers *.exe ont été corrompues. Et bien sûr, Windows complique inutilement la réparation.
Sur certaines configurations, la solution par défaut ne suffit pas ; il peut être nécessaire de modifier légèrement le registre ou d’exécuter des commandes en mode sans échec (état de récupération).L’objectif est d’empêcher Windows de se tromper et d’ouvrir systématiquement le Bloc-notes ou Paint comme éditeur de texte. Cette procédure, bien que technique, est réalisable et vous évite de devoir réinstaller Windows pour corriger un registre corrompu.
Correction des associations de registre et de fichiers
Méthode 1 : Réinitialiser les associations de fichiers EXE via la ligne de commande
Cette solution est pratique car elle réinitialise directement les clés de registre qui définissent la façon dont Windows gère les fichiers *.exe. C’est un peu étrange, mais ça fonctionne, du moins la plupart du temps. Il vous faudra exécuter quelques commandes dans une invite de commandes ou PowerShell avec privilèges d’administrateur ; créer un fichier batch pour automatiser le processus peut donc s’avérer utile. Sur une configuration, cela a fonctionné immédiatement, sur une autre, j’ai dû redémarrer et réessayer.
- Créez un nouveau fichier texte sur votre bureau et collez-y la ligne suivante :
start cmd - Enregistrez-le sous le nom run.bat
- Faites un clic droit sur le fichier, puis choisissez « Exécuter en tant qu’administrateur ». Une invite du Contrôle de compte d’utilisateur (UAC) peut s’afficher ; confirmez-la.
- Une invite de commandes s’ouvre, puis collez-y l’intégralité de cette ligne de code :
reg delete HKEY_CLASSES_ROOT\.exe /ve /f reg add HKEY_CLASSES_ROOT\.exe /ve /d exefile /f reg delete HKEY_CLASSES_ROOT\exefile /ve /f reg add HKEY_CLASSES_ROOT\exefile /ve /d "Application" reg delete HKEY_CLASSES_ROOT\exefile\shell\open\command /ve /f reg add HKEY_CLASSES_ROOT\exefile\shell\open\command /ve /d "\"%1\" %*"
Cela rétablit l’association des fichiers *.exe à sa valeur par défaut. Un redémarrage devrait ensuite résoudre le problème. Si le registre est fortement corrompu, il est possible que le comportement soit anormal ; il faudra peut-être réessayer plusieurs fois ou redémarrer le système pour que tout rentre dans l’ordre.
Méthode 2 : Correction manuelle du registre en mode sans échec
Si le double-clic sur un fichier *.exe ne fonctionne toujours pas, vous devrez peut-être modifier directement le registre en mode sans échec. C’est fastidieux, mais il arrive que Windows soit tellement défaillant que le mode normal ne permette pas d’effectuer la réparation.
- Redémarrez en mode sans échec. La méthode la plus rapide consiste souvent à forcer l’arrêt trois fois pendant le processus de démarrage pour déclencher WinRE (environnement de récupération Windows).
- Une fois dans l’environnement de récupération Windows (WinRE), accédez à Dépannage > Options avancées > Paramètres de démarrage > Redémarrer. Appuyez ensuite sur F4 pour démarrer en mode sans échec.
- Ouvrez le fichier
regedit.exe. S’il ne se lance pas normalement (car, encore une fois, il s’agit d’un problème lié au fichier exe), vous pouvez le faire depuis l’invite de commandes dans WinRE ou depuis un lecteur de récupération. - Accédez à HKEY_CLASSES_ROOT\.exe et modifiez la valeur *Default* en exefile.
- Ensuite, accédez à HKEY_CLASSES_ROOT\exefile\shell\open\command et modifiez la valeur *Default* en
"%1" %*. - Vérifiez également la même valeur *Par défaut* dans HKCR\exefile\shell\open et HKCR\exefile.
- Redémarrez normalement et vérifiez si les fichiers *.exe se lancent maintenant.
Sur certaines machines, après avoir modifié le registre, il peut être judicieux d’exécuter une commande assoc.exe=exefiledans une invite de commandes administrateur pour nettoyer rapidement le tout.
Des vérifications supplémentaires pour consolider la réparation
- Exécutez
sfc /scannowcetteDISM /Online /Cleanup-Image /RestoreHealthcommande dans une invite de commandes en tant qu’administrateur pour résoudre les problèmes liés à l’image système et aux fichiers. - Vérifiez qu’aucun antivirus ni paramètre de sécurité n’empêche l’exécution des fichiers *.exe. Il arrive que les logiciels antivirus réagissent de manière excessive après une alerte à un logiciel malveillant et bloquent tous les fichiers exécutables par précaution.
- Vérifiez que la clé UserChoice dans HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.exe est soit absente, soit vide ; supprimez-la si elle est présente, car elle peut parfois forcer des associations incorrectes.
Que se passe-t-il si vous ne pouvez exécuter aucune commande ni aucun outil système ?
Si aucune fenêtre ne s’ouvre (ni regedit, ni cmd), alors il s’agit d’un cas où le mode sans échec ou un disque de récupération est absolument nécessaire. Car, bien sûr, Windows se doit de compliquer les choses, au-delà de la simple distinction entre virus et mise à jour défectueuse. Parfois, démarrer en mode sans échec et y effectuer les corrections du registre est la seule solution. Et sur certaines configurations, exécuter ces corrections dans un environnement de récupération ou à partir d’une clé USB bootable peut s’avérer salvateur.
Windows ne peut pas exécuter les fichiers EXE depuis un partage réseau ? Voici l’explication.
Si l’exécution locale des fichiers EXE fonctionne mais que leur lancement depuis un partage réseau génère une erreur (par exemple : « Windows ne peut pas accéder à \\serveur\partagé\fichier.exe »), le problème provient probablement d’un souci d’autorisations ou de protocole SMB. Le message d’erreur exact peut vous orienter, mais d’après mon expérience, il s’agit généralement d’un problème d’autorisations ou d’une version obsolète du protocole SMB.
- Vérifiez les autorisations du dossier partagé. Assurez-vous que votre utilisateur dispose des autorisations de lecture et d’exécution via l’Explorateur de fichiers > Propriétés > Sécurité. Parfois, seul l’accès en lecture est accordé, ce qui est insuffisant pour exécuter un fichier.
- Modifiez les autorisations manuellement ou via PowerShell avec des commandes telles que :
- Essayez d’exécuter l’application en mode de compatibilité : cliquez avec le bouton droit sur le fichier, allez dans Propriétés > Compatibilité, choisissez le mode Windows 8, puis réessayez à partir du partage réseau.
icacls "\\server\shared" /grant YourUser:(RX)
Autre particularité : les protocoles SMB. Les appareils plus anciens ou les NAS ne prennent peut-être en charge que SMBv1, désormais désactivé par défaut pour des raisons de sécurité. Si votre appareil exécute Windows Server 2003 ou s’il s’agit d’un ancien NAS, vous pourriez rencontrer des erreurs de type 0xc00000baviolation d’accès. Utilisez PowerShell pour vérifier les versions SMB activées :
Get-SmbServerConfiguration | Select EnableSMB2Protocol
Si SMBv2 ou SMBv3 est désactivé, réactivez-le avec :
Set-SmbServerConfiguration -EnableSMB2Protocol $true
Attention cependant : l’activation de SMB1 présente des risques de sécurité. Il est donc fortement conseillé de mettre à niveau le matériel ou le système d’exploitation du serveur afin qu’il prenne en charge les versions plus récentes de SMB. Utiliser des versions obsolètes de SMB, c’est s’exposer à des problèmes.