In a hurry and just want the script, click here.
Synopsis
FYI: 0x87d01290 is a generic detection failure.
- Corrupted Manifest.xml, as outlined in detail below.
- Missing content in the App-V Package Store, see appendix note 1.
Issue
Some App-V packages are delivered to the client computer but none of the App-V packages are shown in Software Centre. Checking with the command "Get-AppvClientPackage" often shows the error below. The observed packages delivered are computer targeted packages, we had no user target packages assigned to the user account, thus unable to confirm user targeted 0x87d01290 issues.
Get-AppvClientPackage : Application Virtualization Service failed to complete requested operation. Operation attempted: Get Packages. Windows Error: 0x800703E7 - Error performing inpage operation Error module: Manifest Library. Internal error detail: 43E01234800703E7. Please consult AppV Client Event Log for more details.
Checking in the registry in path "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Client\Packages", it
lists the successfully published applications by App-V GUID. The successfully
published appear to function. The successfully published applications appear to function with exception to the applications with a corrupted Manifest.xml.
Once delivery of App-V packages fails due to the corrupted Manifest.xml, it will cause other 0x87D01290 errors to occur. This is due to the App-V client hanging and not responding to the ConfigMgr agent, when it querying for published App-V applications. At this point, new App-V applications will not be deployed/published to the computer, as the agent is unable to determine what is and isn't published.
This error 0x87d01290, effects App-V User and Machine targeted applications.
Clients: Windows 10 1803 64-bit Education with many users using each computer.
Please note that the 0x87D01290 error is a symptom of a issue, but not the root cause of the issue itself.
Discovery
- The client computer via ConfigMgr logs will show error 0x87D01290.
- SCCM Monitoring for application deployment status will show client computers with an Enforcement State of "An error occurred when querying the App-V WMI provider".
- Home > YourSCCMReportingServer_URL > Software Distribution - Application Monitoring > Application Compliance.
- Select your application in the drop down menu and then collection (All Windows 10 clients for example). Hit "View Report".
- Once the report loads, click on the Application link, this will allow you to dig into the results for more details. Once loaded again, click on the number of errors link, this will show you a breakdown of the errors. You should see an Enforcement State error "An error occurred when querying the App-V WMI provider", this is the 0x87d01290.
Component:
AppVHandler
Note 0x87d01290 error.
AppVPackageQueryClient5X::GetPackageDataByPackageGUID() failed for virtual application [XXXXXXXXXXXXXX]. (0x87d01290)
Log: C:\Windows\CCM\Logs\AppIntentEval.log
Component:
AppIntentEval
Note Current State = Error due to App-V being
unable to do the evaluation.
ScopeId_XXXXXXXXXXXXXX/RequiredApplication_XXXXXXXXXXXXXX/8 :- Current
State = Error, Applicability = Unknown, ResolvedState = None, ConfigureState =
NotNeeded, Title = ApplicationIntentPolicy
Found better solution to discover all the 0x87d01290 errors. In SCCM, create a query with the WQL below to list all devices with this error, and the applications that is currently blocked from delivery. This is a dynamic query, so computers will fall out of the collection as they are fixed. Please note the query will list User and Computers with 0x87d01290 errors.
All applications that are not being delivered due to error.
select SMS_R_System.Name, SMS_R_System.ResourceId, SMS_R_System.OperatingSystemNameandVersion, SMS_AppDeploymentAssetDetails.AppName, SMS_AppDeploymentAssetDetails.StatusType, SMS_AppDeploymentAssetDetails.EnforcementState, SMS_AppDeploymentAssetDetails.CollectionName, SMS_AppDeploymentAssetDetails.Technology from SMS_R_System inner join SMS_AppDeploymentAssetDetails on SMS_AppDeploymentAssetDetails.MachineID = SMS_R_System.ResourceId where SMS_AppDeploymentAssetDetails.StatusType = "5" And SMS_AppDeploymentAssetDetails.Technology = "AppV5X" And SMS_R_System.OperatingSystemNameandVersion = "Microsoft Windows NT Workstation 10.0" And SMS_AppDeploymentAssetDetails.EnforcementState = "5001"
Select Distinct SMS_R_System.Name from SMS_R_System inner join SMS_AppDeploymentAssetDetails on SMS_AppDeploymentAssetDetails.MachineID = SMS_R_System.ResourceId where SMS_AppDeploymentAssetDetails.StatusType = "5" And SMS_AppDeploymentAssetDetails.Technology = "AppV5X" And SMS_R_System.OperatingSystemNameandVersion = "Microsoft Windows NT Workstation 10.0" And SMS_AppDeploymentAssetDetails.EnforcementState = "5001"
Get-AppvClientPackage : Application Virtualization Service failed to complete requested operation. Operation attempted: Get Packages. Windows Error: 0x80070005 - Access is denied Error module: Manifest Library. Internal error detail: 43E0123480070005.
On 3 instances of checking 17 machines, we have found that the Manifest.xml has been OK, but the App-V error still appears when running the Get-AppvClientPackage cmdlet. We think this could be due to malformed XML’s in the user targeted space? This is speculation, yet to look into and confirm. Looked into the user space with malformed XML's and found no issues, used a PowerShell script to recursively check all the App-V XML's in the user space (AppxManifest.xml, FilesystemMetadata.xml, PackageHistory.xml, StreamMap.xm, DynamicConfiguration.xml and UserManifest.xml) but found no issues.
So far we have only found this issue in Manifest.xml’s.
Research
Root Cause
- Not sure when corruption occurs, on delivery of files?
- ConfigMgr AppDiscovery is run, an application is missing, triggers action to publish missing application.
- App-V attempts to publish the application, it breaks at this point(?).
- ConfigMgr agent uses some WMI calls (App-V cmdlets) to query what applications are on the computer, WMI is now broken due to the attempt to publish previously.
- Broken WMI (App-V cmdlets) cause ConfigMgr to report an evaluation error, because it can not query correctly/anymore.
Which each ConfigMgr query for application thereafter, it will report a 0x87d01290.
Fix or Resolution (currently in progress, last updated 2019/02/14)Final Resolution Applied. In short... Plan A
Plan B (Big Fix Approach) The computer is still having 0x87d01290 issues even after the above fix is applied AND/OR the App-V service is in a stopped state and will not start, trying to start it from GUI will prompt error code 575.
Automation via SCCM Or you can use this script which I produced, it does all of the above with some basic error checking. In almost all cases the computer will need to reboot as the cmdlet to discover any App-V applications running is broken. The script can be found on my GitHub Gist on the URL below. https://gist.github.com/rileyz/93cd70d245ab99fd353a1e39f82f6708 Detection method via Registry key. This can be set in the house keeping part of the script. Logs, if you want to gather the logs to a local location for further checking, use this PowerShell script below. Keep in mind that I used the RDP port to check the computer is alive, adjust for your requirements. Our site has some restrictions, hence the open port check. SCCM Notes
Observations
Script Bugs
Conclusion Seems to be working, all machine based App-V packages now appear to deploy correctly. The User targeted App-V packages seems to still appear with the error, we are not sure if this is due to a fubar'd machine, or there is a still a problem. Havent had the time to look at User targeted App-V packages with the 0x87d01290 error. We thought this might be out of date error state in SCCM SQL db, so we tried removing the objects from SCCM and letting it call home to re-add itself - the error still showed... so still looking it. |
mofcomp "C:\Windows\WinSxS\wow64_microsoft-windows-a..appvprogrammability_31bf3856ad364e35_10.0.17134.1_none_dbe491204bf36f48\Microsoft.AppV.AppVClientWmi.mof"
2) Nuke this registry key and reboot or preferred, let ConfigMgr do a normal evaluation cycle = DO NOT WORK
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\AppV\Client\Packages
Update 3 09/29 = I lied in update 2, seems only work on some machines and is not reliable.
Update
2 09/28 = Confirmed fix/hack works (hurrah).
Update 1 09/28 = Testing in progress, seems to work.
Credits
Mal Lagden for provding the other half of the solution from the ConfigMgr driving App-V persepctive.
Colin Millins for discovering the malformed Manifests.xml's, which breaks the processing of App-V packages.
Edit Log
- 2019/02/16: Updated sections with new details. Added details in re 0x87d0128f error.
- 2019/02/14: Issue with SCCM Detection method, removed PowerShell detection method, replaced with registry.
- 2018/11/05: Updated conclusion.
- 2018/10/20: Added progress updates and SCCM detection method.
- 2018/10/15: Squashed a bug in the script, see script version history for more details.
- 2018/10/02: Added findings in regards to user space, and script to pull logs from clients.
- 2018/10/01: Added WQL query, added CCM log location details.
- 2018/09/28: Expanded fix with help of Mal. AppVirtGuru is not indexed by Google, moved to ITNinja for
better visibility, why do all this if it’s not going help anyone!?
- 2018/09/24: Initial post and expansion of details.
Comments