6. Utiliser les WAPT Windows Update Agent (WAPTWUA) ¶
Indication
WAPT peut gérer les mises à jours Windows sur vos équipements et remplacer les mises à jour automatiques ou un serveur WSUS.
Note
WAPTWUA fonctionne avec l’API WUA de Windows.
Les fonctions internes de WAPTWUA sont basées sur l’API WUA. Pour plus d’informations : https://docs.microsoft.com/en-us/windows/win32/wua_sdk/using-the-windows-update-agent-api.
Attention
Le WAPTWUA ne peut pas fonctionner en même temps que le store Windows.
6.1. Principe de fonctionnement¶
Vidéo de démonstration :
Chaque Patch Tuesda, le serveur WAPT télécharge un fichier mis à jour wsusscn2.cab
depuis les serveurs de Microsoft.
Par défaut, le téléchargement se fait une fois par jour et auncun téléchargement ne se déclenche si le fichier wsusscn2.cab
n’a pas changé depuis le dernier téléchargement.
Indication
Pour que WAPTWUA fonctionne, le Serveur WAPT doit avoir accès à :
windowsupdate.microsoft.com
..windowsupdate.microsoft.com
..update.microsoft.com
windowsupdate.com
download.windowsupdate.com
download.microsoft.com
download.windowsupdate.com
wustat.windows.com
ntservicepack.microsoft.com
go.microsoft.com
dl.delivery.mp.microsoft.com
Même si vous choisissez d’autres sources pour les mises à jour de Windows, les ports 443 et 80 doivent accepter le trafic entrant sur le serveur WAPT.
Le fichier wsusscn2.cab
est ensuite téléchargé par l’agent WAPT à partir du dépôt du serveur WAPT, puis transmis à WUA l’utilitaire Windows pour décortiquer l’arbre de mise à jour pour l’hôte.
Régulièrement, l’hôte analysera les mises à jour disponibles en utilisant le fichier wsusscn2.cab
. L’hôte enverra sa liste de mises à jour nécessaires au serveur WAPT.
Si une mise à jour est en attente sur l’hôte et si cette mise à jour n’est pas présente sur le serveur WAPT, le serveur WAPT téléchargera la mise à jour nécessaire à partir des serveurs officiels de Microsoft.
Indication
Ce mode opératoire permet à WAPT de ne télécharger que les mises à jour nécessaires aux postes, gagnant ainsi de la bande passante, du temps de téléchargement et de l’espace disque.
Note
Sur le serveur WAPT, les mises à jour téléchargées sont stockées :
sur les hôtes Linux dans
/var/www/waptwua
;sur les hôtes Windows dans
C:\wapt\waptserver\repository\waptwua
.
L’URL de téléchargement du dépôt de l’agent de mise à jour Windows WAPT est basée sur le paramètre repo_url
de wapt-get.ini
:
Note
En cas de dépôt répliqué, il est totalement possible de l’utiliser avec WAPT Windows Update afin de réduire l’utilisation de la bande passante.
Si un proxy est nécessaire pour accéder à Internet, veillez à définir le serveur proxy dans le fichier waptserver.ini.
6.2. Différences entre les mises à jour Windows WAPT et WSUS¶
WSUS va télécharger par défaut les mises à jours des catégories sélectionnées. Cela peut mener à une base de données vraiment conséquente et une forte utilisation de l’espace de stockage.
WAPT Windows Update ne va que télécharger ce dont il a besoin pour au moins un poste client. Cela aide à garder une base de données locale de petite taille (environ une 10aine de Gigaoctets) et il peut facilement se nettoyer si vous avez besoin de récupérer de l’espace.
6.3. Les mises à jours majeures d’OS¶
Les mises à jour majeures d’OS permettent de passer d’une version d’OS à une autre. Cela inclus par exemple, des mises à jours de Windows 7 vers Windows 10, ou bien de Windows 10 1903 vers Windows 10 20H2.
Les mises à jour de version majeures sont gérées de la même manière que les mises à jour d’OS mineures. Les mises à jour majeures sont gérées via le téléchargement du contenu de l’ISO de la nouvelle version (même contenu qu’une installation de base) puis lance le setup.exe avec les bons paramètres. Ce Processus est le même que pour WSUS, SCCM et les mises à jour WAPT Windows Updates.
Dans le cas de WAPT Windows Updates, vous aurez besoin de créer un paquet de mise à jour d’OS en utilisant un modèle de paquet fournit sur https://store.wapt.fr.
6.4. Les mises à jours de pilotes¶
Les mises à jour de pilote via WSUS ne sont pas recommandés puisqu »il est difficile de gérer correctement les effets de bord. Dans le cas de WAPT WindowsUpdates, LES PILOTES NE SONT PAS TELECHARGES puisqu’ils ne sont pas référencés dans les fichiers wsusscn2.cab
fournis par Microsoft.
Il est recommandé de pousser les mises à jour des pilotes via un paquet WAPT personnalisé. Si le correctif du pilote est empaqueté sous forme de .msu
, vous pouvez l’empaqueter comme un paquet WAPT standard.
Il suffit de sélectionner le fichier .msu
et de cliquer sur dans la console WAPT pour lancer l’assistant de création simplifiée de package.
Si la mise à jour du pilote est emballée sous forme de .zip
contenant le fichier .exe
, vous pouvez créer un paquet WAPT contenant les fichiers nécessaires et le binaire setup.exe avec le drapeau silencieux correct.
6.5. Les KB Out of band (Hors bande)¶
Parfois, Microsoft fournit des mises à jours OOB qui sont en dehors de l’index du wsusscn2.cab
. Ces mises à jour ne sont pas inclus dans les mises à jour principales car elles peuvent corriger un problème très spécifique ou peuvent avoir des inconvénients.
Si vous souhaitez déployer une KB de mise à jour OOB, vous pouvez la télécharger depuis le catalogue Microsoft https://www.catalog.update.microsoft.com/Home.aspx.
Il suffit de sélectionner le fichier .msu et de cliquer sur
dans la console WAPT pour lancer l’assistant de création simplifiée de package.Pour ce faire, vous pouvez suivre cette documentation pour construire des fichiers .msu pour ces mises à jour Out-of-band (Hors bande).
Attention
Vous devez vous montrer prudent avec les mises à jour OOB car elles peuvent détruire votre système, assurez-vous de lire les pré-requis sur le rapport Microsoft correspondant à la mise à jour et de tester cette dernière méticuleusement.
6.6. Configurer WAPTWUA sur l’agent WAPT¶
WAPTWUA se configure dans wapt-get.ini
dans la section [waptwua]
.
Vous aurez alors plusieurs options :
Options (Valeur par défaut) |
Description |
Exemple |
---|---|---|
|
Activer ou désactiver WAPTWUA sur cette machine. |
enabled = True |
|
Télécharger les mises à jour directement depuis les serveurs Microsoft. |
direct_download = True |
|
Configuré si la mise à jour est autorisée ou pas par défaut. |
default_allow = True |
|
Configure la récurrence des scans des Windows Update (ne fera rien s’il y a un paquet de règles waptwua ou que le fichier |
download_scheduling = 1d |
|
Configure la récurrence des installations Windows Update (ne fera rien s’il n’y a aucune mise à jour en attente). |
install_scheduling = 2h |
|
Définit si les mises à jour sont déclenchées lors de l’arrêt de l’hôte. |
install_at_shutdown = True |
|
Configure un délai d’installation entre la publication dans le dépôt et l’installation. |
install_delay = 15d |
|
Définit une liste de criticité qui sera automatiquement accepté durant un scan WAPT Windows update. ex : Important, Critical, Moderate. |
allowed_severities = Important |
|
Define if the skip Microsoft Windows Update tick box in WaptExit window to skip Windows Update is available (value False) or not (value True) |
waptexit_disable_skip_windows_updates = True |
|
Définit si l’agent de mise à jour de Windows affichera à la fois les dernières KB et les KB consolidées (True), ou seulement les dernières KB (False). |
include_potentially_superseded_updates = True |
Indication
Ces options peuvent être configurées lors de la génération de l’agent.
Exemple de section [waptwua]
dans le fichier wapt-get.ini
:
[waptwua]
enabled = True
default_allow = False
direct_download = False
download_scheduling = 7d
install_at_shutdown = True
install_scheduling = 12h
install_delay = 3d
Lorsque vous créez le waptagent.exe
depuis votre console, ces options correspondent à cela :
Exemple de code source pour un paquet qui modifie les paramètres [waptwua]
:
def install():
inifile_writestring(WAPT.config_filename,'waptwua','enabled','true')
inifile_writestring(WAPT.config_filename,'waptwua','install_at_shutdown','true')
inifile_writestring(WAPT.config_filename,'waptwua','download_scheduling','7d')
inifile_writestring(WAPT.config_filename,'waptwua','allowed_severities','Critical,Important')
print('Reload WAPT configuration')
WAPT.reload_config_if_updated()
6.7. Utiliser WAPTWUA depuis la console¶
Les WAPTWUA sont gérées avec deux onglets dans la console WAPT.
L’onglet Paquet WAPTWUA vous permet de créer des paquet de règles waptwua.
Lorsque ce type de paquet est instalé sur une machine, il indique à l’agent WAPTWUA les KBs autorisées ou interdites.
Lorsque plusieurs paquets de règles waptwua sont installés sur la machine, les différentes règlesvont fusionner.
Lorsqu’une
cab
n’est ni mentionnée comme autorisée ni mentionnée comme interdite, les agents WAPT vont alors prendre la valeur dudefault_allow
danswapt-get.ini
.
Note
Si la configuration de l’agent WAPTWUA est définit à
default_allow = True
, alors il sera nécessaire de spécifier lescab
interdites.Si la configuration de l’agetn WAPTWUA est définit à
default_allow = False
, il sera nécessaire de spécifier lescab
autorisées.
Indication
Pour tester les mises à jour sur un petut groupe de postes, vous pouvez configurer la valeur par défaut de WAPTWUA avec
maturity = PREPROD
.Vous pouvez tester les mises à jour sur un petit groupe de postes et si tout se passe bien, vous pouvez lancer les mises à jour à votre flotte complète de postes.
L’onglet Liste Windows Update liste toutes les Mises àjour Windows demandées.
Important
Le serveur WAPT ne scanne pas le wsussc2.cab
lui-même, il laisse l’utilitaire Windows Update Agent présent sur tous les hôtes Windows le faire. Si une mise à jour semble manquer dans la liste, vous DEVEZ exécuter un scan sur l’un des hôtes présents dans la console WAPT. Si vous exécutez un scan WUA WAPT sur un client Windows 10, les fichiers CAB et Windows 10 seront affichés dans l’onglet Windows Update.
Le panneau de gauche affiche les catégories des mises à jour, vous permettant de filtrer par :
criticité ;
produit ;
classification.
Dans le panneau de droite, si la colonne Téléchargée le est vide, cela signife que les mises à jour n’ont pas encore été téléchargées par le serveur WAPT et n’est pas présent sur le serveur WAPT (Cette mise à jour n’est pas manquante sur les postes).
Vous pouvez forcer le téléchargement de la mise à jour en faisant
.Vous pouvez aussi forcer le téléchargement du fichier
wsusscn2.cab
avec le bouton Télécharger le cab WSUSScan depuis le site de Microsoft.Vous pouvez voir le téléchargement des mises à jour Windows sur le serveur avec le bouton Afficher la tâche de téléchargement .
Indication
Toutes les 30 minutes, le serveur WAPT va chercher les mises à jour qui ont été demandées au moins une fois par les client WAPT et qui n’ont pas été téléchargées en mises en cache. » Si une mise à jour est en attente, le serveur WAPT var le télécharger depuis les sites officiels de Microfoft.
Vous pouvez forcer ce scan avec le bouton Télécharger le cab WSUSScan depuis le site de Microsoft ; dans l’onglet
6.7.1. Nettoyer des vieilles Windows Update¶
Vous pouvez exécuter le nettoyage manuellement ou automatiquement.
Si la KB n’est pas installée sur la machine, elle est automatiquement supprimée sur le Serveur WAPT entre 2h30 et 3h30 du matin chaque jour. Il est possible de désactiver la suppression automatique des KB avec l’option cleanup_kbs
dans le fichier waptserver.ini
de configuration du Serveur WAPT.
Ajouter le paramètre dans le fichier de configuration du serveur :
cleanup_kbs = False
Pour nettoyer votre dossier waptwua
, vous pouvez aller dans l’onglet Mises à jour Windows et cliquer sur Effacer les mises à jour non-affectées. Cela supprimera toutes les KB inutiles stocké sur le Serveur WAPT.
Il est possible de supprimer manuellement du serveur WAPT tout fichier Windows Update qui n’est plus nécessaire.
Le serveur WAPT va seulement re-télécharger les mises à jour supprimées si un des hôtes équipés le demande.
Sur le serveur WAPT, les mises à jour téléchargées sont stockées :
Sous Linux dans
/var/www/waptwua
.Sur les hôtes Windows dans
C:\wapt\waptserver\repository\waptwua
.
6.7.2. Lancer WUA sur les clients¶
Depuis la console vous avez trois options.
Le bouton Lancer la recherche de mises à jour va lancer le scan sur le client et va lister toutes les mises à jour marquées pour l’OS.
Le bouton Lancer le téléchargement des Mises à jour Windows en attente va lancer le téléchargement des mises à jour en attente sur le client.
Le bouton Lancer l’installation des mises à jour Windows en attente va lancer l’installation des mise à jour téléchargées sur le client.
Indication
Lorsque des mises à jour en attente sont sotckées en cache pour être installer, l’agent WAPT va déclencher le service WUA.
L’agent WAPT va activer et démarrer le service WUA temporairement pour installer les mises à jour. Lorsque les mises à jour sont installées, waptservice va couper et désactiver le service WUA jusqu’au prochain cycle.
6.7.3. Etat des mises à jour sur l’hôte¶
Les mises à jour Windows peuvent avoir 4 états sur un poste.
Statut |
Description |
---|---|
OK |
Une mise à jour Windows qui s’est correctement installé. |
MISSING |
Une mise à jour Windows qui n’a pas encore été téléchargé sur le serveur WAPT. |
PENDING |
Le serveur WAPT sait qu’il doit télécharger une mise à jour depuis les serveurs officiels de Microsoft. |
DISCARDED |
Une mise à jour Windows interdites par des règles. |
6.7.4. Notion d’UpdateID¶
Dans WAPT nous n’utilisons pas les kbids mais les updateids.
Cela nous permet d’être plus fin dans la gestion des mises à jour.
Dans cet exemple, la KB4537759 apparaît de multiples fois car il y a 3 différents updateids :
win10 1803 ;
win10 1903 ;
win10 1909 ;
Vous devriez également autoriser une mise à jour et non pas une kb ids.
6.8. WAPT ne force pas Windows à désinstaller une Windows Update¶
Attention
<La désinstallation d’une mise à jour de Windows peut être dangereuse pour l’hôte**.
Désinstaller une mise à jour Windows peut être dangereux pour la machine. Quand une mise à jour est détectée comme interdite par WAPT, sa désinstallation ne sera PAS forcée.
Si vous voulez vraiment désinstaller une mise à jour, vous devriez créer un paquet pour désinstaller la KB.
Voici un exemple :
from setuphelpers import *
uninstallkey = []
def install():
with EnsureWUAServRunning():
run('wusa /uninstall /KB:4023057')