Après la mise à jour cumulative de novembre 2024, Windows 10 peut refuser d’ouvrir PowerShell (y compris en Administrateur) et, chez certains, Dreamweaver 8 cesse aussi de démarrer. Voici un guide concret, exhaustif et actionnable pour diagnostiquer et corriger le problème.
Contexte et symptômes
Le comportement le plus courant est le suivant :
- Un clic sur Windows PowerShell (mode standard ou Administrateur) ne lance rien. Aucun message d’erreur n’apparaît, ou bien la fenêtre se ferme immédiatement.
- Dans Windows Terminal, l’onglet PowerShell échoue à s’ouvrir, alors que l’invite CMD fonctionne encore.
- Certains programmes anciens, notamment Dreamweaver 8, ne démarrent plus non plus.
Dans de nombreux cas, la cause est une corruption de la configuration .NET Framework 4.x (dont dépend PowerShell 5.1 livré avec Windows 10) : le fichier machine.config
peut avoir été endommagé pendant ou après l’installation des mises à jour. D’autres causes possibles incluent des fichiers système altérés, une fonctionnalité Windows incohérente, ou une mise à jour cumulative défectueuse.
Résumé express des solutions proposées
Méthode | Description rapide | Quand l’utiliser |
---|---|---|
Remplacer machine.config | Accédez à C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config ; renommez machine.config en machine.config.bak ; copiez machine.config.default et renommez la copie en machine.config ; relancez PowerShell. | Si la mise à jour a corrompu la configuration .NET. |
Vérifier et réparer les fichiers système | Depuis une invite CMD administrateur :sfc /scannow DISM /Online /Cleanup-Image /CheckHealth DISM /Online /Cleanup-Image /ScanHealth DISM /Online /Cleanup-Image /RestoreHealth | Quand Windows signale des erreurs de fichiers système, ou si la méthode précédente échoue. |
Désactiver / réactiver la fonctionnalité PowerShell | Ouvrez Fonctionnalités Windows (appwiz.cpl → « Activer/Désactiver des fonctionnalités Windows »). Décochez Windows PowerShell (ou « Windows PowerShell 2.0 » selon l’édition), validez et redémarrez. Recocher ensuite l’option puis redémarrer à nouveau. | Pour forcer Windows à réinstaller les composants PowerShell. |
Installer PowerShell 7 | Installez la version moderne de PowerShell (côte à côte avec 5.1) pour disposer rapidement d’un shell fonctionnel et profiter des nouveautés. | Si vous avez besoin d’un shell opérationnel immédiatement ou si vous souhaitez migrer vers une version plus récente. |
Diagnostic rapide : isolez la cause en 5 minutes
- Tester le lancement sans profil
Ouvrez Exécuter (Win+R) → tapez :"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -NoLogo
Si cela s’ouvre, votre profil PowerShell est en cause. Renommez-le depuis CMD :ren "%USERPROFILE%\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1" profile.bak
- Vérifier le chemin et l’exécutable
Dans CMD :where powershell
Assurez-vous que l’entrée%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe
existe. Testez aussi le 32 bits :%SystemRoot%\SysWOW64\WindowsPowerShell\v1.0\powershell.exe -NoLogo
- Observer les journaux d’événements
Ouvrez Observateur d’événements → Journaux Windows → Application. Filtrez sur les erreurs .NET Runtime, Application Error ou PowerShell au moment de l’échec. Des messages du type « Configuration system failed to initialize » pointent souvent versmachine.config
. - Contrôler machine.config
Ouvrez dans le Bloc‑notes :C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config\machine.config
Le fichier doit être un XML valide (pas vide, pas de caractères bizarres avant<?xml
). Sinon, passez à la méthode 1. - Exclure une politique de blocage
Si vous êtes en environnement d’entreprise : vérifiez AppLocker / Software Restriction Policies (secpol.msc
) et les règles de Réduction de la surface d’attaque (ASR) dans Sécurité Windows. Des règles trop strictes peuvent empêcherpowershell.exe
de se lancer.
Procédures détaillées
Remplacer un machine.config
corrompu
But : rétablir une configuration .NET propre, condition sine qua non pour le démarrage de PowerShell 5.1.
Pré‑requis : session avec droits administrateur.
- Ouvrez CMD en administrateur (Win+X → Invite de commandes (Admin) ou Terminal (Admin) → profil Invite de commandes).
- Exécutez :
cd /d C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config takeown /f machine.config icacls machine.config /grant administrators:F ren machine.config machine.config.bak copy machine.config.default machine.config
- Répétez l’opération côté 32 bits (utile pour d’autres applications) :
cd /d C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config takeown /f machine.config icacls machine.config /grant administrators:F ren machine.config machine.config.bak copy machine.config.default machine.config
- Testez :
"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoLogo -NoProfile -Command "$PSVersionTable"
Et si machine.config.default
est absent ? Passez directement à la section Vérifier et réparer les fichiers système. Son absence indique une image .NET incomplète.
Pourquoi cela fonctionne ? PowerShell 5.1 s’appuie sur le moteur .NET Framework. Un machine.config
mal formé ou incomplet empêche le runtime de se charger, d’où un crash immédiat, souvent silencieux.
Vérifier et réparer les fichiers système (SFC/DISM)
But : corriger les corruptions de fichiers Windows et de l’image de maintenance.
- Ouvrez CMD (Admin) et exécutez :
sfc /scannow DISM /Online /Cleanup-Image /CheckHealth DISM /Online /Cleanup-Image /ScanHealth DISM /Online /Cleanup-Image /RestoreHealth
- Redémarrez, puis retestez PowerShell.
- Option hors‑ligne (si
RestoreHealth
échoue) : montez une ISO de Windows 10 (lettre supposéeD:
) et exécutez :DISM /Get-WimInfo /WimFile:D:\sources\install.wim DISM /Online /Cleanup-Image /RestoreHealth /Source:wim:D:\sources\install.wim:1 /LimitAccess
Remplacez:1
par l’index correspondant à votre édition si besoin.
Désactiver / réactiver la fonctionnalité PowerShell
Cette manipulation force Windows à réinscrire les composants. Selon les éditions de Windows 10, l’entrée visible peut s’intituler Windows PowerShell 2.0 et/ou Windows PowerShell ISE. Si seule la v2.0 est listée, manipulez-la (désactivation → redémarrage → réactivation) ; le but est de forcer une remise à plat des binaires/assemblages liés.
- Appuyez sur Win+R, tapez
appwiz.cpl
, validez. - Cliquez sur « Activer ou désactiver des fonctionnalités Windows ».
- Décochez Windows PowerShell (ou Windows PowerShell 2.0), validez, redémarrez.
- Revenez dans le même menu, recochez la case, redémarrez à nouveau.
Astuce : si vous préférez la ligne de commande, vous pouvez recourir à DISM
pour la v2.0 :DISM /Online /Disable-Feature /FeatureName:MicrosoftWindowsPowerShellV2Root
puis :DISM /Online /Enable-Feature /FeatureName:MicrosoftWindowsPowerShellV2Root /All
Installer PowerShell 7 (solution de contournement ou migration)
PowerShell 7 s’installe côte à côte avec PowerShell 5.1. C’est un excellent moyen de retrouver un shell fonctionnel immédiatement, tout en bénéficiant d’améliorations majeures.
- Via winget (recommandé) :
winget install --id Microsoft.PowerShell -e
- Via le Microsoft Store : recherchez « PowerShell » et installez la version publiée par Microsoft.
- Après installation : ouvrez Windows Terminal, déroulez la flèche → Paramètres → définissez PowerShell 7 comme profil par défaut si souhaité.
Note : même si PowerShell 7 fonctionne, réparez tout de même PowerShell 5.1 si vous avez des scripts hérités ou des outils qui en dépendent.
Compléments utiles
- Réparer .NET Framework : si la méthode « machine.config » ne suffit pas, exécutez l’utilitaire Microsoft .NET Framework Repair Tool puis redémarrez.
- Mise à jour cumulative défectueuse : si le souci a commencé juste après l’installation, désinstallez l’update incriminée (Paramètres → Windows Update → Historique) ou, en administrateur :
wusa /uninstall /kb:<NUMERO_KB> /promptrestart
- Restauration Système : revenez à un point de restauration daté d’avant la mise à jour.
- Réparation sur place (In‑Place Upgrade) : montez une ISO de Windows 10, lancez
setup.exe
, choisissez « Mettre à niveau ce PC maintenant », désactivez le téléchargement des mises à jour pendant l’assistant pour une réparation plus propre, et conservez fichiers & applications. - Dreamweaver 8 : l’application (2005) est 32 bits et très ancienne. Exécutez‑la en mode de compatibilité Windows XP SP3 et « Exécuter en tant qu’administrateur ». Songez sérieusement à migrer vers une version moderne (Creative Cloud) ou à l’isoler dans une VM.
- Alternative temporaire : utilisez Windows Terminal (profil Invite de commandes) ou lancez
cmd.exe
pour vos tâches urgentes.
Scénarios & solutions correspondant aux symptômes
Symptôme | Cause probable | Solution cible |
---|---|---|
PowerShell ne s’ouvre pas, Dreamweaver 8 non plus | Configuration .NET 4.x corrompue (machine.config ) | Remplacer machine.config (64 bits et 32 bits) puis SFC/DISM |
PowerShell échoue mais d’autres apps .NET fonctionnent | Fichiers système spécifiques altérés, profil PS cassé | -NoProfile pour tester ; puis SFC / DISM |
Échec immédiat avec événements .NET Runtime | XML invalide / doublon de sections dans machine.config | Remplacer machine.config |
PowerShell était OK avant une update | Mise à jour cumulative problématique | Désinstaller la KB ; restauration système ; réparation sur place |
PowerShell ne démarre que sous un autre compte | Profil utilisateur corrompu, GPO/ASR ciblant l’utilisateur | Nouveau profil local ; audit des stratégies (AppLocker/ASR) |
where powershell ne trouve rien | PATH altéré ou fichier déplacé | Restaurer PATH système et vérifier %SystemRoot%\System32\WindowsPowerShell\v1.0 |
Procédure guidée pas‑à‑pas (sécurisée)
- Créer un point de restauration (recommandé).
- Essayer
-NoProfile
. Si OK, nettoyez/renommez votre profil. - Remplacer
machine.config
(64 bits puis 32 bits). - Exécuter SFC / DISM jusqu’à
RestoreHealth
sans erreur. - Redémarrer et valider que PowerShell s’ouvre.
Validation (dans PowerShell) :$PSVersionTable Get-Command powershell.exe | Format-List *
- En cas d’échec : tester la désactivation/réactivation de la fonctionnalité PowerShell, envisager l’installation de PowerShell 7, puis — si nécessaire — la désinstallation de la KB fautive ou une réparation sur place.
Notes pour les environnements d’entreprise
- AppLocker / SRP : créez une règle d’autorisation explicite pour
%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe
et son équivalentSysWOW64
si vous contrôlez aussi les 32 bits. - ASR (Defender) : ajustez les règles qui bloquent l’exécution de scripts et la création de processus par PowerShell le temps du diagnostic.
- Déploiement correctif : vous pouvez pousser un script CMD via GPO/SCCM pour restaurer
machine.config
avant l’exécution de vos scripts PowerShell.
Exemple de script CMD prêt à déployer
@echo off
setlocal EnableExtensions
REM -- Restaure machine.config (64 et 32 bits) à partir de machine.config.default --
for %%P in ("C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Config" "C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config") do (
if exist "%%~P\machine.config" (
takeown /f "%%~P\machine.config" >nul
icacls "%%~P\machine.config" /grant administrators:F >nul
copy /y "%%~P\machine.config" "%%~P\machine.config.bak-%date:~-4%%date:~3,2%%date:~0,2%-%time::=-%.xml" >nul
del /f /q "%%~P\machine.config"
)
if exist "%%~P\machine.config.default" (
copy /y "%%~P\machine.config.default" "%%~P\machine.config" >nul
)
)
REM -- Vérifie la présence de powershell.exe dans System32 --
where "%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" >nul
if errorlevel 1 (
echo [AVERTISSEMENT] powershell.exe introuvable dans System32.
) else (
echo [OK] PowerShell devrait fonctionner a nouveau (testez manuellement).
)
endlocal
Questions fréquentes
Q : Mon profil PowerShell peut‑il empêcher l’ouverture ?
Oui. Un profil ($PROFILE
) défectueux peut planter la session. Testez avec -NoProfile
, puis renommez le profil utilisateur si nécessaire.
Q : Pourquoi Dreamweaver 8 plante‑t‑il aussi ?
Parce qu’il dépend de composants 32 bits et de bibliothèques système anciennes. Une corruption .NET ou une incompatibilité post‑mise‑à‑jour peut l’affecter. Essayez le mode de compatibilité XP SP3, exécution en administrateur, et envisagez une mise à niveau.
Q : Installer PowerShell 7 résout‑il tout ?
Cela vous rend opérationnel rapidement, mais si vous avez des scripts hérités conçus pour PowerShell 5.1, réparez également cette version.
Q : Comment vérifier que tout est revenu à la normale ?
Dans PowerShell, exécutez :$PSVersionTable
pour vérifier la version ; Get-ExecutionPolicy -List
pour les stratégies ; essayez un script simple (Get-Process
) pour valider.
Conseils de prévention
- Sauvegarder
machine.config
après une installation propre et avant de déployer des mises à jour majeures. - Surveiller les journaux après Windows Update : un œil sur Journaux Windows > Application permet d’anticiper.
- Standardiser la configuration .NET et PowerShell via scripts d’audit de poste.
Conclusion
La panne « Impossible d’ouvrir PowerShell (Admin) sous Windows 10 » consécutive à la mise à jour de novembre 2024 se résout, dans la majorité des cas, en restaurant machine.config
puis en réparant l’image système avec SFC/DISM. Si nécessaire, réinitialisez les fonctionnalités PowerShell et installez PowerShell 7 pour retrouver un shell fonctionnel immédiatement. En cas de mise à jour fautive, désinstallez l’update ou procédez à une réparation sur place. Vous disposerez ainsi d’un environnement robuste pour vos scripts et outils — anciens comme modernes.
Annexe : rappel des commandes utiles
- Test rapide :
"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -NoLogo
- Localisation :
where powershell
- SFC / DISM :
sfc /scannow DISM /Online /Cleanup-Image /CheckHealth DISM /Online /Cleanup-Image /ScanHealth DISM /Online /Cleanup-Image /RestoreHealth
- Désinstaller une KB :
wusa /uninstall /kb:<NUMERO_KB> /promptrestart
- Installer PowerShell 7 (winget) :
winget install --id Microsoft.PowerShell -e
Bonnes pratiques pour Dreamweaver 8 sur Windows 10
- Activer le mode de compatibilité : clic droit sur le raccourci → Propriétés → Compatibilité → Windows XP SP3 + « Exécuter en tant qu’administrateur ».
- Désactiver la mise à l’échelle DPI haute si l’interface est floue.
- Installer les composants d’exécution requis (runtimes Visual C++ historiques) si l’application se ferme sans message.
- Envisager une VM dédiée (Windows 7/10 32 bits) pour isoler l’application et maîtriser les mises à jour.
Checklist finale
- PowerShell s’ouvre en mode standard et Administrateur.
$PSVersionTable
renvoie des informations cohérentes.- Les erreurs .NET Runtime ont disparu de l’Observateur d’événements.
- Vos scripts et outils (dont Dreamweaver 8 le cas échéant) fonctionnent à nouveau.