Créer des paquets WAPT de mises à jour Windows avec des .msu¶
Indication
Pré-requis : pour construire des paquets WAPT, l’environnement de développement WAPT doit être installé ;
Entre les sorties de Patch Tuesday, Microsoft peut publier des KB supplémentaires ou des mises à jour critiques qui devront être rapidement poussées sur les machines.
À cette fin, le WAPT fournit un modèle de paquet pour les fichiers *.msu.
Dans cet exemple, nous utilisons la KB4522355 téléchargée du site officiel Microsoft.
télécharger le paquet KB depuis le catalogue Microsoft :
Créer un modèle de paquet MSU à partir de la console WAPT¶
créer un modèle de paquet WAPT à partir du fichier MSU téléchargé ;
Dans la console WAPT, cliquez sur
;sélectionnez le paquet MSU téléchargé et remplissez les champs requis ;
cliquer sur Créer et éditer …. (recommandé) pour lancer la personnalisation du paquet ;
L’éditeur de code intégré se lance en utilisant le code source du modèle MSU prédéfini.
comme d’habitude avec les paquets WAPT, tester - assembler - signer - charger sur le dépôt - affecter aux hôtes et c’est fait !!
si le KB est groupé avec le Patch Tuesday suivant, vous pourrez sélectionner les hôtes sur lesquels le paquet a été appliqué et oublier le paquet KB sur les hôtes ;
Créer un modèle de paquet MSU en ligne de commande¶
lancer un utilitaire en ligne de commande Windows cmd.exe en tant qu”Administrateur Local ;
instancier un paquet à partir du modèle MSU prédéfini ;
wapt-get make-template c:\download\file.msu <yourprefix>-kb4522355
exemple avec KB4522355 :
C:\WINDOWS\system32>wapt-get make-template C:\windows10.0-kb4522355-x64_af588d16a8fbb572b70c3b3bb34edee42d6a460b.msu tis-kb4522355 Using config file: C:\Users\user-adm\AppData\Local\waptconsole\waptconsole.ini Template created. You can build the WAPT package by launching C:\Program Files (x86)\wapt\wapt-get.exe build-package c:\waptdev\tis-kb4522355-wapt You can build and upload the WAPT package by launching C:\Program Files (x86)\wapt\wapt-get.exe build-upload c:\waptdev\tis-kb4522355-wapt
L’IDE configuré dans votre console se lance, voici un exemple de code source du modèle MSU prédéfini:
# -*- coding: utf-8 -*- from setuphelpers import * import re uninstallkey = [] def is_kb_installed(hotfixid): installed_update = installed_windows_updates() if [kb for kb in installed_update if kb['HotFixID' ].upper() == hotfixid.upper()]: return True return False def waiting_for_reboot(): # Query WUAU from the registry if reg_key_exists(HKEY_LOCAL_MACHINE,r"SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired") or \ reg_key_exists(HKEY_LOCAL_MACHINE,r"SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending") or \ reg_key_exists(HKEY_LOCAL_MACHINE,r'SOFTWARE\Microsoft\Updates\UpdateExeVolatile'): return True return False def install(): kb_files = [ 'windows10.0-kb4522355-x64_af588d16a8fbb572b70c3b3bb34edee42d6a460b.msu', ] with EnsureWUAUServRunning(): for kb_file in kb_files: kb_guess = re.findall(r'^.*-(KB.*)-',kb_file) if not kb_guess or not is_kb_installed(kb_guess[0]): print('Installing {}'.format(kb_file)) run('wusa.exe "{}" /quiet /norestart'.format(kb_file),accept_returncodes=[0,3010,2359302,-2145124329],timeout=3600) else: print('{} already installed'.format(kb_file)) if waiting_for_reboot(): print('A reboot is needed!')