Wie können wir helfen?
Office 365 update error 0x87D0024A(-2016411062)
CMDeployment_15_SCCM CB Deploy Office 365 update keep failing with error 0x87D0024A(-2016411062)
Issue reported: SCCM CB Deploy Office 365 update keep failing with error 0x87D0024A(-2016411062)
Below is screen shot fore reference :
Note: OS windows update works fine, get this error only when trying to deploy office 365 (click to run) (2016)(32bit) (deferred channel) update. Client is a Windows 10 1607, Office 365 version installed is Version 1605 (Build 6965.2105). Office installed in multiple languages.
Solution:
Step 1: Validate UpdatesHandler.log
AlternateHandler is downloading or installing another update, and cannot start another downloading UpdatesHandler 24/01/2017 15:36:58 6604 (0x19CC)
BeginDownload alternate update content failed. Error = 0x87d0024a UpdatesHandler 24/01/2017 15:36:58 6604 (0x19CC)
CBundledUpdate — Failed to download update (6036e1c3-3037-41cb-9268-2416343b5546). Error = 0x87d0024a UpdatesHandler 24/01/2017 15:36:58 6604 (0x19CC)
Ignoring update state (DOWNLOAD_READY) change in job state (2) UpdatesHandler 24/01/2017 15:36:58 7624 (0x1DC8)
CDeploymentJob — Failed to download update (8ff3476c-6e4a-47cf-9cf9-6053d5033c91). Error = 0x87d0024a UpdatesHandler 24/01/2017 15:36:58 6604 (0x19CC)
Step 2: Based on above error found ApiClient.dll DLL is missing on the clients:
C:\Program Files\Common Files\Microsoft Shared\ClickToRun\ApiClient.dll
Copied it manually from a machine where I did the online update to 1605-10. Problem got resolved.
Note: Similar error has reported with different Error = 0x8007007e by performing above steps it resolve issue. Click here
Other Fix:
I had this exact issue and opened an MS support ticket. The com object was the root of my problem (linked to the ApiClient.DLL). One thing I haven’t seen mentioned anywhere though was a script you need to run to re-register the com object.
# Remove the COM+ Application which was hosting the UpdateNotify.Object
Write-Host "Remove the OfficeC2RCom COM+ App if exists"
$comCatalog = New-Object -ComObject COMAdmin.COMAdminCatalog
$appColl = $comCatalog.GetCollection("Applications")
$appColl.Populate()
foreach($app in $appColl)
{
if ($app.Name -eq "OfficeC2RCom")
{
$appColl.Remove($index)
$appColl.SaveChanges()
}
$index++
}
# Create a COM+ application to host UpdateNotify.Object
$comAdmin = New-Object -comobject COMAdmin.COMAdminCatalog
$apps = $comAdmin.GetCollection("Applications")
$apps.Populate();
$newComPackageName = "OfficeC2RCom"
$app = $apps | Where-Object {$_.Name -eq $newComPackageName}
if ($app)
{
# OfficeC2RCom app already exists. Output some info about it
Write-Host ""
$appname = $app.Value("Name")
"This COM+ Application already exists : $appname"
Write-Host ""
"ID: " + $app.Value("ID")
"Identity: " + $app.Value("Identity")
"ApplicationDirectory: " + $app.Value("ApplicationDirectory")
"ConcurrentApps:" + $app.Value("ConcurrentApps")
"RecycleCallLimit:" + $app.Value("RecycleCallLimit")
"Activation:" + $app.Value("Activation")
"ApplicationAccessChecksEnabled:" + $app.Value("ApplicationAccessChecksEnabled")
Write-Host ""
}
Else
{
# OfficeC2RCom app doesn't exist, creat it
# Add the App
Write-Host "Adding OfficeC2RCom COM+ Application..."
Try
{
$app = $apps.Add()
$app.Value("Name") = $newComPackageName
$app.Value("Identity") = "NT AUTHORITY\LocalService"
$app.Value("ApplicationAccessChecksEnabled") = 1
$app.Value("ID") = "{F6B836D9-AF6A-4D05-9A19-E906A0F34770}"
$saveChangesResult = $apps.SaveChanges()
"Results of the Apps SaveChanges operation : $saveChangesResult"
$appid = $app.Value("ID")
# Adding roles
Write-Host "Adding Administrator role to $newComPackageName"
$roles = $apps.GetCollection("Roles", $app.Key)
$roles.Populate()
$role = $roles.Add()
$role.Value("Name") = "Administrator"
$saveChangesResult = $roles.SaveChanges()
"Results of the Roles SaveChanges operation : $saveChangesResult"
# Get the localized string of the Builtin\Administrators
$id = [System.Security.Principal.WellKnownSidType]::BuiltinAdministratorsSid
$Account = New-Object System.Security.Principal.SecurityIdentifier($id, $null)
$localizedAdministrators = $Account.Translate([System.Security.Principal.NTAccount]).Value
"Results of the localized administrators string : $localizedAdministrators"
# Adding BUILTIN\Administrators to the Administrator Role
$users = $roles.GetCollection("UsersInRole", $role.Key)
$users.Populate()
$user = $users.Add()
$user.Value("User") = $localizedAdministrators
$saveChangesResult = $users.SaveChanges()
"Results of the Users SaveChanges operation : $saveChangesResult"
}
catch
{
Write-Host "Failed to add OfficeC2RCom as COM+ application." -ForegroundColor White -BackgroundColor Red
exit
}
Write-Host "Successfully added COM+ application: $newComPackageName, id: $appid" -ForegroundColor Blue -BackgroundColor Green
}
# Adding the UpdateNotify.Object as the component of OfficeC2RCom
$comps = $apps.GetCollection("Components", $app.Key)
$comps.Populate()
$newCompName = "UpdateNotify.Object.1"
$comp = $comps | Where-Object {$_.Name -eq "UpdateNotify.Object.1"}
if ($comp)
{
"The $newCompName already exists!"
}
Else
{
Try
{
$comAdmin.ImportComponent($newComPackageName, $NewCompName)
}
catch
{
Write-Host "Failed to add $newCompName to $newComPackageName" -ForegroundColor White -BackgroundColor Red
exit
}
Write-Host "Successfully added $newCompName to $newComPackageName" -ForegroundColor Blue -BackgroundColor Green
}
Start this powershell script with Admin rights and reboot the client.