Powershell – SCCM Message Status Error 10025 – Find Windows Updates Content That Client Cannot Download

SCCM Message Status Error 10025 – this script finds the Windows Update that the SCCM Client is having trouble downloading

For possible reasons why you are seeing the error message see http://britv8.com/reasons-for-sccm-message-status-error-10025/

So far I have seen 3 types of content that the SCCM Message Status Error 10025 reports on 

  1. Applications (Start with Content_…….)
  2. Packages  (Start With SiteCode e.g. ABC00023)
  3. Windows Updates ( Start with a Hex code e.g. 47e7cb44-…..)

So this script covers item 3

This script https://www.verboon.info/tag/status-message-10025/ covers item 1

The are a few assumptions here.

You have already imported the SCCM cmdlets module and verified that you are connected to SCCM and can run the cmdlets

 

<##
.Synopsis
    Get-xCMContentIDforSU
.DESCRIPTION
   This function retrieves the Application name for the provided CI_UniqueID
   e.g. 666e73df-99fa-4ceb-8f87-c428cf173384. 
   Use this when analyzing status messages (10025) for clients reporting problems
   acquiring package content   

.EXAMPLE
    Get-xCMContentIDforSU -SiteServer cmsrv01 -SiteCode lab -ContentID 666e73df-99fa-4ceb-8f87-c428cf173384

CI_ID                   : 16858384
CI_UniqueID             : 7e459084-4317-44bd-bbea-9c5363120f2b
LocalizedDisplayName    : Update for Windows 7 for x64-based Systems (KB2952664)
LocalizedInformation    : 
LocalizedInformativeURL : http://support.microsoft.com/kb/2952664
ModelID                 : 16853945
ModelName               : Site_15C80E4B-BE63-4B74-B7ED-20F96A08B8C6/SUM_7e459084-4317-44bd-bbea-9c5363120f2b
NumMissing              : 340
NumNotApplicable        : 642
NumUnknown              : 184
NumPresent              : 5071
NumTotal                : 6237 

    The above example retrieves the Sofware Update name for each CI_UniqueID provided. 

.NOTES



##>


[CmdletBinding(SupportsShouldProcess=$true)]
    Param
    (
        [Parameter(Mandatory=$true,
                   ValueFromPipelineByPropertyName=$true,
                   Position=0)]
        $SiteServer,
        [Parameter(Mandatory=$true,
                   ValueFromPipelineByPropertyName=$true,
                   Position=1)]
        $SiteCode,
        [Parameter(Mandatory=$true,
                   ValueFromPipelineByPropertyName=$true,
                   Position=2)]
        $CI_UniqueID
    )


$CIToContent = Get-WmiObject -Namespace root\sms\site_$siteCode -ComputerName $SiteServer -class SMS_CIToContent -filter "CI_UniqueID = '$ContentUniqueID' "

If ($CIToContent)
{
    #May return more than one, but they will all be the same, so just use the first in the array
    $Result = Get-CMSoftwareUpdate -fast -Id $CIToContent.CI_ID[0]
    if($Result)
    {
    $Result |select CI_ID,CI_UniqueID,LocalizedDisplayName,LocalizedInformation,LocalizedInformativeURL,ModelID,ModelName,NumMissing,NumNotApplicable,NumUnknown,NumPresent,NumTotal
    }
    else
    {
    Write-Error -Exception "Content_Not_Found" -Message "ContentUniqueID not Found in Software Updates"
    }
}
else
{
Write-Error -Exception "Content_Not_Found" -Message "ContentUniqueID not Found"
}

 

Leave a comment

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.