Windows Server 2016 ne se met pas à jour via WSUS

Nous avons un serveur WSUS fonctionnant sous Windows Server 2016. WSUS détecte et envoie des mises à jour à tous les systèmes, y compris les serveurs 2012. WSUS détecte mais n’envoie pas de mises à jour aux serveurs 2016.

Il affiche 0 mise à jour nécessaire, toutes les mises à jour affichent « installé ou non applicable ». Ce sont des installations de serveur fraîches, elles viennent d’être installées à partir d’une image disque créée en novembre de l’année dernière.

Si j’exécute un rapport sur l’un des serveurs et que je filtre par produit « Windows Server 2016 », j’obtiens 31 mises à jour installées ou non applicables.

Les 31 mises à jour sont en approbation « Installer ». Le statut pour chacune est « Non applicable ». Ce sont toutes des mises à jour critiques et de sécurité.

J’ai vérifié manuellement les mises à jour installées sur l’un des serveurs concernés et confirmé que ces mises à jour « non applicables » ne sont pas installées.

Tous ces serveurs sont des installations fraîches et ils sont dans une OU qui les empêche de redémarrer après une installation de mise à jour et je suis le seul à les redémarrer manuellement. Depuis leur installation, ils ont reçu 0 mise à jour. J’ai du mal à croire qu’il n’y a aucune mise à jour applicable pour une installation fraîche de Windows Server 2016.

J’ai vérifié que BITS et les services Windows Update sont en cours d’exécution. J’ai exécuté wuauclt /reportnow et wuauclt /detectnow. Cela ne semble rien faire. J’ai exécuté l’assistant de nettoyage pour refuser et supprimer toutes les mises à jour remplacées. J’ai vérifié que les machines sont dans les bons groupes dans AD et dans WSUS. J’ai vérifié dans le registre des machines concernées qu’elles pointent vers le serveur WSUS et qu’il est pingable. Le client peut être pingé depuis le serveur WSUS. Il n’y a pas de pare-feu, de bloqueur de port ou quoi que ce soit de ce genre. J’ai créé une installation complètement neuve de serveur 2016 avec absolument rien d’installé dessus ; pas de rôles, pas de pare-feu, pas d’antivirus, rien du tout, juste un serveur vierge et j’ai essayé de le forcer à se connecter. WSUS détecte que le serveur existe mais c’est à peu près tout.

Tous les autres systèmes d’exploitation fonctionnent bien, seuls les serveurs 2016 ont ce problème. C’est définitivement un problème de serveur WSUS ; si je vais dans le registre et que je rechange vers le serveur de Microsoft, il trouve des mises à jour.

Quelqu’un a-t-il une idée de ce qui pourrait causer le problème et comment le corriger ?

Merci.

EDIT - MISE À JOUR :
Le problème persiste. J’ai essayé d’installer un 2e serveur WSUS 2016, même problème, uniquement avec les serveurs 2016.

J’ai même essayé d’installer Server 2019 (bien que je ne pense pas qu’il y ait des différences…). Aucune différence.

J’ai même éliminé la stratégie de groupe. J’ai mis un serveur test 2016 tout seul dans une OU avec l’héritage bloqué. La seule GPO que j’ai liée était le paramètre du serveur WSUS qui pointait vers le serveur 2019. La machine ne reçoit aucune autre stratégie. Il n’y a même pas d’antivirus ou de pare-feu configuré sur le serveur test 2016, ils sont même sur le même segment.

Nous convertissons de plus en plus nos serveurs de 2012 à 2016, ce qui signifie que c’est de plus en plus un problème car AUCUN d’entre eux ne recevra de mises à jour de WSUS… Même si je ne le veux pas, je vais devoir appeler Microsoft…

OK, après avoir passé 3 semaines avec le département de support technique de Microsoft, nous avons résolu le problème.

Le problème vient du Dual Scan qui essaie de se connecter à Windows Update (en ligne) et échoue. Quand il échoue, le système arrête simplement d’essayer et refuse de se connecter à WSUS.

Le problème supplémentaire est que le média d’installation du serveur a un bug qui empêche le Dual Scan de changer. Il ignore simplement la stratégie et garde la source de mise à jour par défaut Windows Update.

Voici ce que vous devez faire pour corriger :
Exécutez les commandes suivantes dans PowerShell sur le serveur problématique :

$MUSM = New-Object -ComObject "Microsoft.Update.ServiceManager"
$MUSM.Services | select Name, IsDefaultAUService

Vous obtiendrez quelque chose comme :

Windows Update Standalone Installer - False
Windows Server Update Service - False
Windows Update - True

Si c’est « Windows Update - True », c’est votre source par défaut, peu importe ce que dit votre GPO…

La première chose à faire est de vous assurer que les correctifs suivants sont installés sur votre serveur.

kb4103720 et kb4462928

Vous avez besoin des DEUX. Ils sont tous les deux volumineux, ils prennent tous les deux une éternité à installer et ils nécessitent tous les deux un redémarrage du serveur.

Ces KB corrigent le problème du Dual Scan pour que le serveur réponde à la GPO lui indiquant quelle source par défaut utiliser.

Maintenant vous devez configurer la stratégie de groupe pour indiquer au serveur de n’utiliser que le serveur WSUS. Selon Microsoft, voici les paramètres requis (j’ai des doutes sur certains, mais je n’ai pas testé chacun… Je suis juste content que ça fonctionne enfin)

Computer Configuration > Policies > Administrative Templates > System > Device Installation

Specify the search server for device driver source locations

Set to "Enabled"
Select search order: "Do not search Windows Update"

Specify the search server for device driver updates

Set to "Enabled"
Select Update Server: "Search Managed Server"

Computer Configuration > Policies > Administrative Templates > System > Internet Communication Management > Internet Communication Settings

Turn off access to all Windows Update features (En langage Microsoft, cela signifie leur serveur en ligne, pas « empêcher les mises à jour »)

Set to "Enabled"

Turn off access to the Store

Set to "Enabled"

Computer Configuration > Policies > Administrative Templates > Windows Components > Windows Update

Do not allow update deferral policies to cause scans against Windows Update

Set to "Enabled"

No auto-restart with logged on users for scheduled automatic updates installations

Set to "Enabled"

Specify intranet Microsoft update service location

Set to "Enabled"
Set the intranet update service for detecting updates: "http://[YOUR SERVER]:8530"
Set the intranet statistics server:"http://[YOUR SERVER]:8530"
Set the alternate download server: "http://[YOUR SERVER]:8530"
Uncheck the box Download files with no Url in the metadata if alternate download server is set

Déplacez vos serveurs dans une OU avec cette GPO activée. J’ai créé une OU séparée dans mon OU Serveurs juste pour les serveurs 2016 et j’y ai lié cette GPO.

Exécutez à nouveau les commandes PowerShell ci-dessus.

Cela devrait maintenant afficher

 Name                                   IsDefaultAUService