todas tienda redundantes preinstaladas phone para juegos instalar eliminar desinstalar comando calculadora aplicaciones powershell windows-8 windows-runtime windows-store-apps windows-store

tienda - instalar calculadora windows 10 powershell



¿Cómo desinstalar una aplicación que otro usuario instaló? (11)

Sigo trabajando en este problema cuando trato de depurar mis aplicaciones de Windows 8 y ya hay una copia instalada en otra cuenta de usuario:

DEP0700: Falló el registro de la aplicación. Otro usuario ya ha instalado una versión empaquetada de esta aplicación. Una versión no empaquetada no puede reemplazar esto. El paquete conflictivo es {{{PackageName}}} y fue publicado por CN = {{{Certificate Stuff}}}. (0x80073cf9)

A veces solo puedo iniciar sesión o solicitar a otra persona que inicie sesión en la máquina y desinstale la aplicación. Alternativamente, puedo cambiar el nombre / id de la aplicación, pero uno no siempre es posible y el otro es arriesgado (no quiero registrar el ID de la aplicación modificada para controlar la fuente).

Debe haber alguna forma de desinstalarlo. Tal vez un script de PowerShell?


Aunque esto no funcionó para mí, puede funcionar para otra persona ...

Inicie powershell como administrador y ejecute:

Get-AppxPackage -all | Out-GridView -Passthru | Remove-AppXPackage

Luego, SELECCIONE el paquete correcto y OK , con suerte lo eliminará.


Esto es similar a algunas otras respuestas, especialmente @Pavel Nazarov, pero funciona para diferentes usuarios. Y es diferente de la respuesta aceptada porque no necesita instalar ningún programa.

En Windows Powershell en el modo de administración, ejecute:

get-appxpackage -all | where name -eq "{{ App Name }}" | remove-appxpackage


Hay un conjunto de cmdlets de PowerShell para administrar aplicaciones de la Tienda Windows. Puede enumerar las aplicaciones instaladas en la máquina para todos los usuarios si ejecuta el siguiente comando como administrador:

Get-AppxPackage -AllUsers

Aunque no he encontrado una forma de desinstalar una aplicación para un usuario diferente. Remove-AppxPackage funciona solo para el usuario actual. Esto hace que todo sea aún más interesante si eliminas a un usuario que tiene aplicaciones instaladas. Al menos en las versiones preliminares de Windows 8 esto imposibilitaba eliminar una aplicación que había instalado. Pude evitar con éxito una situación así desde el lanzamiento final, por lo tanto, no puedo confirmar que el problema siga presente, es decir, las aplicaciones no se desinstalan cuando se elimina una cuenta de usuario.


Hubo una mejora en Windows 10 1709 en el cmdlet remove-appxpackage, agregando -allusers como una opción.

Por lo tanto, para desinstalar una aplicación para todos los usuarios, este comando funciona:

Get-AppxPackage -AllUsers [PackageFamilyName] | Remove-AppxPackage -AllUsers

Donde [PackageFamilyName] es generalmente el GUID de su paquete.

Advertencia / Precaución: El comando parece hacer que la reinstalación (reaprovisionamiento del paquete usando DISM) sea más difícil, ya que parece tratarse como si cada usuario hubiera desinstalado la aplicación de forma individual. Demasiado para entrar aquí ...


Lo que funcionó para mí

1. Close VS 2. Open Services 3. Stop Appx Deployment Service 4. Open C:/ProgramData/Microsoft/Windows/AppRepository/ and delete the PackageRepository.edb file. 5. Start Appx Deployment Service 6. Start VS & Debug - worked like charm


Mi proceso anterior aún funciona, pero simplemente soluciona un problema de condición de carrera, donde Windows Update (sí, por extraño que parezca) está a cargo de eliminar los "paquetes por etapas".

Según Microsoft , la "otra solución" - y todavía considero que este problema es un error - es:

Causa del problema:

Windows Update (WU) descarga las versiones más nuevas de los paquetes que tiene y las "etapas" como sistema local, de modo que cuando vaya a la tienda para actualizar las aplicaciones, el proceso de actualización sea lo más rápido posible. WU eventualmente limpiará los paquetes por etapas que nunca fueron instalados.

¿Cuáles son algunas consecuencias de tener paquetes "en etapas"?

  1. Los paquetes por etapas evitan que instale ese paquete en particular en modo de desarrollo

  2. Los paquetes por etapas consumen algo de espacio en disco, pero debido a la vinculación fuerte, el efecto de esto se mitiga. Si un archivo es idéntico entre varias versiones de un paquete, la implementación de appx enlaza los archivos en lugar de mantener dos copias separadas del mismo archivo.

¿Cómo encuentro los paquetes "en etapas"?

  1. En una solicitud de administrador PowerShell, el comando:

    get-appxpackage -all

mostrará todos los paquetes en la máquina. Para un paquete por etapas, PackageUserInformation mostrará {S-1-5-18 [Usuario desconocido]: Staged} 2. Usando el filtro de PowerShell, para obtener la lista de todos los nombres completos de paquete, podría hacer:

get-appxpackage -all |% {if ($_.packageuserinformation.installstate -eq "Staged"){$_.packagefullname}}

¿Cómo me deshago de los paquetes "en etapas"?

  1. Descargue psexec de las herramientas sysinternals, escrito por Mark Russinovich

  2. Para deshacerse de todos ellos, ejecútelo en un indicador de comando admin / elevated regular (no powershell):

psexec -s powershell -c "get-appxpackage | remove-appxpackage"


Si desea eliminar la aplicación para el usuario actual, intente:

Get-AppxPackage | where name -eq "APP.NAME" | Remove-AppxPackage

Me ayudó. Entonces, hay Get-AppxPackage sin -all


Si eso no funciona, también puede intentar lo siguiente, que funcionó para mí. Tenga en cuenta que esto es para mi máquina de desarrollo, no para la máquina de un usuario normal, así que no sé cómo afectaría a los no desarrolladores :-P

  1. Tome posesión de las carpetas c: / Program Files / WindowsApps y C: / ProgramData / Microsoft / Windows / AppRepository, otorgando acceso completo al administrador. Asegúrese de que TrustedInstaller también tenga derechos de modificación también. También te estás apropiando. Si no está atento, esto se hace a través de las Propiedades en esa carpeta.

  2. Vaya a Servicios y detenga el servicio Windows Installer.

  3. Abra C: / ProgramData / Microsoft / Windows / AppRepository / y elimine el archivo PackageRepository.edb.

  4. Inicie el servicio Windows Installer nuevamente.

  5. Inicie Visual Studio como administrador.

  6. Intenta lanzar tu aplicación. Deberia de funcionar.

Después de ejecutar la aplicación una vez, debería poder ejecutar VS en modo de usuario nuevamente.


Si todo lo demás falla y estás desesperado, como en mi caso (porque el usuario fue eliminado) Este es un poco peligroso pero funcionó para mí.

¡HAGA SU PROPIO RIESGO! Sabía que mi usuario era el último usuario creado en la máquina.

Esta respuesta es una combinación de la respuesta anterior de Auri Rahimzadeh en TAKEOWN y la respuesta de intika donde modifica StateRepository-Machine.srd usando ''DB Browser For SQLite'' (descargado aquí: DB Browser para SQLite 3 ), la única diferencia es que solo edité uno cosa: en PackageUser cambié el valor User 3 (que era el ID del usuario eliminado anteriormente) a 4 (Which is me, the last created User)

¡ASEGÚRESE DE VERIFICAR LA PLANILLA DE USUARIO Y VER QUÉ VALORES FUNCIONAN EN SU CASO!


En Windows 10:

Primero, necesitas un editor de base de datos SQL como SqliteBrowser3

  1. Haz esa manipulación como usuario del sistema (usa psexec o más)
  2. Haga una copia de C:/ProgramData/Microsoft/Windows/AppRepository/StateRepository-Machine.srd
  3. Abra esa copia con SqliteBrowser3
  4. Deberá editar la tabla "paquete", "paqueteuser" y "usuario". Para hacerlo, deberá anotar la ID de usuario fantasma de la tabla "usuario" y luego eliminarlos. Luego, elimine las entradas que tengan una ID de usuario fantasma en user columna de user de la tabla "packageuser".
  5. kill tasklist /svc /fi "services eq StateRepository"
  6. reemplace el StateRepository-Machine.srd original después de la copia de seguridad.
  7. reinicie y luego podría eliminar su paquete normalmente

Nota: debe dejar su propia entrada de usuario asignada al paquete


Solución :

Si nada funciona para usted (para mí tampoco), puede cambiar el Nombre del paquete en el manifiesto de su aplicación (simplemente reemplace los últimos caracteres por otros). Cuando hagas esto, ya no tendrás paquetes conflictivos.

Cambiar el nombre del paquete puede no ser apropiado para algunos escenarios, pero siempre puede hacer una copia de seguridad y cambiarlo cuando haya terminado de depurar su dispositivo problemático ....