Windows Update sur serveur : forcer le pré‑téléchargement avant l’installation (Option 3 GPEDIT, BITS, DO)

Vous voyez « Mises à jour prêtes à être installées », mais au clic sur Installer le serveur télécharge encore pendant de longues minutes ? Voici comment forcer le pré‑téléchargement silencieux et éviter les mauvaises surprises lors de vos fenêtres de maintenance.

Sommaire

Téléchargement des mises à jour Windows qui démarre seulement après avoir cliqué sur « Installer »

Vue d’ensemble de la question

Sur plusieurs serveurs Windows autonomes (hors domaine), la boîte de dialogue Windows Update annonce : « Mises à jour prêtes à être installées ». Pourtant, au moment de cliquer sur Installer, une phase de téléchargement longue (≈ 1 h 30) débute. L’administrateur en déduit que les correctifs n’étaient pas réellement pré‑téléchargés et souhaite savoir :

  • si sa configuration est incorrecte ;
  • comment forcer le téléchargement automatique en arrière‑plan avant l’étape d’installation.

Réponse & solution

1) Vérifier/ajuster la stratégie « Configure Automatic Updates » (GPEDIT)

gpedit.msc
→ Configuration ordinateur
  → Modèles d’administration
    → Composants Windows
      → Windows Update
        → Configure Automatic Updates
  • Activer la stratégie puis choisir Option 3 : « Auto download and notify for install » (Téléchargement automatique, notification avant installation).
  • Redémarrer la machine ou exécuter gpupdate /force pour appliquer immédiatement la stratégie.

2) Comprendre les autres options possibles

OptionEffet principalUtilisation typique sur serveur
2 – Notifier pour télécharger et installerAucun téléchargement tant qu’un administrateur n’a pas cliqué.À éviter si vous voulez un pré‑téléchargement.
3 – Télécharger automatiquement, notifier pour installerTéléchargement silencieux en arrière‑plan ; seule l’installation nécessite une action.Recommandé pour la plupart des serveurs autonomes.
4 – Télécharger automatiquement, programmer l’installationTéléchargement silencieux ; installation planifiée (jour/heure à définir).Utile pour des fenêtres de maintenance fixes.
5 – Laisser l’administrateur local choisirRéglages via l’interface locale.OK en labo ; moins prévisible en prod.

3) Pièges courants qui déclenchent un téléchargement tardif

  • Bouton « Rechercher des mises à jour » : un scan manuel peut redéterminer l’ensemble applicable (nouvelle évaluation) et provoquer un nouveau téléchargement complet. Évitez‑le si vous vérifiez la stratégie.
  • Option 2 active (Notifier pour télécharger) : le système attend explicitement votre clic pour télécharger.
  • Mémoire/Disque insuffisant : le cache de Windows Update est purgé et devra retélécharger (vérifiez la partition système).
  • Proxy/pare‑feu : si le trafic vers les services Microsoft Update est bloqué, le téléchargement échoue en tâche de fond et ne démarre vraiment qu’au clic (et encore…).
  • WSUS résiduel : une ancienne configuration « Utiliser un serveur WSUS » peut forcer un comportement inattendu (clé UseWUServer dans le Registre).

4) Contrôle a posteriori

  • Après le prochain Patch Tuesday, surveillez C:\Windows\SoftwareDistribution\Download : l’horodatage/poids des fichiers doit précéder votre clic sur Installer.
  • Observateur d’événements : Applications and Services Logs → Microsoft → Windows → WindowsUpdateClient → Operational : vous devez voir des entrées de type Download started puis Download completed avant l’installation.

Pourquoi Windows annonce « prêtes à installer » puis télécharge quand même ?

La mention « prêtes à installer » correspond à un état métadonnées prêtes (l’appareil sait quoi installer). Cela ne garantit pas que toutes les payloads binaires soient déjà en cache. Plusieurs facteurs expliquent l’écart :

  • Option 2 active : aucun binaire n’est téléchargé tant que vous n’avez pas validé.
  • Modifications de l’ensemble applicable entre le dernier scan et votre clic (nouvelles super‑sessions, nouveaux prérequis comme un SSU/LCU) : Windows doit compléter les téléchargements.
  • Nettoyage de cache (tâches de maintenance, Disk Cleanup, antivirus) : les fichiers de SoftwareDistribution ont été supprimés.
  • Connexion mesurée ou BITS bridé : le fond de panier n’a jamais pu finir les copies, et l’UI ne s’actualise qu’au moment de l’installation.

Procédure express recommandée (serveurs autonomes)

  1. Activer Configure Automatic Updates = 3 (voir plus haut).
  2. Optionnel : définir une fenêtre de maintenance avec l’Option 4 (jour/heure) si vous voulez une installation programmée.
  3. Empêcher le redémarrage inopiné : activer « No auto‑restart with logged on users ».
  4. Relancer un cycle d’évaluation/téléchargement : gpupdate /force # Démarrer/relancer les services clés net start wuauserv net start bits net start dosvc # Lancer un scan et laisser la stratégie "3" télécharger en arrière-plan usoclient StartScan usoclient StartDownload (Les commandes usoclient nécessitent une session élevée ; sur des versions plus anciennes, vous pouvez utiliser wuauclt /detectnow avec WSUS.)
  5. Vérifier l’activité : taille croissante du dossier SoftwareDistribution\Download et événements « Download » dans le journal.

Équivalent par Registre/PowerShell (sans GPEDIT)

Sur un serveur autonome ou Core, vous pouvez définir la configuration par le Registre. Les clés importantes :

Clé/valeurTypeSignificationValeur conseillée
HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU\AUOptionsDWORDMode d’update (2,3,4,5)3
HKLM\...\WindowsUpdate\AU\ScheduledInstallDayDWORDJour 0–7 (0 = chaque jour)si Option 4
HKLM\...\WindowsUpdate\AU\ScheduledInstallTimeDWORDHeure (0–23)si Option 4
HKLM\...\WindowsUpdate\AU\NoAutoRebootWithLoggedOnUsersDWORDPas de reboot auto si session ouverte1
HKLM\...\WindowsUpdate\AU\UseWUServerDWORD0 = Microsoft Update / 1 = WSUS intranet0 (si pas de WSUS)

Script PowerShell prêt à l’emploi

# Exécuter en PowerShell élevé
$base = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU'
New-Item -Path $base -Force | Out-Null
Set-ItemProperty -Path $base -Name AUOptions -Type DWord -Value 3
# Optionnel : programmation (Option 4)
# Set-ItemProperty -Path $base -Name AUOptions -Value 4
# Set-ItemProperty -Path $base -Name ScheduledInstallDay -Value 0
# Set-ItemProperty -Path $base -Name ScheduledInstallTime -Value 3  # 03:00
# Reboot différé autorisé si session ouverte
Set-ItemProperty -Path $base -Name NoAutoRebootWithLoggedOnUsers -Type DWord -Value 1

# Désactiver WSUS résiduel si non utilisé

$wuKey = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU'
If (Test-Path $wuKey) {
Set-ItemProperty -Path $wuKey -Name UseWUServer -Type DWord -Value 0 -ErrorAction SilentlyContinue
}

# Redémarrage des services Windows Update

Restart-Service -Name wuauserv -Force
Restart-Service -Name bits -Force
Restart-Service -Name dosvc -Force

# Déclencher un scan & lancement du téléchargement

Start-Process -FilePath "$env:SystemRoot\System32\usoclient.exe" -ArgumentList 'StartScan' -Verb RunAs
Start-Process -FilePath "$env:SystemRoot\System32\usoclient.exe" -ArgumentList 'StartDownload' -Verb RunAs 

Vérifications réseau indispensables

Le pré‑téléchargement s’appuie sur BITS et Delivery Optimization. Si votre serveur passe par un proxy ou un pare‑feu strict, autorisez le trafic sortant HTTP/HTTPS vers :

  • windowsupdate.microsoft.com, *.windowsupdate.com, *.update.microsoft.com, download.windowsupdate.com
  • *.delivery.mp.microsoft.com (Delivery Optimization)

Assurez‑vous également que les services suivants sont en Exécution (Automatique) :

ServiceNomRôle
Windows UpdatewuauservScan et orchestration
Background Intelligent Transfer ServiceBITSTéléchargement en tâche de fond
Delivery OptimizationDoSvcPair‑à‑pair & gestion des blocs
Cryptographic ServicesCryptSvcValidation des signatures

Accélérer les téléchargements entre serveurs (Delivery Optimization)

Sur des liaisons lentes, activez la distribution d’égal à égal pour mutualiser le cache et réduire l’empreinte WAN.

  1. Paramètres Windows → Mise à jour et sécurité → Optimisation de la distribution : Autoriser les téléchargements à partir d’autres PC.
  2. En GPO (ou Registre), positionner le mode à 1 (LAN) pour restreindre l’échange au sous‑réseau.
CléValeurEffet
HKLM\SOFTWARE\Policies\Microsoft\Windows\DeliveryOptimization\DODownloadMode0HTTP seulement (pas de P2P)
…\DODownloadMode1P2P sur le LAN
…\DODownloadMode2Groupes locaux (AD/AAD)
…\DODownloadMode3Internet (pairage étendu)

Surveiller la progression et prouver le pré‑téléchargement

  • Dossier de cache : C:\Windows\SoftwareDistribution\Download (fichiers .bin/.cab qui augmentent en taille pendant la phase de download).
  • Journal d’événements : WindowsUpdateClient/Operational. Filtrez les événements d’Information indiquant « Download started », « Download completed », « Installation started ».
  • Get-WindowsUpdateLog : # Fusionne les traces ETW en un log lisible Get-WindowsUpdateLog -LogPath C:\Temp\WindowsUpdate.log
  • Suivi BITS (transferts en cours) : Get-BitsTransfer -AllUsers | Select-Object DisplayName,BytesTransferred,BytesTotal,JobState
  • PSWindowsUpdate (optionnel) : # Requiert PowerShellGet/PSGallery pour l'installation Install-Module PSWindowsUpdate -Force Get-WindowsUpdate -Download -AcceptAll -IgnoreReboot

Dépannage avancé (si le téléchargement ne démarre jamais)

  1. Réinitialiser le cache Windows Update : net stop wuauserv net stop bits net stop dosvc net stop cryptsvc ren C:\Windows\SoftwareDistribution SoftwareDistribution.old ren C:\Windows\System32\catroot2 catroot2.old net start cryptsvc net start dosvc net start bits net start wuauserv # Relancer un scan usoclient StartScan Conservez le dossier renommé quelques jours au cas où des fichiers seraient nécessaires, puis supprimez‑le.
  2. Vérifier la présence de WSUS résiduel : Get-ItemProperty 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU' ` -Name UseWUServer -ErrorAction SilentlyContinue Si la valeur est 1 sans serveur WSUS valide, positionnez‑la à 0 (voir plus haut).
  3. Limiter ou supprimer la bride BITS (si des GPO ont été posées) : Configuration ordinateur → Modèles d’administration → Réseau → Background Intelligent Transfer Service → Limiter la bande passante. Laissez « Non configuré » ou planifiez des fenêtres hors‑production.
  4. Espace disque : assurez au moins plusieurs Go libres sur C:. Les cumulatives mensuelles peuvent dépasser 1 Go une fois décompressées.

Bonnes pratiques pour les serveurs autonomes

  • Privilégiez Option 3 pour pré‑télécharger et contrôler le moment d’installation.
  • Si vous devez automatiser l’installation, utilisez Option 4 et définissez un créneau horaire faible trafic. Activez NoAutoRebootWithLoggedOnUsers=1 pour éviter les redémarrages indésirables.
  • Ne cliquez pas systématiquement sur « Rechercher des mises à jour » ; laissez la planification faire son travail.
  • Documentez un runbook : vérifications de services, taille du cache, journaux, étapes de rollback.
  • Centralisez le paramétrage via un script PowerShell signé si vous avez plus d’une poignée de serveurs.

FAQ

Q : Pourquoi le clic sur Installer déclenche‑t‑il parfois un téléchargement de « Dynamic Updates » ?
R : Lors de l’installation, Windows peut récupérer des composants complémentaires (Stack de maintenance, pilotes, compat) si leur présence est requise et absente du cache. Le pré‑téléchargement réduit ce risque mais ne l’élimine pas à 100 %.

Q : Option 4 installe‑t‑elle toujours automatiquement ?
R : Oui, à l’horaire programmé. Employez‑la uniquement si vos fenêtres de maintenance sont formalisées. Sinon, préférez l’Option 3.

Q : Comment vérifier rapidement le mode en vigueur sans ouvrir GPEDIT ?
R :

(Get-ItemProperty 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU').AUOptions

Valeurs : 2 = Notify, 3 = AutoDownload+Notify, 4 = Auto+Schedule, 5 = Admin choice.

Q : Et sur Server Core ?
R : Utilisez le Registre/PowerShell ci‑dessus. sconfig permet « Automatique » (téléchargement + installation) ou « Manuel ». Pour reproduire l’Option 3 précisément, préférez les clés de Registre.

Q : Puis‑je nettoyer SoftwareDistribution régulièrement ?
R : Évitez de le faire de manière systématique : cela ruine le pré‑téléchargement. Nettoyez uniquement en cas de corruption ou de blocage confirmé.


Checklist d’audit (à imprimer)

Point de contrôleCommande/EmplacementOK / KOCommentaire
Option de mise à jourGPEDIT → Option 3 / AUOptions=3
Services WU/BITS/DOGet-Service wuauserv,bits,dosvc
Pas de WSUS résiduelUseWUServer=0
Bande passante non bridéeGPO BITS « Non configuré » ou fenêtre dédiée
Cache présentSoftwareDistribution\Download non vide
Journaux cohérentsWindowsUpdateClient : Download → Install

Résumé opératoire

Le comportement observé (téléchargement au moment du clic) provient presque toujours d’une configuration inadaptée (Option 2), d’un cache absent, ou d’un blocage réseau. La solution robuste pour des serveurs autonomes consiste à :

  1. Activer Configure Automatic Updates = 3 pour autoriser le pré‑téléchargement silencieux ;
  2. assurer la santé des services wuauserv, BITS, DoSvc ;
  3. lever les freins réseau/proxy et, si besoin, optimiser via Delivery Optimization ;
  4. vérifier par journaux et cache que les payloads sont disponibles avant d’entrer en maintenance.

Avec ces réglages, le clic sur Installer se contente d’appliquer ce qui est déjà présent en local : vos fenêtres de maintenance deviennent prévisibles et beaucoup plus courtes.


Annexe : commandes utiles (mémo)

# Forcer l’application des stratégies
gpupdate /force

# Relancer les services essentiels

sc query wuauserv
sc query bits
sc query dosvc

# Déclencher un cycle (scan + download)

usoclient StartScan
usoclient StartDownload

# Voir l’état BITS

Get-BitsTransfer -AllUsers

# Générer un log lisible

Get-WindowsUpdateLog -LogPath C:\Temp\WindowsUpdate.log 

Conclusion

Le « vrai » pré‑téléchargement Windows Update sur un serveur autonome s’obtient via la stratégie adéquate (Option 3 ou 4), des services en bon état, et un réseau non bridé. Une fois ce trépied en place, l’installation n’est plus qu’une formalité, sans heure et demie de téléchargement au pire moment.

Sommaire