Eliminar todas las aplicaciones predeterminadas, excepto algunas que usan Powershell - Error: la implementación falló con HRESULT: 0x80073CFA

0

Usé el guion de Windows 10: eliminar todas las aplicaciones predeterminadas excepto las especificadas .

Get-AppxPackage -AllUsers | where-object {$_.name –notlike "*store*","*windowscalculator*","*people*"} | Remove-AppxPackage

Error en la implementación del error con HRESULT: 0x80073CFA.

Remove-AppxPackage : Deployment failed with HRESULT: 0x80073CFA, Removal failed. Please contact your software vendor. (Exception from HRESULT: 0x80073CFA)
error 0x80070032: AppX Deployment Remove operation on package 1527c705-839a-4832-9118-54d4Bd6a0c89_10.0.17134.1_neutral_neutral_cw5n1h2txyewy from:
C:\Windows\SystemApps\Microsoft.Windows.FilePicker_cw5n1h2txyewy failed. This app is part of Windows and cannot be uninstalled on a per-user basis. An administrator can attempt to remove the
app from the computer using Turn Windows Features on or off. However, it may not be possible to uninstall the app.
NOTE: For additional information, look for [ActivityId] 8c1923d8-2299-0001-fb83-198c9922d401 in the Event Log or use the command line Get-AppxLog -ActivityID
8c1923d8-2299-0001-fb83-198c9922d401
At line:1 char:106
+ ... like "*store*","*windowscalculator*","*people*"} | Remove-AppxPackage
+                                                        ~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : WriteError: (1527c705-839a-4...l_cw5n1h2txyewy:String) [Remove-AppxPackage], IOException
    + FullyQualifiedErrorId : DeploymentError,Microsoft.Windows.Appx.PackageManager.Commands.RemoveAppxPackageCommand

Remove-AppxPackage : Deployment failed with HRESULT: 0x80073CFA, Removal failed. Please contact your software vendor. (Exception from HRESULT: 0x80073CFA)
error 0x80070032: AppX Deployment Remove operation on package c5e2524a-ea46-4f67-841f-6a9465d9d515_10.0.17134.1_neutral_neutral_cw5n1h2txyewy from:
C:\Windows\SystemApps\Microsoft.Windows.FileExplorer_cw5n1h2txyewy failed. This app is part of Windows and cannot be uninstalled on a per-user basis. An administrator can attempt to remove
the app from the computer using Turn Windows Features on or off. However, it may not be possible to uninstall the app.
NOTE: For additional information, look for [ActivityId] 8c1923d8-2299-0000-8397-198c9922d401 in the Event Log or use the command line Get-AppxLog -ActivityID
8c1923d8-2299-0000-8397-198c9922d401
At line:1 char:106
+ ... like "*store*","*windowscalculator*","*people*"} | Remove-AppxPackage
+                                                        ~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : WriteError: (c5e2524a-ea46-4...l_cw5n1h2txyewy:String) [Remove-AppxPackage], IOException
    + FullyQualifiedErrorId : DeploymentError,Microsoft.Windows.Appx.PackageManager.Commands.RemoveAppxPackageCommand

Remove-AppxPackage : Deployment failed with HRESULT: 0x80073CFA, Removal failed. Please contact your software vendor. (Exception from HRESULT: 0x80073CFA)
error 0x80070032: AppX Deployment Remove operation on package E2A4F912-2574-4A75-9BB0-0D023378592B_10.0.17134.1_neutral_neutral_cw5n1h2txyewy from:
C:\Windows\SystemApps\Microsoft.Windows.AppResolverUX_cw5n1h2txyewy failed. This app is part of Windows and cannot be uninstalled on a per-user basis. An administrator can attempt to remove
the app from the computer using Turn Windows Features on or off. However, it may not be possible to uninstall the app.
NOTE: For additional information, look for [ActivityId] 8c1923d8-2299-0000-8c97-198c9922d401 in the Event Log or use the command line Get-AppxLog -ActivityID
8c1923d8-2299-0000-8c97-198c9922d401
At line:1 char:106
+ ... like "*store*","*windowscalculator*","*people*"} | Remove-AppxPackage
+                                                        ~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : WriteError: (E2A4F912-2574-4...l_cw5n1h2txyewy:String) [Remove-AppxPackage], IOException
    + FullyQualifiedErrorId : DeploymentError,Microsoft.Windows.Appx.PackageManager.Commands.RemoveAppxPackageCommand

Solución encontrada aquí

Mi problema es, si MS no quiere que elimine, entonces no quiero eliminar. Pero, si nadie tiene ninguna objeción, entonces quiero eliminar. Becasue, quién sabe cuántas cosas se romperán.

Por lo tanto, no quiero cambiar la base de datos o utilizar ningún hack. Quiero una secuencia de comandos (con suerte, una sola línea), que eliminará de forma segura tanto bloatware (Juegos, Objeto 3D .., bosquejo , XBox etc.) como sea posible.

Si la eliminación da un error, no te preocupes! salta y muévete a la siguiente aplicación e intenta eliminarlo.

blueray
fuente
La secuencia de comandos tiene el nombre de las aplicaciones que queremos eliminar, pero quiero dar las que no quiero eliminar. Todo lo demás, si no tiene problema, puede ser eliminado.
blueray

Respuestas:

1

Recuerde, siempre hay formas más elegantes de hacer las cosas, pero esta es solo una opción.

Solo puede recopilar todas las aplicaciones y compararlas con su lista blanca de aplicaciones en un bucle.

Algo como:

"Uninstalling BlackListed apps"
$apps = @(
    # Whitelist Windows 10 apps
    "Microsoft.BingWeather"
    "Microsoft.MicrosoftOfficeHub"
    "Microsoft.Office.OneNote"
    "Microsoft.SkypeApp"
    "Microsoft.WindowsAlarms"
    "Microsoft.WindowsCalculator"
    "Microsoft.WindowsCamera"
    "microsoft.windowscommunicationsapps"
    "Microsoft.WindowsMaps"
    "Microsoft.GetHelp"
    "Microsoft.Messaging"
)

$RemoveAppPkgs = (Get-AppxPackage -AllUsers).Name
'TotalApps: ' + $RemoveAppPkgs.Count
'TotalWhiteListedApps: ' + $apps.Count
'TotalBlackListeedApps: ' + ($RemoveAppPkgs.Count - $apps.Count)

ForEach($TargetApp in $RemoveAppPkgs)
{
    If($apps -notcontains $TargetApp)
    {
        Write-Output "Trying to remove $TargetApp"
    }
}

Salida:

Uninstalling BlackListed apps
TotalApps: 141
TotalWhiteListedApps: 11
TotalBlackListeedApps: 130
Trying to remove Windows.PrintDialog
Trying to remove Microsoft.NET.Native.Framework.1.0
Trying to remove Microsoft.NET.Native.Framework.1.0
Trying to remove Microsoft.NET.Native.Framework.1.1
Trying to remove Microsoft.NET.Native.Framework.1.1
Trying to remove Microsoft.NET.Native.Framework.1.6
Trying to remove Microsoft.NET.Native.Framework.1.6
Trying to remove Microsoft.NET.Native.Runtime.1.0
Trying to remove Microsoft.NET.Native.Runtime.1.0
Trying to remove Microsoft.NET.Native.Runtime.1.1
Trying to remove Microsoft.NET.Native.Runtime.1.1
Trying to remove Microsoft.NET.Native.Runtime.1.6
Trying to remove Microsoft.NET.Native.Runtime.1.6
Trying to remove Microsoft.VCLibs.120.00
Trying to remove Microsoft.VCLibs.120.00
...


Como se indica en el puntero al que hace referencia, hay paquetes que no puede desinstalar:

# apps which cannot be removed using Remove-AppxPackage
#"Microsoft.BioEnrollment"
#"Microsoft.MicrosoftEdge"
#"Microsoft.Windows.Cortana"
#"Microsoft.WindowsFeedback"
#"Microsoft.XboxGameCallableUI"
#"Microsoft.XboxIdentityProvider"
#"Windows.ContactSupport"

Si hay otros con este problema, solo necesita atraparlos y omitirlos (usando if / then o un bloque try / catch).

* Actualización según solicitud OP * Simplemente vuelva a agregar el código de su enlace de publicación para que ocurra la eliminación.

ForEach($TargetApp in $RemoveAppPkgs)
{
    If($apps -notcontains $TargetApp)
    {
        "Trying to remove $TargetApp"

        Get-AppxPackage -Name $TargetApp -AllUsers | Remove-AppxPackage -AllUsers -ErrorAction SilentlyContinue

        Get-AppXProvisionedPackage -Online |
            Where-Object DisplayName -EQ $TargetApp |
            Remove-AppxProvisionedPackage -Online
    }
}

O bien, agregue las aplicaciones que sabe que no puede eliminar a la lista blanca y no debería recibir ningún error con el que tratar.

Sin embargo, siempre que esté haciendo algo tan destructivo como este, debería tener un manejo de errores. También le sugiero que use el modificador -whatif como precaución para eliminar cosas antes de hacer esto de verdad. Solo para estar seguro de que realmente estás obteniendo lo que esperas.

En cuanto al ejemplo try / catch. Si está en PowerShell_ISE, simplemente presione CTRL + J para abrir la lista de fragmentos y seleccione una plantilla de prueba / captura para usar.

postanote
fuente
¿Puedes dar el ejemplo con try-catch también?
blueray
Creo que solo se hace eco de "Tratando de eliminar $ TargetApp". ¿Puedes arreglarlo para que se desinstale también?
blueray
1
8 ^} Hice el envío a la pantalla solo de esta forma, por supuesto, porque no quería eliminar aplicaciones de mi sistema. 8 ^} En cuanto a la parte de eliminación que acaba de agregar de nuevo en el bloque de código del puntero que publicó. Todo lo que hice fue tomar ese código y modificarlo según mi sugerencia. Incluso si no desea utilizar if / then o try / catch, puede usar el método -ErrorAction SilentlyContinue para ignorar los errores en el cmdlet de eliminación. Remove-AppxPackage -AllUsers -ErrorAction SilentlyContinue.
postanote