Lors de la vérification du statut de déploiement de vos packages sur les points de distribution (DP), vous pouvez rencontrer l’avertissement suivant : « Failed to retrieve the package list on the distribution point ». Cet article explique la cause de cette erreur et propose une solution pour la corriger.
Cause de l’avertissement
Un point de distribution contient deux listes de packages :
- Liste WMI : Stockée dans WMI (Windows Management Instrumentation), elle enregistre les packages présents sur le DP.
- Liste PkgLib : Localisée dans le dossier PkgLib de la bibliothèque de contenu du DP, elle contient les objets de fichiers correspondants aux packages.
Ces deux listes doivent être synchronisées. Si elles diffèrent, un avertissement s’affiche. Deux situations principales peuvent en être la cause :
- Un package est listé dans WMI mais absent de la bibliothèque de contenu (PkgLib).
- Un package est présent dans la bibliothèque de contenu mais absent de WMI.
- Un package référencé sur le DP n’existe plus dans la liste principale du serveur de site (généralement après suppression d’une application ou d’un package).
Ces incohérences créent des ID de package orphelins qui nécessitent un nettoyage pour rétablir une synchronisation correcte.

Comment résoudre l’avertissement « Failed to retrieve the package list »
Utilisation de ContentLibraryCleanup.exe
Depuis SCCM Current Branch 2010, l’outil ContentLibraryCleanup.exe permet de supprimer automatiquement les enregistrements WMI orphelins sur le DP. Vous pouvez suivre la documentation officielle pour son utilisation (également abordé dans notre article « [Comment nettoyer les points de distribution] »).
Utilisation d’un script PowerShell
Le script suivant vérifie la correspondance des deux listes (WMI et PkgLib) et propose de supprimer les entrées incohérentes.
# Récupération des packages enregistrés en WMI
$WMIPkgList = Get-WmiObject -Namespace Root\SCCMDP -Class SMS_PackagesInContLib | Select -ExpandProperty PackageID | Sort-Object
# Définition du chemin de la Content Library
$ContentLib = (Get-ItemProperty HKLM:SOFTWARE\Microsoft\SMS\DP).ContentLibraryPath
$PkgLibPath = "$ContentLib\PkgLib"
# Récupération des packages listés dans PkgLib
$PkgLibList = (Get-ChildItem $PkgLibPath | Select -ExpandProperty Name | Sort-Object)
$PkgLibList = ($PkgLibList | ForEach-Object { $_.replace(".INI", "") })
# Comparaison des listes
$PksinWMIButNotContentLib = Compare-Object -ReferenceObject $WMIPkgList -DifferenceObject $PkgLibList -PassThru
$PksinContentLibButNotWMI = Compare-Object -ReferenceObject $PkgLibList -DifferenceObject $WMIPkgList -PassThru
# Suppression des packages présents en WMI mais absents de Content Library
Write-Host "Items in WMI but not in Content Library" -ForegroundColor Cyan
$PksinWMIButNotContentLib
Foreach ($Pkg in $PksinWMIButNotContentLib) {
Get-WmiObject -Namespace Root\SCCMDP -Class SMS_PackagesInContLib -Filter "PackageID = '$Pkg'" | Remove-WmiObject -Confirm
}
# Suppression des packages présents en Content Library mais absents de WMI
Write-Host "Items in Content Library but not in WMI" -ForegroundColor Cyan
$PksinContentLibButNotWMI
Foreach ($Pkg in $PksinContentLibButNotWMI) {
Remove-Item -Path "$PkgLibPath\$Pkg.INI" -Confirm
}
Validation et finalisation
Une fois le script exécuté, il est recommandé de lancer une validation du contenu dans SCCM pour résynchroniser les informations et assurer la correction de l’erreur.
Failed to retrieve the package list on the distribution point » : Conclusion
Bien que cet avertissement ne soit pas critique, il faut le traiter pour maintenir une infrastructure SCCM propre et performante. En utilisant l’outil ContentLibraryCleanup.exe ou le script PowerShell, vous pouvez facilement éliminer ces incohérences et rétablir un déploiement optimal des packages sur vos points de distribution.