Thursday, July 23, 2015

The package list in content library doesn't match the one in WMI

When installing multiple distribution points, I received the following warning on some of them: Failed to retrieve the package list on the distribution point. Or the package list in content library doesn't match the one in WMI. Review smsdpmon.log for more information about this failure. Not that good when installing new distribution points.

Point is, during synchronization a few packages get removed. Therefore some warnings where displayed, but couldn't be deleted. Even after validation the warning still exists. On Microsoft TechNet there is feedback to open a Microsoft support case or run a PowerShell script. Let's have a look at the logfile first.

Within the logfile package ID's are found which causes the warning.

Within Distribution Point Configuration Status (Monitoring tab) the current. status is seen. Click on details to see more information.

I choose to run the PowerShell script instead of opening a Microsoft support case on this. I found two scripts which I start on the effected distribution points. These are found on TechNet Gallery and Liebensraum (extra script). 

$WMIPkgList = Get-WmiObject -Namespace Root\SCCMDP -Class SMS_PackagesInContLib | Select -ExpandProperty PackageID | Sort-Object
$ContentLib = (Get-ItemProperty -path HKLM:SOFTWARE\Microsoft\SMS\DP -Name ContentLibraryPath)
$PkgLibPath = ($ContentLib.ContentLibraryPath) + "\PkgLib"
$PkgLibList = (Get-ChildItem $PkgLibPath | Select -ExpandProperty Name | Sort-Object)
$PkgLibList = ($PKgLibList | ForEach-Object {$_.replace(".INI","")})
$PksinWMIButNotContentLib = Compare-Object -ReferenceObject $WMIPkgList -DifferenceObject $PKgLibList -PassThru | Where-Object { $_.SideIndicator -eq "<=" }
$PksinContentLibButNotWMI = Compare-Object -ReferenceObject $WMIPkgList -DifferenceObject $PKgLibList -PassThru | Where-Object { $_.SideIndicator -eq "=>" }
Write-Host Delete these items from WMI:
$PksinWMIButNotContentLib
Write-Host Delete .INI files of these packages from the PkgLib folder:
$PksinContentLibButNotWMI


After that (and another validation on the distribution points) everything was fine again. Happy with this easy solution, and scripts available! Hope it helps :-)

Have a look here for more information:
Troubleshooting Content Mismatch Warnings on a Distribution Point in System Center 2012 Configuration Manager
Powershell script to fix ContentLib inconsistency in WMI for ConfigMgr 2012 R2
Content validation issues in SCCM 2012
The package data in WMI is not consistent to Pkglib - missing package
SCCM 2012 - How to delete packages from WMI

5 comments:

  1. Is this run on each secondary site server/DP?

    ReplyDelete
    Replies
    1. I should start on the primary site server first. Did this only on sites with remote DP's myself.

      Delete
  2. I can no longer locate the SOFTWARE\Microsoft\SMS\DP key in the registry on any of my DPs. It appears to have been deprecated.

    ReplyDelete
    Replies
    1. On my ConfigMgr 1602 server it's still there!

      Delete