Удалите все приложения без установленных мной пользователем с помощью 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).