⚡ đŸȘŠ Microsoft enterre PowerShell 2.0 : adieu douce obsolescence, bonjour modernitĂ©

Il fut un temps oĂč PowerShell 2.0 rĂ©gnait en maĂźtre sur nos postes. 2009, les dino-scripts gambadaient, Get-Processsuffisait Ă  se sentir DevOps, et les malwares pouvaient dĂ©rouler des .ps1 non signĂ©s sans demander la carte d’identitĂ©.
AoĂ»t 2025 : Microsoft retire officiellement PowerShell 2.0. Pas de fleurs, pas d’hommage national — juste un “SupprimĂ© des fonctionnalitĂ©s”. Le vieux tournevis est parti, place Ă  la perceuse connectĂ©e.


đŸ•°ïžâœš Ce qui Ă©tait bien avant (PowerShell 2.0)

  • Compat’ en bĂ©ton : tournait partout, de Windows 7 Ă  Server 2008 R2.
  • SimplicitĂ© rustique : pas de JSON, pas de REST, juste des cmdlets basiques et de la logique.
  • TolĂ©rant au chaos : scripts non signĂ©s ? Pas de souci. Modules antiques ? Pareil.
  • PrĂ©visible : pas de mise Ă  jour intempestive, pas d’API qui change tous les mois.
  • Culture commune : tout l’écosystĂšme IT avait au moins un script qui ne marchait que sous 2.0 — un classique.

Verdict : comme Internet Explorer 6
 dangereux mais “indispensable” pour une poignĂ©e d’outils qu’on n’a jamais pris le temps de réécrire.


🔧🔁 Ce qui change (PowerShell 7.x et le monde moderne)

  • Multiplateforme : Windows, Linux, macOS — mĂȘme script, trois cibles (et trois fois plus de tests).
  • SĂ©curité : politiques d’exĂ©cution strictes, signatures, intĂ©gration Defender/AMS, ConstrainedLanguageMode.
  • Perf’ : pipeline optimisĂ©, parallĂ©lisme natif (ForEach-Object -Parallel).
  • ÉcosystĂšme : PowerShell Gallery (Install-Module), versions qui bougent, modules cloud Ă  jour.
  • Interop : JSON/YAML/REST en premiĂšre classe, Invoke-RestMethod qui ne pleure plus.
  • DevOps-ready : CI/CD (GitHub Actions, Azure DevOps, Jenkins), conteneurs, scripts reproductibles.
  • .NET moderne : basĂ© sur .NET (Core) 6/8 — plus rapide, plus portable.

🚀🔼 Ce que ce sera maintenant

  1. Migration obligatoire : 2.0 n’étant plus livrĂ©, vos scripts devront viser 5.1 ou 7.x.
  2. Hybride raisonnable : 5.1 reste le “Windows natif”, 7.x devient le “standard portable”.
  3. Discipline : signature des scripts, modules versionnés, revue sécurité.
  4. Cloud first : M365, Azure, Graph, Exchange Online — l’autoroute est goudronnĂ©e jusqu’à Redmond.
  5. Moins d’hĂ©rĂ©sie : adieux aux cmdlets bizarres non maintenues ; bonjour aux modules officiels.

✅📈 Les plus

  • Beaucoup plus sĂ»r : moins de surface d’attaque, meilleure traçabilitĂ©.
  • Plus rapide : parallĂ©lisme et perf’ en hausse.
  • Plus actuel : JSON/REST natifs, API modernes, tooling VS Code.
  • Portable : mĂȘme base de code sur serveurs Windows et Linux.
  • ÉcosystĂšme vivant : modules maintenus, gallery centralisĂ©e.

âŒđŸ§© Les moins

  • Compat’ cassĂ©e : certains vieux scripts/modules ne passeront pas sans refonte.
  • Courbe d’apprentissage : nouvelles syntaxes, bonnes pratiques Ă  intĂ©grer.
  • Dette technique exposĂ©e : les “quick & dirty” de 2009 remontent Ă  la surface.
  • Gouvernance : signature, politiques d’exĂ©cution, pipeline de dĂ©ploiement Ă  formaliser.

đŸ§Ș🔍 Ce qui change concrĂštement (avant / aprĂšs)

Filtrer des services

  • 2.0 :powershellCopierModifierGet-Service | Where-Object { $_.Status -eq "Running" }
  • 7.x (plus lisible et rapide) :
    powershell
    Get-Service | Where Status -eq Running

Paralléliser des tùches

  • 2.0 : non, sauf bricolage lourd / jobs manuels
  • 7.x :
    powershell
    1..5 | ForEach-Object -Parallel { "TĂąche $_ - $(Get-Date)" }

Consommer une API JSON

  • 2.0 : verbeux, fragile
  • 7.x :
    powershell
    $data = Invoke-RestMethod -Uri "https://api.example.com/items" $data | Where Price -gt 100 | Select Name, Price

Gestion de modules

  • 2.0 : copie manuelle, GAC, folklore
  • 7.x :
    powershell
    Install-Module Microsoft.Graph -Scope CurrentUser Import-Module Microsoft.Graph

Sécurité / exécution

  • 2.0 : scripts non signĂ©s ? “Passe.”
  • 7.x : politique d’exĂ©cution, signature recommandĂ©e, journalisation renforcĂ©e.

🧭📋 Plan de migration express (pragmatique et pas chiant)

  1. InventaireÂ đŸ—‚ïž
    • Liste les scripts qui tournent encore en 2.0 (tĂąches planifiĂ©es, GPO, outils tiers).
    • Identifie les modules old-school (Exchange on-prem, WMI legacy, etc.).
  2. Tests rapides đŸ§Ș
    • Essaie en 5.1 puis en 7.x.
    • Note ce qui casse : Where-Object, chemins, encodage, modules non portĂ©s.
  3. Refactor minimal ✂
    • Remplace les vieux patterns (Where-Object { $_.x }) par leurs versions modernes.
    • Évite les dĂ©pendances WMI obsolĂštes si un module CIM/REST existe.
  4. SĂ©curitĂ©Â đŸ”
    • Mets Set-ExecutionPolicy RemoteSigned (ou AllSigned selon ta politique).
    • Signe les scripts de prod, active la journalisation (transcription, module logging).
  5. Packaging & CIÂ đŸ—ïž
    • Versionne tes scripts (Git), ajoute des tests basiques (Pester).
    • DĂ©ploie via pipeline (GitHub Actions/Azure DevOps) — fini le copier-coller RDP.
  6. Conduite du changement 📣
    • Mini-guide utilisateur (“les 10 diffĂ©rences qui piquent”),
    • Sprint de nettoyage technique,
    • Tableau de bord migration (ce qui reste Ă  porter / remplacĂ© / supprimĂ©).

🧰🆚 Tableau minute “Avant vs Maintenant”

đŸ§± ThĂšme⏳ PowerShell 2.0🚀 PowerShell 7.x
SécuritéLaxisteSignatures, politique, journaux
Perf’LenteParallùle, .NET moderne
API/FormatsXML/WMIJSON, REST, YAML, Graph
ModulesLocaux, datésGallery, versionnés, CI
PortabilitéWindows onlyWindows + Linux + macOS
DevOpsÀ la mainPipelines standard, Pester

🎯📌 Conclusion (sarcasme dosĂ©, cafĂ© serrĂ©)

Microsoft n’a pas “cassĂ© ce qui marchait” : il a retirĂ© ce qui mettait des portes ouvertes dans vos SI.
PowerShell 7.x est objectivement meilleur â€” plus rapide, plus sĂ»r, plus adaptĂ© aux stacks 2025. Oui, ça demande du boulot : réécrire deux-trois dinosaures, signer des scripts, documenter un pipeline. Mais c’est un effort qu’on aurait dĂ» faire hier.

Morale : si votre prod dĂ©pend encore d’un script 2.0 trouvĂ© sur un forum moldave en 2011, la panne n’est pas “à cause de Microsoft”. Elle est Ă  cause du temps qui passe.


đŸ› ïžđŸ“Ž Bonus : snippet “prĂȘt Ă  migrer”

powershell
# Lancer un script en 7.x si présent, sinon fallback 5.1
$ps7 = "${env:ProgramFiles}\PowerShell\7\pwsh.exe"
if (Test-Path $ps7) { & $ps7 -File ".\run.ps1" } else { powershell.exe -File ".\run.ps1" }

Avec Microsoft, c’est toujours un peu comme recevoir un cadeau emballĂ© par un magicien :
tu sais qu’il y a quelque chose dedans, tu sais que ça brille
 mais tu n’es pas sĂ»r que ce sera vraiment ce que tu voulais.

PowerShell 7.x a le potentiel d’ĂȘtre un vrai upgrade :

  • plus rapide,
  • plus sĂ»r,
  • plus “cloud-ready”,
  • et potentiellement moins sujet aux failles “Made in Legacy 2009ℱ”.

Mais
 on connaüt la chanson :

  • migration parfois douloureuse,
  • scripts qui crient Ă  la mort,
  • dĂ©pendances tierces qui cassent,
  • et nouveautĂ©s qui arrivent avec leur lot de bugs de jeunesse.

Bref, Ă§a peut ĂȘtre bien, mais comme on dit en IT : Â«Â On fait confiance
 mais on garde un backup et un rollback plan.Â Â»đŸ˜Ž

⚡ đŸȘŠ Microsoft enterre PowerShell 2.0 : adieu douce obsolescence, bonjour modernitĂ©
Partager cet article : Twitter LinkedIn WhatsApp

đŸ–‹ïž PubliĂ© sur SecuSlice.com

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Retour en haut