다음을 통해 공유


Distribution point configuration status troubleshooting

The primary means of monitoring the health of a site's DPs is the Distribution Point Configuration Status node, found under Monitoring -> Distribution Status.  In a perfectly healthy site, this node will list every distribution point in the site with a Status Type of Success.  However, there are many underlying problems at every level of the environment (site, DP, package) that all surface through this view, such that it may be necessary to troubleshoot an array of unrelated issues to bring an individual DP's status to Success.   This article will outline as many issues as we have encountered to date, along with everything currently known on how to resolve them.

Content libraries

In almost all cases, any issue with a distribution point is rooted in a problem with a content library.  At this level of detail, it is important to distinguish between the different content libraries that exist within Configuration Manager - while they are all supposed to be kept in perfect synchronization, corruption can occur over time and will manifest ultimately in a DP configuration status of something other than Success or In Progress.

The highest-level content library exists within the site as a whole.  It can be inspected by working with the WIM namespace root\sms\site_<sitecode> on the site server.  There are numerous classes that, when taken collectively, can be considered the site content library.  The site content library is also present in part on the filesystem of the site server, within one or more folders (possibly on multiple volumes) named SCCMContentLib. This is the content library that is seen through the ConfigMgr admin console, and is generally considered the most authoritative.

Each distribution point maintains its own content library, and it similarly is exposed on the filesystem as one or more SCCMContentLib folders.  Within WMI however, the structure is very different - the namespace is root\sccmdp and the classes underneath it do not correspond to classes under root\sms\site_<sitecode> at the site level.

Unique problems can manifest within each tier of the content library structure, and may have to be resolved independently.  Keep in mind that while a problem may appear to be local to an individual DP, the root cause may exist with the site's content library, and thus need to be remediated there.

Presentation of individual issues

Here we will outline all known issues that can be surfaced from the Distribution Point Configuration Status node, along with how they can be resolved (if known).  Be sure to look at the "Details" tab within the DPCS node, to see a comprehensive breakdown of every message associated with a given DP.

Packages referred to that cannot be found elsewhere in the site

Most DP messages will be associated with a particular package ID.  However, it is possible for DP messages to exist that reference a package ID that does not exist elsewhere in the site.  This is most likely caused by the incomplete deletion of that package within the site.  The specifics of the message are less important than the fact that it correlates to a non-existent package ID. To clear this message, we must complete the removal of that package ID from within the site content library.

To establish that we are dealing with a "phantom package", first go to Monitoring -> Content Status and attempt to find an entry for the package ID.  Also go to the distribution point's properties page (from Administration -> Distribution Points) and review the content tab for that package ID.  If no such entry exists within neither the Content Status nor DP properties content tab, then you will need to query the SQL database directly to verify the corruption within the content library.  If you see the package ID within either view, move on to troubleshooting the particular message for that package ID.  Otherwise, keep going. 

Use the queries

"select * from PkgStatus where ID like '%ABC12345%'"



"select * from PkgServers where PkgID = 'ABC12345' and NALPath like '%SCCM-DP01%'"

where "ABC12345" is the package ID in question and "SCCM-DP01" is the distribution point we are troubleshooting.  If those queries return any records (while not existing within Content Status/DP properties content tab), then we are dealing with an incomplete deletion that must be fully removed from the system.

Repairing this issue requires manipulating the Configuration Manager site database directly, so only do so in conjunction with Microsoft Support (and after doublechecking your backups)!  The command to perform the cleanup is:

"Delete from SMSPackages where PkgID = 'ABC12345'" 

You should see a number of deletions from various tables as referential integrity works its way through the database.  To verify the deletion, use the SQL select queries listed above and finally examine the DP configuration status detail view - messages corresponding to the invalid package ID should be gone.

Error statuses mentioning package IDs that are valid

These issues can usually be resolved by triggering a redistribution of the package showing the error. You may wish to perform a DP validation (available as a scheduled task within the DP, look in a folder named "Configuration Manager") to update the associated message details as quickly as possible.

Failed to retrieve the package list on the distribution point, no associated package ID

This error is unique within the distribution point configuration status detail view, in that it does not have an associated package ID.  This message can indicate that there is corruption with the DP-level content library.  The error may also be extremely old (compared to other messages for this DP), and most likely dates back to when the corruption was first noticed during a routine content validation task.  To clear this message, we must dig into the content library as stored on the individual DP we are troubleshooting.

Identifying corruption within the DP content store

Corruption of the DP content store usually consists of a mismatch between what is recorded in WMI and what is recorded in the filesystem.  To find mismatches, use the following PowerShell commands:

Get-ChildItem E:\SCCMContentLib\PkgLib\*.ini | out-file dir.txt



Get-WmiObject -namespace root\sccmdp -class SMS_PackagesInContLib | format-list -Property PackageID | out-file wmi.txt

An uncorrupted content store will have every entry in dir.txt (representing the filesystem content store) match up with wmi.txt (representing the WMI content store).  What happens next depends upon the nature of the mismatch.

Items in WMI but not in the filesystem are most easily repaired by triggering a redistribution of the content.  Items in the filesystem but not WMI are most likely phantom packages similar to what can happen at the site content level - deletions that were not properly propagated throughout the site.  You can verify that they are phantom packages using the two views mentioned above (Content Status and distribution point properties, content tab).  To remove the package remnants from the filesystem content library, delete the INI that corresponds to the phantom package ID.  If the package ID does prove to be valid, you can re-insert the package into the local WMI content library with this command:

Set-WmiInstance -Namespace root\sccmdp -Class SMS_PackagesInContLib -argument @{PackageID="ABC12345"} -PutType CreateOnly 

Re-gather and compare the filesystem\WMI versions of the content library as often as necessary until the two are in sync.  Then perform a content validation of the DP and the offending message within the distribution point configuration status view should clear.