Impossible d’ouvrir PowerShell (Admin) sur Windows 10 après mise à jour : diagnostic et solutions

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.

Sommaire

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éthodeDescription rapideQuand l’utiliser
Remplacer machine.configAccé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èmeDepuis 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é PowerShellOuvrez 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 7Installez 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

  1. 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
  2. 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
  3. Observer les journaux d’événements
    Ouvrez Observateur d’événementsJournaux WindowsApplication. 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 vers machine.config.
  4. 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.
  5. 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êcher powershell.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.

  1. Ouvrez CMD en administrateur (Win+XInvite de commandes (Admin) ou Terminal (Admin) → profil Invite de commandes).
  2. 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
  3. 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
  4. 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.

  1. Ouvrez CMD (Admin) et exécutez :
    sfc /scannow DISM /Online /Cleanup-Image /CheckHealth DISM /Online /Cleanup-Image /ScanHealth DISM /Online /Cleanup-Image /RestoreHealth
  2. Redémarrez, puis retestez PowerShell.
  3. Option hors‑ligne (si RestoreHealth échoue) : montez une ISO de Windows 10 (lettre supposée D:) 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.

  1. Appuyez sur Win+R, tapez appwiz.cpl, validez.
  2. Cliquez sur « Activer ou désactiver des fonctionnalités Windows ».
  3. Décochez Windows PowerShell (ou Windows PowerShell 2.0), validez, redémarrez.
  4. 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:&lt;NUMERO_KB&gt; /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ômeCause probableSolution cible
PowerShell ne s’ouvre pas, Dreamweaver 8 non plusConfiguration .NET 4.x corrompue (machine.config)Remplacer machine.config (64 bits et 32 bits) puis SFC/DISM
PowerShell échoue mais d’autres apps .NET fonctionnentFichiers système spécifiques altérés, profil PS cassé-NoProfile pour tester ; puis SFC / DISM
Échec immédiat avec événements .NET RuntimeXML invalide / doublon de sections dans machine.configRemplacer machine.config
PowerShell était OK avant une updateMise à jour cumulative problématiqueDésinstaller la KB ; restauration système ; réparation sur place
PowerShell ne démarre que sous un autre compteProfil utilisateur corrompu, GPO/ASR ciblant l’utilisateurNouveau profil local ; audit des stratégies (AppLocker/ASR)
where powershell ne trouve rienPATH 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)

  1. Créer un point de restauration (recommandé).
  2. Essayer -NoProfile. Si OK, nettoyez/renommez votre profil.
  3. Remplacer machine.config (64 bits puis 32 bits).
  4. Exécuter SFC / DISM jusqu’à RestoreHealth sans erreur.
  5. Redémarrer et valider que PowerShell s’ouvre.
    Validation (dans PowerShell) :
    $PSVersionTable Get-Command powershell.exe | Format-List *
  6. 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 équivalent SysWOW64 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ésCompatibilité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.
Sommaire