Veeam Backup & Replication : échec d’installation sur Windows Server (.NET Framework, Registre) et correctifs Kerberos/SPN

L’installation de Veeam Backup & Replication échoue sur Windows (erreurs .NET/Windows Update, clés de Registre incohérentes) ? Voici une procédure terrain, pas‑à‑pas, avec scripts PowerShell, checklists et un focus Kerberos/SPN après l’installation.

Sommaire

Impossible d’installer Veeam Backup & Replication sur le serveur Windows

Problème posé

  • Échec de l’installeur Veeam.
  • Windows Update n’arrive pas à ajouter le composant .NET Framework (erreur pendant l’installation).
  • Le support Veeam signale des clés incohérentes dans le Registre.

Pourquoi ce trio d’erreurs apparaît souvent

  • Magasin de composants (CBS) corrompu : Windows ne parvient plus à déployer les fonctionnalités on-demand (dont .NET 3.5) ni à finaliser certains correctifs cumulés.
  • Conflits de stratégie WSUS/GPO : un serveur WSUS imposé par une GPO bloque l’accès à la source officielle des composants facultatifs, d’où le fameux code 0x800F081F lors de l’activation de NetFx3.
  • .NET partiellement installé : des vestiges d’une installation précédente (ou d’un rollback) laissent des clés de Registre bancales que l’installeur Veeam interprète mal.
  • Redémarrage en attente : Windows refuse d’enchaîner certaines opérations tant que la file PendingFileRenameOperations n’est pas traitée.
  • Interférence antivirus/EDR : analyse en temps réel ou blocage comportemental pendant l’extraction du setup.

Ce qu’il faut préparer avant d’agir

  • Connexion avec un compte administrateur local (ou session élevée).
  • Instantané/sauvegarde de la VM si possible.
  • Point de restauration ou export du Registre avant toute modification.
  • Accès au média d’installation Windows correspondant (utile pour l’activation hors ligne de .NET 3.5 via \sources\sxs).

Solutions mises en œuvre et validées (parcours rapide)

  1. Mettre Windows à jour
    Paramètres › Windows Update › Rechercher des mises à jour et installer tout correctif en attente.
  2. Installer manuellement la dernière version du .NET Framework
    Télécharger le runtime depuis le site officiel Microsoft et l’exécuter en tant qu’administrateur.
  3. Contrôler l’intégrité du système
    Ouvrir Invite de commandes (admin) → sfc /scannow → redémarrer si des réparations sont faites.
  4. Créer/corriger les clés de Registre relevées par Veeam
    Toujours exporter la branche avant, puis ajouter la clé manquante. Après cette étape, l’installation Veeam aboutit.
  5. Redémarrer et vérifier l’absence de redémarrage en attente.
  6. Désactiver temporairement l’antivirus si l’installeur reste bloqué, puis le réactiver immédiatement après.

Procédure détaillée et scripts prêts à l’emploi

Mettre Windows à jour proprement

Commencez par assainir la chaîne Windows Update : services démarrés, cache réinitialisé au besoin, puis recherche de mises à jour.
Vérifier et démarrer les services Windows Update (PowerShell)

Get-Service wuauserv,bits,cryptsvc | Format-Table -Auto
Start-Service wuauserv
Start-Service bits
Start-Service cryptsvc

Réinitialiser les composants Windows Update (Invite de commandes admin)

net stop wuauserv
net stop bits
net stop cryptsvc
ren C:\Windows\SoftwareDistribution SoftwareDistribution.old
ren C:\Windows\System32\catroot2 catroot2.old
net start cryptsvc
net start bits
net start wuauserv

Désactiver temporairement WSUS/GPO imposant UseWUServer (à rebasculer ensuite)

Lorsque l’activation de composants facultatifs échoue (ex. NetFx3), un WSUS peut bloquer la source. Basculez provisoirement sur Windows Update public :

reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" ^
 /v UseWUServer /t REG_DWORD /d 0 /f
net stop wuauserv & net start wuauserv

Après installation réussie, rétablissez la valeur attendue par vos GPO.

Installer manuellement le .NET Framework requis

Veeam requiert .NET Framework 4.x pour la plupart des rôles. Sur Windows Server, certains environnements exigent aussi la fonctionnalité .NET 3.5 (NetFx3) pour des dépendances historiques.

Vérifier la présence de .NET 4.x

Contrôle par le Registre

reg query "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" /v Release
reg query "HKLM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" /v Install

La présence d’un Install=1 avec une valeur Release non nulle indique .NET 4.x installé. Ne truquez jamais ces valeurs : installez/ réparez .NET via l’installeur officiel.
Contrôle côté .NET moderne (si vous utilisez aussi .NET “Core”)

dotnet --info

Installer ou réparer .NET 4.x

Exécutez le runtime/desktop offline en administrateur (x64 la plupart du temps) :

dotnetfx48_full_installer.exe /passive /norestart

Adaptez le nom du fichier à la version téléchargée (4.8, 4.8.1, etc.). En cas d’échec, consultez C:\Windows\Logs\CBS\CBS.log et %LOCALAPPDATA%\Temp\*.log pour le détail.

Activer .NET 3.5 (si une dépendance le réclame)

Option 1 : via Windows Features (GUI). Option 2 : via DISM, en pointant sur la source \sources\sxs du média correspondant à votre build :

DISM /Online /Enable-Feature /FeatureName:NetFx3 /All ^
 /LimitAccess /Source:D:\sources\sxs

Si votre serveur est en mode Core, vous pouvez aussi utiliser :

Install-WindowsFeature NET-Framework-Features -Source D:\sources\sxs

Contrôler et réparer l’intégrité du système

Quand Windows présente des symptômes d’échec d’installation répétés, réparez le magasin de composants (CBS) et les fichiers système.
DISM + SFC (Invite de commandes admin)

DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow

Redémarrez si SFC indique des corrections effectuées.
Lire les journaux utiles

  • C:\Windows\Logs\CBS\CBS.log (DISM/SFC)
  • C:\Windows\WindowsUpdate.log (si reconstruit, via Get-WindowsUpdateLog)
  • C:\ProgramData\Veeam\Setup\Logs (journaux d’installation Veeam)

Créer/corriger les clés de Registre signalées par Veeam

Important : n’éditez pas arbitrairement le Registre. Ne créez que la ou les clés explicitement demandées par le support Veeam et seulement après export de la branche concernée (Regedit › Fichier › Exporter).

Exemple de sauvegarde et création d’une clé manquante (générique, à adapter avec la clé communiquée par le support) :

reg export "HKLM\SOFTWARE\Veeam" C:\Temp\backup_veeam.reg
reg add "HKLM\SOFTWARE\Veeam\Veeam Backup and Replication" /v ExampleFlag /t REG_DWORD /d 1 /f

Une fois la clé créée/corrigée, relancez l’installeur. Dans de nombreux cas, c’est l’élément qui débloque la détection de prérequis.

Redémarrer et prouver qu’aucun redémarrage n’est en attente

Avant de relancer Veeam, éliminez tout redémarrage en attente :

reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending"
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired"
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager" /v PendingFileRenameOperations

Snippet PowerShell pour un statut lisible

$paths = @(
 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending',
 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired'
)
$pending = $false
foreach ($p in $paths) {
  if (Test-Path $p) { Write-Host "En attente: $p"; $pending = $true }
}
try {
  $pf = Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager' `
       -Name PendingFileRenameOperations -ErrorAction Stop
  if ($pf.PendingFileRenameOperations) { Write-Host "En attente: PendingFileRenameOperations"; $pending = $true }
} catch {}
if (-not $pending) { Write-Host "Aucun redémarrage en attente." }

Désactiver temporairement l’antivirus/EDR

Si l’installeur reste figé, coupez provisoirement l’analyse en temps réel (selon procédure interne) ou ajoutez des exclusions le temps de l’installation :

  • Dossiers Veeam : C:\Program Files\Veeam\*, C:\ProgramData\Veeam\*, %TEMP%\Veeam*
  • Processus de setup : VeeamSetup.exe, VBRSetup.exe (noms susceptibles de varier selon la version)

Réactivez immédiatement après l’installation.

Résultat attendu

Dans la majorité des cas, Veeam Backup & Replication s’installe et fonctionne correctement après l’application des points 1–4 : Windows à jour, .NET installé/réparé, système intègre (DISM/SFC) et clés de Registre corrigées.


Vérifications de base supplémentaires (gain de temps)

ContrôleCommande/ActionPourquoi c’est utile
Espace disqueGet-PSDrive C | Select Used,FreeÉvite les échecs silencieux lors de l’extraction des binaires.
UAC/ÉlévationLancer l’installeur en tant qu’administrateurCertains composants écrivent dans des emplacements protégés.
TLS moderneActiver TLS 1.2 pour .NET si politique héritée restrictiveEmpêche des erreurs réseau pendant le téléchargement de dépendances.
Serveur en mode CoreUtiliser sconfig pour Windows UpdateInterface minimale : veillez à la source \sources\sxs pour .NET 3.5.

Scripts prêts à copier-coller

Vérification “tout‑en‑un” des prérequis côté Windows

# Exécuter en PowerShell ISE/Terminal en tant qu'Administrateur
Write-Host "=== Services Windows Update ==="
Get-Service wuauserv,bits,cryptsvc | Select Name,Status | Format-Table -Auto

Write-Host "`n=== .NET 4.x (Registre) ==="
$dotnet = Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" -ErrorAction SilentlyContinue
if ($dotnet) { $dotnet | Select Install,Release }
else { Write-Host "Clé .NET v4\Full introuvable" }

Write-Host "`n=== Redémarrage en attente ==="
$pending = @()
if (Test-Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending'){ $pending += 'CBS' }
if (Test-Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired'){ $pending += 'WindowsUpdate' }
try {
$pf = Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager' -Name PendingFileRenameOperations -ErrorAction Stop
if ($pf.PendingFileRenameOperations) { $pending += 'PendingFileRenameOperations' }
} catch {}
if ($pending.Count) { "En attente: $($pending -join ', ')" } else { "Aucun" }

Activer .NET 3.5 en environnement WSUS (source locale)

# Adaptez la lettre du média d'installation (D:)
DISM /Online /Enable-Feature /FeatureName:NetFx3 /All /LimitAccess /Source:D:\sources\sxs

Réparer le magasin de composants puis les fichiers système

DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow

Problème connexe : authentification Kerberos / message d’erreur SPN

Contexte : une fois Veeam installé, le support mentionne un échec d’authentification Kerberos dû à un SPN incorrect.
Statut : sujet distinct de l’installation — ouvrez un ticket dédié pour éviter les confusions.

Pistes rapides si vous décidez d’enquêter

ÉtapeDétailsCommandes utiles
Vérifier l’heureSynchronisation NTP entre clients et DC ; dérive < 5 min.w32tm /query /statusw32tm /resync /nowait
Lister les SPNComparer aux valeurs attendues pour le compte de service.setspn -L <Compte‑Service>setspn -Q HTTP/<FQDN>setspn -X (doublons)
Corriger un SPNAjoutez le SPN correct sur l’objet qui exécute le service (compte utilisateur ou compte ordinateur).setspn -S HTTP/<FQDN> <Domaine\Compte‑Service>
Rafraîchir cachesAttendre la réplication AD, purger le cache Kerberos côté machine.klist purge (client) • relancer le service concerné
Consulter les journauxÉvénements d’échec de ticket côté DC.Observateur d’événements › Sécurité › ID 4769

Bonnes pratiques Kerberos utiles à Veeam

  • SPN unique : un SPN ne doit exister que sur un seul objet (évitez les doublons setspn -X).
  • Nom utilisé = SPN déclaré : si Veeam cible FQDN, le SPN doit être déclaré pour ce FQDN (plus éventuellement le NetBIOS selon les usages).
  • Type de SPN adapté :
    • HTTP/<FQDN> pour les interfaces web (ex. Enterprise Manager).
    • MSSQLSvc/<FQDN:Port> si vous utilisez SQL Server (instances Veeam plus anciennes ou externes).
    • HOST/CIFS selon les accès SMB/WMI, si Kerberos est exigé.
  • Compte correct : déclarez le SPN sur le compte qui exécute le service (compte utilisateur gMSA/service—ou ordinateur si c’est Local System/Network Service et authentification par le compte machine).
  • Éviter les CNAME non mappés : si vous utilisez un alias DNS, pensez aux SPN correspondants ou au paramètre usePrincipalName selon le service.

FAQ et erreurs fréquentes (.NET et installation)

Erreur 0x800F081F pendant l’activation de .NET 3.5

La source des fonctionnalités à la demande est introuvable. Utilisez le média d’installation correspondant à la même édition/build et pointez \sources\sxs via DISM avec /LimitAccess. Désactivez temporairement WSUS (UseWUServer=0) si nécessaire, puis rétablissez la GPO.

Erreur 0x80070643 ou “fatale” lors du setup .NET 4.x

Installez en mode offline (/passive /norestart), puis exécutez DISM /RestoreHealth et sfc /scannow. Vérifiez aussi qu’aucun redémarrage n’est en attente. Les journaux CBS et du setup .NET donnent les détails.

.NET semble installé mais Veeam le réclame quand même

Les clés de détection peuvent être altérées. Ne les forcez pas à la main : réinstallez .NET depuis l’installeur officiel. Si le support Veeam vous demande une clé spécifique (non liée à la détection .NET), exportez la branche, créez la clé, puis relancez.

L’installeur est lent ou se fige

Excluez temporairement les dossiers Veeam et %TEMP% de l’antivirus/EDR, coupez les « analyseurs » comportementaux le temps du setup, vérifiez l’I/O disque et l’espace libre (au moins plusieurs Go pour l’extraction).


Bonnes pratiques pour éviter la récidive

  • Maintenir un “baseline” Windows : correctifs cumulés mensuels installés, redémarrages réguliers, sauvegardes système.
  • Conserver un ISO/média aligné sur la build du serveur pour activer NetFx3 hors ligne.
  • Documenter les GPO impactant Windows Update/WSUS et .NET pour pouvoir basculer proprement en cas de besoin.
  • Standardiser un script d’amorçage (DISM/SFC/pending reboot check) avant toute installation applicative critique.
  • Segmenter les sujets : installation Veeam d’un côté, Kerberos/SPN de l’autre, pour des tickets clairs et des délais de résolution plus courts.

Journalisation et collecte de preuves en cas d’escalade

  • Logs Veeam d’installation : C:\ProgramData\Veeam\Setup\Logs (compacter et joindre au ticket).
  • Logs Windows Update / CBS : C:\Windows\Logs\CBS\CBS.log, Get-WindowsUpdateLog si nécessaire.
  • Export Registre ciblé avant/après correction des clés signalées par Veeam (.reg joint au ticket).
  • Capture du statut des services Update et du résultat DISM/SFC (sorties texte de vos commandes).

Résumé actionnable

  1. Mettre Windows à jour et remettre d’équerre Windows Update (services + cache).
  2. Installer/réparer .NET 4.x, activer .NET 3.5 via \sources\sxs si requis.
  3. Réparer Windows avec DISM puis SFC.
  4. Appliquer la(s) clé(s) de Registre demandée(s) par le support Veeam (avec sauvegarde préalable).
  5. Redémarrer et vérifier l’absence de redémarrages en attente.
  6. Retenter l’installation en neutralisant temporairement l’antivirus/EDR.

Pour Kerberos/SPN après installation : vérifier l’heure, lister/corriger les SPN (-L, -Q, -X, -S), purger le cache klist, surveiller l’ID 4769 côté DC.


Information complémentaire utile

  • Sauvegarde du Registre : toujours exporter la clé concernée ou créer un point de restauration système avant modification.
  • Outils diagnostics .NET : dotnet --info pour .NET moderne, contrôle Registre pour .NET Framework 4.x.
  • Mises à jour cumulatives Windows : installées en dernier ressort, elles corrigent souvent des problèmes de SPN/Kerberos et d’activation de fonctionnalités.

Exemple de déroulé complet réussi

  1. Réinitialisation Windows Update et désactivation temporaire de UseWUServer.
  2. Installation du runtime .NET 4.x en offline.
  3. DISM /RestoreHealth puis sfc /scannow (réparations effectuées).
  4. Création d’une clé Registre demandée par le support Veeam (export avant/après).
  5. Redémarrage du serveur, statut “aucun redémarrage en attente”.
  6. Relance du setup Veeam → installation OK.

À propos des bases de données Veeam

Selon la version et votre design, Veeam peut recourir à un moteur de base de données local ou distant. Assurez‑vous que :

  • le moteur ciblé est supporté par votre version Veeam ;
  • le compte de service dispose des droits nécessaires ;
  • les ports requis sont ouverts et, si Kerberos est utilisé, que les SPN (ex. MSSQLSvc pour SQL Server) sont en place sans doublon.

Conclusion : en combinant mises à jour Windows, installation contrôlée de .NET, réparation DISM/SFC, correction des clés Registre demandées par Veeam et hygiène de redémarrage/antivirus, vous éliminez 90 % des causes d’échec d’installation. Pour Kerberos/SPN, traitez‑le comme un sujet séparé avec la méthode ci‑dessus pour revenir rapidement à une authentification saine.

Sommaire