Удаление нежелательных приложений Windows 10 с помощью PowerShell

Windows 10 включает ряд встроенных приложений, начиная от базовых, таких как Калькулятор и Погода, и заканчивая более ориентированными на задачи приложениями, такими как Почта и Фото. В то время как эти встроенные приложения подходят для большинства ситуаций, в корпоративной среде они могут быть неуместны, избыточными или не поддерживаемыми. Очень часто эти приложения могут представлять угрозу безопасности. Поэтому в этом посте вы узнаете, как удалить приложения Windows 10 с помощью PowerShell.

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

Отказ от ответственности: Не удаляйте все приложения Windows 10. Многие из них необходимы для “Опыта” Windows 10, а другие, такие как .NET Framework, необходимы для других программ. Будьте внимательны к тому, какие приложения удалять. Тем не менее, вы можете переустановить все приложения, и вы увидите команду PowerShell для этого в конце этой статьи

Поиск приложений Windows 10 с помощью PowerShell

На самом деле существует два разных типа приложений, с которыми мы будем работать.

  • Пакеты AppX – Приложения, установленные вместе с операционной системой
  • Пакеты AppX Provisioned – Приложения, установленные как часть первоначальной настройки профиля пользователя.

Первым шагом является получение инвентаря установленных приложений. Для этого запустите PowerShell с повышенными привилегиями и выполните команду Get-AppxPackage. Это вернет все установленные пакеты AppX на Windows 10.

PS C:\> Get-AppxPackage

Name              : Microsoft.NET.Native.Framework.1.6
Publisher         : CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
Architecture      : X64
ResourceId        :
Version           : 1.6.24903.0
PackageFullName   : Microsoft.NET.Native.Framework.1.6_1.6.24903.0_x64__8wekyb3d8bbwe
InstallLocation   : C:\Program Files\WindowsApps\Microsoft.NET.Native.Framework.1.6_1.6.24903.0_x64__8wekyb3d8bbwe
IsFramework       : True
PackageFamilyName : Microsoft.NET.Native.Framework.1.6_8wekyb3d8bbwe
PublisherId       : 8wekyb3d8bbwe
IsResourcePackage : False
IsBundle          : False
IsDevelopmentMode : False
IsPartiallyStaged : False
SignatureKind     : Store
Status            : Ok
--snip--

Предоставленные пакеты имеют немного отличающуюся команду и также требуют параметр Online. Параметр Online извлекает пакеты из текущей онлайн-операционной системы, в отличие от файла образа, расположенного в локальном каталоге. Это предоставит список всех деталей по каждому пакету.

PS C:\> Get-AppxProvisionedPackage -Online


DisplayName  : Microsoft.3DBuilder
Version      : 16.1.1431.0
Architecture : neutral
ResourceId   : ~
PackageName  : Microsoft.3DBuilder_16.1.1431.0_neutral_~_8wekyb3d8bbwe
Regions      :

DisplayName  : Microsoft.BingWeather
Version      : 4.31.11905.0
Architecture : neutral
ResourceId   : ~
PackageName  : Microsoft.BingWeather_4.31.11905.0_neutral_~_8wekyb3d8bbwe
Regions      :
--snip--

Уточнение списков приложений

Обе эти команды создают достаточно подробные списки, и все, что вас интересует, это Name пакета для пакетов Appx и DisplayName для предоставленных пакетов, как показано ниже.

Details of Get-AppxPackage listing
Listing for get-appxprovisionedpackage

Чтобы упростить задачу, направьте результаты через Select-Object и выберите свойства Name и DisplayName. Это даст вам список, подобный показанному ниже. Этот список удобнее обрабатывать.

Get-AppxPackage | Select-Object Name
Output of get-appxpackage | select object name

Теперь вы можете видеть, какие приложения Windows 10 вы хотите удалить. На этом этапе вам нужно перечислить все имена пакетов, которые вы хотите удалить. Один из способов сделать это – скопировать и вставить приложения Windows 10, которые вы хотите удалить, и построить список таким образом. Один из трюков, который я использую, – сохранить результаты в текстовый файл, а затем открыть этот файл в Visual Studio Code. Например:

Get-AppxPackage | Select-object name | Out-File apps.txt | code apps.txt

В своем внешнем редакторе начните создавать массив приложений для удаления.

$ProvisionedAppPackageNames = @()

Теперь, когда у вас есть список, вы можете начать создавать сценарий PowerShell.

Удаление приложений Windows 10 с помощью PowerShell

Теперь у вас должен быть массив, определенный в вашем редакторе, который содержит имена всех пакетов AppX, которые вы хотели бы удалить. Я предложил пример ниже.

$ProvisionedAppPackageNames = @(
    "Microsoft.BingFinance"
    "Microsoft.BingNews"
    "Microsoft.BingSports"
    "Microsoft.BingWeather"
    "Microsoft.MicrosoftOfficeHub"
    "Microsoft.Getstarted"
    "microsoft.windowscommunicationsapps" # Почта, Календарь
    "Microsoft.Office.OneNote"
    "Microsoft.People"
    "Microsoft.SkypeApp"
    "Microsoft.XboxApp"
    "Microsoft.ZuneMusic"
    "Microsoft.ZuneVideo"
)

Когда массив заполнен конкретными приложениями для удаления, вы можете настроить цикл foreach, чтобы пройти через каждый пакет для удаления, используя cmdlet Remove-AppXProvisionedPackage и cmdlet Remove-AppXPackage.

foreach ($ProvisionedAppName in $ProvisionedAppPackageNames) {
    Get-AppxPackage -Name $ProvisionedAppName -AllUsers | Remove-AppxPackage
    Get-AppXProvisionedPackage -Online | Where-Object DisplayName -EQ $ProvisionedAppName | Remove-AppxProvisionedPackage -Online
}

Если по какой-либо причине вы захотите переустановить все приложения, вы всегда можете использовать cmdlet add-AppXPackage, чтобы зарегистрировать приложение Windows 10 снова, указав файл его манифеста приложения, как показано ниже.

Get-AppxPackage -AllUsers | Foreach {
    Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"
}

Резюме

Несмотря на то, что Microsoft не облегчает удаление приложений Windows 10, вы видите, что всегда можете полагаться на PowerShell!

Source:
https://adamtheautomator.com/remove-windows-10-apps/