Des applications anciennes peuvent ne plus fonctionner correctement sous Windows 11 24H2 et 25H2. Microsoft reconnaît qu’un changement appliqué à JScript, pensé pour renforcer la sécurité, peut perturber certains usages hérités.

 Windows 11 : si vos vieilles applications plantent, le problème vient peut-être de Microsoft. © sdx15 / Shutterstock
Windows 11 : si vos vieilles applications plantent, le problème vient peut-être de Microsoft. © sdx15 / Shutterstock

Microsoft reconnaît un problème de compatibilité introduit dans Windows 11 24H2 et conservé dans 25H2. En remplaçant par défaut l’ancien moteur JScript par une version plus stricte, pensée pour limiter certains risques de sécurité, l’éditeur a modifié la manière dont les scripts conservent leurs définitions et leur contexte d’exécution. Des applications héritées, encore dépendantes de ce comportement, peuvent donc ne plus fonctionner correctement depuis un an. Un correctif existe, mais il doit être activé manuellement dans le Registre, au cas par cas ou pour l’ensemble du système.

BitdefenderBitdefender
8.4/10

Sponsorisé

La solution tout-en-un pour protéger votre entreprise

Votre petite entreprise a de grandes ambitions. Protégez-là contre les pirates. Et développez sereinement votre activité !

Sponsorisé

Windows 11 change JScript, les anciennes applis trinquent

Le problème concerne donc JScript, l’ancien moteur de script de Microsoft, encore sollicité par des applications métier, des composants web embarqués ou des scripts hérités. Depuis Windows 11 24H2, puis dans Windows 11 25H2, Microsoft s’appuie sur jscript9legacy.dll à la place de l’ancien moteur jscript9.dll. L’objectif était de durcir l’exécution des scripts, en remplaçant un composant plus ancien par une version pensée pour corriger plusieurs vulnérabilités et renforcer la sécurité du système.

Sauf que cette évolution a aussi modifié un fonctionnement dont dépendaient encore certains logiciels anciens. Jusqu’ici, des fonctions, définitions globales ou éléments de contexte chargés par un premier script pouvaient rester disponibles pour les scripts exécutés ensuite. Avec jscript9legacy.dll, cette persistance n’est plus active par défaut. Une application qui s’appuyait sur ce fonctionnement historique peut donc perdre, en cours d’exécution, des éléments qu’elle s’attendait à retrouver plus tard.

Microsoft indique avoir corrigé le problème via la mise à jour KB5077241, mais le réglage de compatibilité n’est pas activé automatiquement. Les administrateurs doivent donc restaurer eux-mêmes la persistance du contexte JScript, soit pour les processus concernés, soit pour toute la machine. Un choix qui permet de limiter l’exposition aux seuls logiciels concernés, mais qui demande de savoir exactement quelle application dépend encore de ce fonctionnement hérité.

Un correctif à activer soi-même dans le Registre

Avant toute modification, prudence d’usage. La manipulation passe par le Registre Windows, qu’il est conseillé de sauvegarder avant intervention afin de pouvoir revenir en arrière en cas de problème. Il est aussi préférable de cibler uniquement les applications concernées lorsque c’est possible. L’activation globale reste possible, mais elle restaure ce fonctionnement hérité pour tous les processus, ce qui peut aller à l’encontre du durcissement de sécurité voulu au départ.

La clé à créer se trouve dans le Registre Windows, à l’emplacement suivant.

HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_ENABLE_PERSISTENCE

Pour la créer en ligne de commande, ouvrez l’Invite de commandes ou PowerShell en mode administrateur, puis exécutez la commande suivante.

reg add "HKLM\Software\Policies\Microsoft\Internet Explorer\Main\FeatureControl\FEATURE_ENABLE_PERSISTENCE"

Une fois la clé créée, il faut ajouter une valeur DWORD 32 bits.

Le correctif déployé par Microsoft concernant JScript doit être appliqué manuellement dans le REgistre. © Microsoft

Pour activer la persistance uniquement pour une application précise, créez sous cette clé une valeur portant le nom exact du processus concerné, par exemple nomdelapplication.exe, puis attribuez-lui la valeur 1.

Pour activer la persistance pour tous les processus, créez sous cette même clé une valeur nommée *, puis attribuez-lui également la valeur 1.

Dans les deux cas, la valeur doit être de type DWORD 32 bits et réglée sur 1. Après modification, fermez puis relancez l’application concernée, et redémarrez Windows si le changement n’est pas pris en compte immédiatement.

  • Refonte graphique de l'interface réussie
  • Snap amélioré
  • Groupes d'ancrage efficaces
8 / 10