Удалите все приложения без установленных мной пользователем с помощью get-appxpackage

Я хочу удалить все приложения, предустановленные в Windows, не удаляя те приложения, которые я установил. Я знаю, что могу указать приложения по имени, но я хочу запустить этот сценарий, не обновляя его вручную при установке приложения.

Мой сценарий выглядит так

Get-AppxPackage -allusers | where-object {$_.name –notlike "*store*"} | where-object {$_.name –notlike "*calculator*"} | where-object {$_.name –notlike "*terminal*"} | where-object {$_.name –notlike "*winget*"} | where-object {$_.name –notlike "*DesktopAppInstaller*"} | where-object {$_.name –notlike "*Microsoft.VCLibs.140.00.UWPDesktop*"} | where-object {$_.name –notlike "*DesktopAppInstaller*"} | Remove-AppxPackage

Я могу изменить его, чтобы всегда удалять приложения, которые я не хочу оставлять в своей установке Windows, например:

      get-appxpackage -allusers *3dbuilder* | remove-appxpackage
get-appxpackage -allusers *alarms* | remove-appxpackage
get-appxpackage -allusers *appconnector* | remove-appxpackage

Однако это тоже делается вручную, так как окна продолжают добавлять другие дрянные приложения, мне все еще нужно найти и добавить их в свой список.

Могу ли я каким-то образом найти, какие приложения были вручную установлены пользователем? Либо установочным файлом, либо с помощью winget. Или мне нужно создать программу, через которую я устанавливаю свои приложения, которая сохраняет идентификатор установленного приложения (то есть, если они были установлены с помощью winget)?

2 ответа

Диспетчер пакетов Windows (на сегодняшний день 10/7/2021) не записывает, что он установил в системе. Есть работа, чтобы добавить это в будущем, но в текущем состоянии нет возможности узнать источник для установки приложения.

Я опубликовал инструмент для удаления предустановленных приложений в Windows 10/11.

Вы можете посмотреть на Github, здесь.

Вы можете выполнить его, и он предложит вам, какое приложение вы хотите удалить. Пользуюсь уже давно, очень удобно и быстро. Тем не менее, на данный момент это удаляет приложение только для текущего пользователя, но если вы знаете, как это исправить, вы можете его отредактировать.

Загрузите его, а затем выполните его следующим образом:

      .\remove_preinstalled_apps.ps1

Если вы получитеError, вам может потребоваться отредактировать политику выполнения:

      Set-ExecutionPolicy RemoteSigned

Я надеюсь, что это помогает

Редактировать

Я добавил версию для удаления приложений по всей системе с помощью-AllUsersно его все еще нужно протестировать, поэтому на данный момент он находится в отдельной ветке (см. PR).

Другие вопросы по тегам