Software Updates Deployment Package Distribution Error.
Problem
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...”
Solution
I pulled this information from a couple of sources http://www.verboon.info/2013/08/configmgr-2012-troubleshooting-a-software-update-package/ and http://blogs.technet.com/b/ken_brumfield/archive/2013/01/10/troubleshooting-sccm-software-update-deployment-package-distribution-due-to-missing-directories.aspx
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)
DECLARE @PackageId NVARCHAR(8)
SET @MissingSourceDirectory = 'c34e2458-681f-4a8b-8941-a460c2de314a'
SET @PackageId = '0020000D' 
SELECT CASE
        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
WHERE ci.CI_ID IN
(
    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
Thanks!
ReplyDeleteThis comment has been removed by the author.
ReplyDeleteso what happens if the query executes successfully, but fails to find a corresponding KB?
ReplyDeleteAlso have a similar problem. I find a correspondig KB but it does not have an id, just this:
DeleteBulletin ID: Non Security Update
Display Name: NULL
Description: NULL
IsExpired: 0
DatePosted: 2017-09-29 03:23:41.000
DateRevised: 2017-09-29 03:23:41.000
Severity: 0
Revision Number: 200
CI_ID: 16891679
Any ideas?
I've read a lot of blogs about fixing this. Hands-down yours is the best. Easy to read, the query works :-) And the fix is plain vanilla and easy. Job well done sir.
ReplyDeleteThis query also worked for me. Thanks for sharing
ReplyDeleteThanks it was helpful :)
ReplyDeleteFor some reason, sccm's wsus server removed permissions from it's WSUS share. I deleted (stupidly), the scep packages out of the dp's.
ReplyDeleteThen discovered missing permissions, and got everything working again, but scep wouldn't distribute to the dp's anymore. With the above red lines in the log.
Much messing around, and googling solutions, I came across this, and it worked.
Thank you.
Great stuff, thanks a lot!
ReplyDeleteBrilliant article. Thanks alot!
ReplyDeleteWonderful, my issue got resolved after following the steps.
ReplyDelete