Bem, acontece que havia uma dependência necessária que não estava instalada no computador em que eu estava. Eu pensei que o comando DISM tinha trabalhado localmente, mas eu estava usando o computador ao lado dele.
Então o que aconteceu?
Neste exemplo, eu estava tentando implantar o aplicativo gratuito Fresh Paint em todos os computadores. Eu tinha baixado da Windows Store usando o Fiddle para pegar o URL.
A execução deste comando no PowerShell mostra-me algumas informações importantes:
> Get-AppxPackage *fresh*
Dependencies : {Microsoft.VCLibs.140.00_14.0.22929.0_x86__8wekyb3d8bbwe,
Microsoft.NET.Native.Runtime.1.1_1.1.23406.0_x86__8wekyb3d8bbwe}
Portanto, o Fresh Paint tem duas dependências, a biblioteca Visual C e o tempo de execução .Net.
Eu acessei uma máquina recém-instalada e baixei o aplicativo novamente. Desta vez, notei que as dependências são baixadas e instaladas automaticamente. Peguei o URL dos tempos de execução e os coloquei na pasta de implantação, na qual executei o script na pergunta.
Agora, cada máquina instalou automaticamente as dependências junto com o aplicativo em si.
Vale notar que o DISM instalará um aplicativo mesmo que as dependências não sejam atendidas. No entanto, sua contraparte do PowerShell Add-AppxProvisionedPackage
verifica dependências e se recusa a instalar o aplicativo. A melhor maneira de verificar se um aplicativo funcionará é tentar este comando antes de usar o DISM.
Por fim, consegui depurar o aplicativo usando o comando de correção do PowerShell que está circulando pela Internet:
Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
Isso não apenas conserta os aplicativos para qualquer usuário (útil se o link "Desinstalar" for clicado), mas também gera erros para os aplicativos que não são instalados. Isso me apontou na direção certa para resolver as dependências e, finalmente, fazer com que o aplicativo funcionasse.