Vue d'ensemble
Issu d'un fork de u/InternetStranger4You avec quelques changements considérables.
Structure
Le code est réparti entre deux modules :
Microsoft.Windows.PSGeneral
- Code d'encapsulation pour DISM et ReAgentC
- Tests étendus pour le redémarrage en attente
- Redimensionnement/recréation automatique de la partition Windows RE
Microsoft.Windows.PSMitSec
- Intégration de
Microsoft.Windows.PSGeneral
- Nouvelle tentative de
Add-DismPackage, si nécessaire
- Extension de la partition Windows RE, si nécessaire
Bien sûr, les modules sont fournis à des fins de démonstration. Si vous souhaitez les utiliser correctement, vous devez créer des fichiers manifeste et référencer les dépendances de manière appropriée.
Journalisation
PSFramework est utilisé à la place des cmdlets intégrées.
Remarques
Add-DismPackage semble toujours échouer une fois. Le message d'erreur lui-même indique qu'il pourrait s'agir d'une erreur temporaire (par exemple, une condition de concurrence lors de la mise à jour de la pile de services). Une nouvelle tentative après quelques secondes réussit toujours.
- Il a été suggéré que cela pourrait être dû aux mises à niveau de fonctionnalités sur place. J'ai remarqué cela sur une installation fraîche de Windows 10 21H2.
- Comme mentionné dans Structure, ce script redimensionne automatiquement la partition Windows Recovery (WinRE) (si spécifié). Par redimensionner, j'entends supprimer et recréer.
- Nécessite un disque GPT. Non pas qu'on ne puisse pas utiliser MBR, c'est juste que je n'ai pas eu envie de chercher comment faire. La plupart des disques devraient être en GPT à l'heure actuelle.
- Nécessite une partition WinRE existante. Cela permet de réutiliser le fichier Winre.wim existant. Le .wim n'est présent nulle part ailleurs en local. (Bien sûr, le script lui-même en nécessiterait un ; sinon, il n'y a rien à patcher.)
- Implémenter
Test-PSMitSec_CVE202241099
À FAIRE
Important
- Vérifier si le correctif est appliqué avant la mise à jour.
- Le réappliquer ne fera pas échouer le processus.
- L'application du correctif peut prendre quelques minutes. Microsoft Intune semble exécuter les scripts plusieurs fois, ce qui permettrait de gagner du temps.
- Lorsque
Add-DismPackage échoue la première fois, il génère une tonne de texte de barre de progression (très désordonné). Cela devrait être masqué.
- Ajouter un paramètre à
Resize-WinREPartition pour accepter Winre.wim depuis une source alternative (par exemple, une clé USB avec le média d'installation).
Moins important
- Améliorer les noms de variables/fonctions
- Supprimer les initialisations de variables inutiles (j'ai tendance à écrire PowerShell comme du C#)
- Déplacer certaines sorties de Verbose vers Host