You are currently viewing Comment résoudre l’erreur « Failed to retrieve the package list… »

Comment résoudre l’erreur « Failed to retrieve the package list… »

  • Post category:SCCM
  • Commentaires de la publication :0 commentaire

Lorsque vous vérifiez le statut du déploiement de vos packages sur les points de distribution, vous pouvez voir que certains packages contiennent un avertissement. Dans le détail du message, vous retrouvez le message « Failed to retrieve the package list on the distribution point ». Il s’agit d’une erreur assez fréquente. Cet article explique la cause de cet avertissement et comment résoudre ce problème.

Cause du message d’avertissement

Il existe essentiellement deux listes différentes de packages de contenu sur un point de distribution (DP), et elles doivent correspondre l’une à l’autre. L’une se trouve dans WMI, et l’autre est la liste des objets de fichiers dans le dossier PkgLib de la bibliothèque de contenu du DP. De plus, tout package répertorié sur le point de distribution doit également être répertorié dans la liste des packages sur votre serveur de site principal.

Si les deux listes du point de distribution ne correspondent pas, vous obtiendrez un statut d’avertissement. Ou, si un ID de package existe sur votre DP, mais n’existe plus dans la liste principale de votre serveur de site primaire (probablement parce que vous avez supprimé l’application/package qui l’a créé), alors vous avez des ID de package orphelins sur le DP qui doivent être nettoyés. Cela entraînera également un statut d’avertissement.

Failed to retrieve the package list

Comment résoudre l’avertissement « Failed to retrieve the package list on the distribution point »

Rappel

Pour information, depuis Current Branch 2010, l’outil ContentLibraryCleanup.exe supprime également les enregistrements WMI orphelins sur le point de distribution. L’utilisation de cet outil est détaillé dans l’article « Comment nettoyer les points de distribution« .

Le script ci-dessous va vérifier la concordance des deux listes. Pour chaque entrée qui n’est pas cohérente, un message s’affichera vous demandant si vous souhaitez supprimer l’entrée du package.

$WMIPkgList = Get-WmiObject -Namespace Root\SCCMDP -Class SMS_PackagesInContLib | Select -ExpandProperty PackageID | Sort-Object
$ContentLib = (Get-ItemProperty HKLM:SOFTWARE\Microsoft\SMS\DP).ContentLibraryPath
$PkgLibPath = ($ContentLib) + "\PkgLib"
$PkgLibList = (Get-ChildItem $PkgLibPath | Select -ExpandProperty Name | Sort-Object)
$PkgLibList = ($PKgLibList | ForEach-Object {$_.replace(".INI","")})
$PksinWMIButNotContentLib = Compare-Object -ReferenceObject $WMIPkgList -DifferenceObject $PKgLibList -PassThru

##### section 1 #######################
Write-Host Items in WMI but not the Content Library
Write-Host ========================================
$PksinWMIButNotContentLib
Foreach ($Pkg in $PksinWMIButNotContentLib){
    Get-WmiObject -Namespace Root\SCCMDP -Class SMS_PackagesInContLib -Filter "PackageID = '$Pkg'" | Remove-WmiObject -Confirm
}
###### end section 1 ##################

##### section 2 #######################
Write-Host Items in Content Library but not WMI
Write-Host ====================================
$PksinContentLibButNotWMI
Foreach ($Pkg in $PksinContentLibButNotWMI){
   Remove-Item -Path "$PkgLibPath\$Pkg.INI" -Confirm
}
##### end section 2 ###################

Une fois le script terminé, lancez une validation du contenu pour que SCCM vérifie à nouveau la cohérence du content library et la liste WMI.

Conclusion

Bien qu’il s’agisse d’un simple avertissement, il est utile de le traiter afin de garder une infrastructure saine. Grâce à ce script, il est facile de supprimer cet avertissement et passer le point de distribution au vert.

Laisser un commentaire