Tuesday, September 28, 2021

Supersedence Clash 0x87d00266

 

In this scenario an application with a dependency could be seen in the assigned application list but would not appear in the software center or initialize download or installation.

The clue was errors in the AppIntentEval .log

CAppIntnentSolver::Solve failed with error = 0x87d00266

This line and the lines above provide the references for the applications involved.


In this case App1 was deployed with a dependency e.g. Dependency1

A different App2 was then deployed with a similar but upgraded version of Dependency1.  We'll call it Dependency2.

Dependency2 had been configured to Supersede Dependency1.


Because of the clash App2 and Dependency2 would not install.  The expected behaviour would be for Dependency2 to install(upgrade) Dependency1 and then install App2.  However it appears that unless App1 has Dependency2 added to its dependency group the App2 and Dependency2 do not satifisy the necessary rules to install.


There is a much better explanation of this here by Horatiu Vladasel

https://www.advancedinstaller.com/dependency-supersedence-configuration-manager.html

Monday, June 7, 2021

Find the command line for an Appx (UWP) app

 Well this doesn't feel like a great solution but it works for now.  If I find a better way I'll come back and update this.

Scan your AppX package details and pull out ones that have a key word.  In this case we'll use Camera as an example

get-appxpackage | ?{$_.PackageFullName -like "*camera*"}

which returns

Name              : Microsoft.WindowsCameraPublisher         : CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US

Architecture      : X64
ResourceId        :
Version           : 2021.105.10.0
PackageFullName   : Microsoft.WindowsCamera_2021.105.10.0_x64__8wekyb3d8bbwe
InstallLocation   : C:\Program Files\WindowsApps\Microsoft.WindowsCamera_2021.105.10.0_x64__8wekyb3d8bbwe

IsFramework       : False

PackageFamilyName : Microsoft.WindowsCamera_8wekyb3d8bbwe
PublisherId       : 8wekyb3d8bbwe

IsResourcePackage : False
IsBundle          : False
IsDevelopmentMode : False
NonRemovable      : False

Dependencies      : {Microsoft.NET.Native.Framework.2.2_2.2.29512.0_x64__8wekyb3d8bbwe, 

                    Microsoft.NET.Native.Runtime.2.2_2.2.28604.0_x64__8wekyb3d8bbwe, 

                    Microsoft.VCLibs.140.00_14.0.29231.0_x64__8wekyb3d8bbwe}

IsPartiallyStaged : False
SignatureKind     : Store
Status            : Ok

Go to the InstallLocation and open the AppxManifest.xml and locate the Application ID.  In this case the line appears:

<Application Id="App" Executable="WindowsCamera.exe" EntryPoint="Microsoft.CameraApp.Windows.App">

Now we have the items to create the command line

explorer.exe shell:appsfolder\<PackageFamilyName>!<Application ID>

e.g.

explorer shell:appsfolder\Microsoft.WindowsCamera_8wekyb3d8bbwe!App

Tuesday, January 26, 2021

Quick Assist elevating

My preferred method of working around the pause screen when it stops you dead on a quick assist session attempting anything that challenges using user account control (UAC).  I say now that it requires the user to click the yes button on a UAC prompt when you launch regedit.  After that this technique lowers the default UAC level until it is set back to the default setting.  I had to use this approach to help a user during the pandemic.  Normally I would have just waited until the next time I went round to visit.

Run cmd as the user and then

runas /user:admin cmd.exe

This then prompts for the password and you have a cmd window running as the admin; but it is not elevated.  If you attempted to run a software installer which required elevation you you still get the pause screen while the user was prompted about if they wanted to run the installer and change the computer settings etc.

At this point run regedit.exe and request that the user selects the Yes button. Regedit is now elevated.

Under
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System

set
PromptOnSecureDesktop from 1 (default) to 0
ConsentPromptBehaviorUser 1 (default) to 3

Note the US spelling of Behavior!

UAC prompts will no longer cause pause screens.  It is possible to launch a cmd.exe (Run As Administrator) to make it fully elevated.

This is based on a remoting into a standalone workgroup computer.  Attempting similar on a domain computer would still work however group policy could reverse the settings at anytime.  It is therefore probably not as useful for domain joined computers with group policies.