Thursday, April 10, 2014

Software Updates Deployment Package Distribution Error


Software Updates Deployment Package Distribution Error.


I have had a few instances where after I change my automatic deployment rule for software updates the deployment package will not distribute to the distribution points as it thinks it downloaded the updates but cannot find the directory it is looking for.  The error in the distmgr.log is “The source directory \\<ServerName>\<FolderPath>\<UpdateGUID> doesn't exist or the SMS service cannot access it, Win32 last error = 2”.  Another place to find the error is in the Content Status of the Package by going into the Configuration Manager Console\Monitoring\Distribution Status\Content Status\ Find your Package\ Click View Status\Click the Error Tab\ Under Asset Details \Click an Errored Distribution Point\click More Details. It will say something similar to “The source directory “\\<ServerName>\<FolderPath>\<UpdateGUID> “ for package “<PACKAGE ID> does not exist...”


I pulled this information from a couple of sources and

Had to give credit where it was due J

Steps to Resolve

1.       Open SQL Server Management Studio and create a new query pointed to your SCCM database (Not Master)

a.       Copy and paste this query

DECLARE @MissingSourceDirectory NVARCHAR(512)
SET @MissingSourceDirectory = 'c34e2458-681f-4a8b-8941-a460c2de314a'
SET @PackageId = '0020000D'

        WHEN ci.BulletinID LIKE '' OR ci.BulletinID IS NULL THEN 'Non Security Update'
        ELSE ci.BulletinID
        END As BulletinID
    , ci.ArticleID
    , loc.DisplayName
    , loc.Description
    , ci.IsExpired
    , ci.DatePosted
    , ci.DateRevised
    , ci.Severity
    , ci.RevisionNumber
    , ci.CI_ID
FROM dbo.v_UpdateCIs AS ci
LEFT OUTER JOIN dbo.v_LocalizedCIProperties_SiteLoc AS loc ON loc.CI_ID = ci.CI_ID
    SELECT [FromCI_ID]
    FROM [dbo].[CI_ConfigurationItemRelations] cir
    INNER JOIN [dbo].[CI_RelationTypes] rt ON cir.RelationType = rt.RelationType
    WHERE cir.ToCI_ID IN
        SELECT CI_ID
        FROM [dbo].[CI_ContentPackages] cp
        INNER JOIN [dbo].[CI_ConfigurationItemContents] cic ON cp.Content_ID = cic.Content_ID
        WHERE cp.ContentSubFolder = @MissingSourceDirectory AND cp.PkgID = @PackageId

b.      Replace the highlighted areas with the values from your error

                                                               i.      @missingSourceDirectory

                                                             ii.      @PackageId

c.       Execute the Query

                                                               i.      This should give you the KB Article

2.       Open the Configuration Manager Console

a.       Go to Software Library>Software Updates>Deployment Packages

                                                               i.      Open the problem Deployment package to where you can see all the updates listed

                                                             ii.      Search for the KB you found above and delete it from the deployment package

b.      Go to Software Library>Software Updates>Software Update Groups

                                                               i.      Look for the Update Groups with the Red X and open them up

                                                             ii.      Look for the Red X updates and right click on them and click Download

1.       If it is expired or superseded just delete it from the update group as you will be unable to download it.

3.       Watch the Distmgr.log file and see if it completes its checks and start distributing the package to your distribution points

4.       This should resolve the issue if it does not look at the logs again and repeat as it will be erroring on a new GUID now.

a.       If you find several you may wish to take a shotgun approach and open the Deployment package and put in a date range you think is the issue and then delete the updates from the deployment package and then go back to the Software Update Groups and tell all the Red Xs to download again.  This should resolve the issue as well.  After each successful download watch the DistMgr.log to validate a successful deployment