Образ Windows 10 и 11 поставляется с набором предустановленных приложений Microsoft Store (UWP/APPX приложения), таких как Календарь, Почта, Кортана, Карты, Новости, OneNote, ZuneMusic и т.д. Эти приложения автоматически устанавливаются из встроенного хранилища пакетов в образе Windows (provisioned apps) в профиль каждого пользователя при первом входе в систему. Большинство бизнес-пользователей не используют эти встроенные приложения Windows, поэтому для освобождения места на диске и очистки лишних элементов в стартовом меню, их можно удалить.
Удаление встроенных приложений из меню Параметры Windows
Пользователь может удалить встроенное приложение из своего профиля из панели Параметры. Перейдите в раздел Settings -> Apps -> Installed apps (Параметры -> Приложения -> Установленные приложение). Найдите приложение в списке и нажмите Uninstall (Удалить).
Это удаляет встроенное UWP приложение только в профиле текущего пользователя. При входе нового пользователя, это приложение будет автоматически установлено из системного хранилища.
Кроме того, у некоторых предустановленных современных приложений просто недоступна кнопка Uninstall.
Удалить такие системные приложения Windows можно только из командной строки PowerShell.
Как удалить предустановленное приложение Windows с помощью PoweShell?
В Windows есть два типа UWP приложений:
- пользовательские (находятся в
C:\Program Files\WindowsApps\
) - системные приложения (
C:\Windows\SystemApps\
)
При первом входе пользователя в Windows в его профиль устанавливаются ряд встроенных пользовательских приложений (AppX provisioned packages). Затем каждый пользователь может устанавливать собственные приложения из Microsoft Store или APPX/MSIX пакетов.
С помощью PowerShell можно вывести список Microsoft Store приложений, установленных для текущего пользователя:
Get-AppxPackage | select Name,NonRemovable,PackageUserInformation,PackageFullName
Если вы удалили приложение из графического интерфейса панели Settings, оно пропадет из этого списка.
winget uninstall Microsoft.BingWeather_8wekyb3d8bbwe
Вывести список установленных приложений для всех пользователей и сохранить результаты в текстовый файл (для более удобного поиска):
Get-AppxPackage -AllUsers | Format-List -Property Name, PackageFullName >c:\ps\windows_uwp_apps.txt
Чтобы найти приложение по имени и вывести имена и SID пользователей, у которых оно установлено (в этом примере мы ищем приложение Weather):
Get-AppxPackage -AllUsers | select Name, PackageFullName, PackageUserInformation| where-object {$_.Name -like "*Weather*"} | FL
Для некоторых приложений указан статус Staged. Это значит, что приложение будет автоматически установлено в новую учетную запись при входе.
Чтобы удалить приложение для текущего пользователя, скопируйте имя пакета из столбца PackageFullName и укажите его в качестве параметра команды Remove-AppxPackage:
Remove-AppxPackage Microsoft.BingWeather_4.53.60911.0_x64__8wekyb3d8bbwe
Чтобы удалить приложение у всех пользователей компьютера, добавьте параметр AllUsers:
Get-AppxPackage *BingWeather* -AllUsers| Remove-AppPackage –AllUsers -verbose
В Windows 11 эта команда удалит приложение из профилей всех пользователей и из системного хранилища. Однако в Windows 10 такое приложение все еще остается в системе в состоянии Staged (и фактически остается на диске в каталоге C:\Program Files\WindowsApps).
Вывести список Staged приложений, которые встроены в образ Windows и автоматически устанавливаются всем пользователям:
Get-AppxProvisionedPackage -online |select DisplayName,PackageName
Чтобы полностью удалить определенное приложение из образа Windows , нужно указать его имя в команде Remove-AppxProvisionedPackage:
Get-AppxProvisionedPackage -online | where-object {$_.PackageName -like "*Microsoft.ZuneVideo*"} | Remove-AppxProvisionedPackage -online –Verbose
Теперь это приложение не будет автоматически устанавливаться новым пользователям.
Удаляем сразу все ненужные UWP приложения Windows
Удалять встроенные приложения по одному – задача довольно утомительная. Для автоматического удаления из образа Windows предустановленных приложений можно использовать скрипт PowerShell.
Get-AppXProvisionedPackage -online | Remove-AppxProvisionedPackage -online
Не удаляйте системные приложения, такие как Microsoft.VCLibs, Microsoft.NET.Native.Framework, Microsoft.NET.Native.Runtime, Microsoft.WindowsAppRuntime. Microsoft.WindowsStore (случайно удаленное приложение Microsoft Store можно восстановить). Ряд UWP приложений в Windows 10 и 11 отвечает за работу различных системных панелей управления. Например windows.immersivecontrolpane – это современная панель Параметры (Settings), Microsoft.SecHealthUI – панель управления Антивирусом и безопасностью Windows и т.д.
Список системных UWP приложений Windows, которые нельзя удалять без веского основания можно получить так:
Get-AppxPackage| ? { $_.SignatureKind -eq "System" }|select Name,InstallLocation
Список ненужных приложений меняется в зависимости от билда Windows. В этом примере я буду удалять встроенные приложения, которые лично я не использую в Windows 11 23H2.
Откройте PowerShell ISE с правами администратора, скопируйте в него указанный код и запустите скрипт (F5).
$UWPAppstoRemove = @(
"Microsoft.BingNews",
"Microsoft.GamingApp",
"Microsoft.MicrosoftSolitaireCollection",
"Microsoft.WindowsCommunicationsApps",
"Microsoft.WindowsFeedbackHub",
"Microsoft.XboxGameOverlay",
"Microsoft.XboxGamingOverlay",
"Microsoft.XboxIdentityProvider",
"Microsoft.XboxSpeechToTextOverlay",
"Microsoft.YourPhone",
"Microsoft.ZuneMusic",
"Microsoft.ZuneVideo",
"MicrosoftTeams",
"Microsoft.OutlookForWindows",
"Microsoft.Windows.DevHome",
"Microsoft.MicrosoftOfficeHub",
"Microsoft.MicrosoftStickyNotes",
"Microsoft.People",
"Microsoft.ScreenSketch",
"microsoft.windowscommunicationsapps",
"Microsoft.WindowsFeedbackHub",
"Microsoft.WindowsMaps"
)
# Удаление установленные приложений у всех пользователей и из образа Windows
foreach ($UWPApp in $UWPAppstoRemove) {
Get-AppxPackage -Name $UWPApp -AllUsers | Remove-AppxPackage -AllUsers -verbose
Get-AppXProvisionedPackage -Online | Where-Object DisplayName -eq $UWPApp | Remove-AppxProvisionedPackage -Online -verbose
}
Таким образом, все новые учетные записи будут создаваться без встроенных приложений Windows 10 (профили новых пользователей будут создаваться быстрее). Также можно подготовить собственный образ Windows, из которого будут сразу удалены все встроенные приложения.
Доброго дня а у меня вроде удаляются просто по имени напр:
Name : Microsoft.WindowsFeedbackHub
Publisher : CN=Microsoft Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US
Architecture : X64
ResourceId :
Version : 1.3.1741.0
PackageFullName : Microsoft.WindowsFeedbackHub_1.3.1741.0_x64__8wekyb3d8bbwe
удаляется-
Get-AppxPackage -allusers Microsoft.WindowsFeedbackHub | Remove-AppxPackage
Это после обновления? или они вернутся назад? из списка пропали вроде.
1. Get-AppxPackage –AllUsers>c:folder1modernapps.txt
ошибка.
PS C:WINDOWSsystem32> Get-AppxPackage -allusers>c:tempmodernapps.txt
Get-AppxPackage : Не удается найти параметр, соответствующий имени параметра «allusers>c».
— Get-AppxPackage -allusers «c:tempmodernapps.txt» или Get-AppxPackage -allusers»c:tempmodernapps.txt»
0 результата
2. Хотел на самом деле удалить определённые приложения которые в итоге не показало командой Get-AppxPackage
после Get-AppxPackage -AllUsers | Remove-AppxPackage
они остались (
А команда Get-AppxPackage -allusers
По прежнему выдаёт полный список.
win 10 pro сборка 1607 14393.693
В современных реалях надо выполнять две команды.
Get-AppXProvisionedPackage -online | Remove-AppxProvisionedPackage -online
Get-AppxPackage -AllUsers | Remove-AppxPackage
Ещё есть готовое решение для подобных целей от o&o. За статью спасибо.
Ручной выбор и удаление УЖЕ установленных UWP (APPX) приложений для ТЕКУЩЕГО пользователя
Get-AppxPackage | Where-Object {$_.NonRemovable -like «False» -and $_.Name -NotLike «*NET*» -and $_.Name -NotLike «*VCLibs*»} | Out-GridView -PassThru | Remove-AppPackage
Ручной выбор и удаление УЖЕ установленных UWP (APPX) приложений для ВСЕХ пользователей
Get-AppxPackage -AllUsers | Where-Object {$_.NonRemovable -like «False» -and $_.Name -NotLike «*NET*» -and $_.Name -NotLike «*VCLibs*»} | Out-GridView -PassThru | Remove-AppPackage -AllUsers
Ручной выбор и удаление UWP (APPX) встроенных в образ Windows приложений, которые устанавливаются каждому пользователю:
Get-AppxProvisionedPackage -online | Out-GridView -PassThru | Remove-AppxProvisionedPackage –online
Немного изменил синтаксис используя объектность языка на всю катушку.
$garbageappxs = @(
"PricelinePartnerNetwork.Booking.comBigsavingsonhot"
"C27EB4BA.DropboxOEM"
"Amazon.com.Amazon"
"7EE7776C.LinkedInforWindows"
"5A894077.McAfeeSecurity"
"A025C540.Yandex.Music"
# "Microsoft.Microsoft3DViewer"
"Microsoft.MicrosoftOfficeHub"
"Microsoft.MicrosoftSolitaireCollection"
"Microsoft.MicrosoftStickyNotes"
"Microsoft.MixedReality.Portal"
# "Microsoft.MSPaint"
"Microsoft.Office.Desktop"
"Microsoft.Office.OneNote"
"Microsoft.People"
# "Microsoft.ScreenSketch"
"Microsoft.Wallet"
"Microsoft.SkypeApp"
"microsoft.windowscommunicationsapps"
"Microsoft.WindowsFeedbackHub"
"Microsoft.WindowsMaps"
# "Microsoft.WindowsSoundRecorder"
"Microsoft.Xbox.TCUI"
"Microsoft.XboxApp"
"Microsoft.XboxGameOverlay"
"Microsoft.XboxGamingOverlay"
"Microsoft.XboxIdentityProvider"
"Microsoft.XboxSpeechToTextOverlay"
"Microsoft.YourPhone"
"Microsoft.ZuneMusic"
"Microsoft.ZuneVideo"
)
# Удалим установленные приложения у всех пользователей
$installedappxs = Get-AppxPackage -AllUsers | Select-Object -Property Name,PackageFullName
($installedappxs.Where({$_.Name -in $garbageappxs})).PackageFullName.ForEach({Remove-AppxPackage -AllUsers -Package $_ -ErrorAction SilentlyContinue})
# Удалим приложения из образа системы
#$provisionedappxs = Get-AppxProvisionedPackage -Online | Select-Object -Property DisplayName,PackageName
#($provisionedappxs.Where({$_.DisplayName -in $garbageappxs})).PackageName.ForEach({Remove-AppxProvisionedPackage -Online -AllUsers -PackageName $_ -ErrorAction SilentlyContinue})
приветствую.
вот в десятке работало —
powershell "Get-AppxProvisionedPackage -Online|? Name -Like '*Store*|*Native*|*VCLibs*'|Remove-AppxProvisionedPackage"
а в W11 просто ничего не происходит
Можно юзать powershell скрипт Sophia для удаления предустанвленных приложений в Win 10 и 11:
https://github.com/farag2/Sophia-Script-for-Windows
В целях изучения и набора опыта написал динамический скриптик
# Меню
function menu {
Write-Host "`nAppx приложения:" -ForegroundColor Red
$arrmain | Out-Host
write-host "Удалить данные appx?" -ForegroundColor Red
Write-Host "1. Yes" -ForegroundColor Green
Write-Host "2. Исключить из удаления(например лично установленные или необходимые)" -ForegroundColor Green
Write-Host "3. Exit" -ForegroundColor Green
$choice = Read-Host "Выберите пункт меню[Число]"
switch ($choice){
# Удаление appx
1{
$arrmain.object | ForEach-Object {
Get-AppxPackage -Name $_ -AllUsers | Remove-AppxPackage
Get-AppXProvisionedPackage -Online | Where-Object DisplayName -eq $_ | Remove-AppxProvisionedPackage -Online
}
}
2{
two
}
3{
break
}
}
}
# Исключение приложений из списка пользователем
function two {
[System.Array]$del = (Read-Host -Prompt "Введите номера строк через запятую") -split '\s*,\s*'
Clear-Host
foreach ($number in $del) {
if ($arrmain.number -like $number) {
[int]$i = $number
$arrmain = $arrmain.Where{$_.Number -ne $i}
Write-Host "№ $number удален из списка" -ForegroundColor yellow
}
else {
Write-Host "Error, № $number нет совпадений!!!" -ForegroundColor red
}
}
return menu
}
Clear-Host
# Фильтры
## Ключевые слова в приложениях, которые удалять не стоит
$notmatch = @('microsoft','intel','realtek')
## Ключевые слова в приложениях, которые можно удалить(Приложения с этими словами так же содержат слова из первого массива, поэтому создаём второй)
$match = @('xbox','zune','weather','onenote','people','yourphone','FeedbackHub','windowscommunicationsapps','WindowsMaps','Wallet','MicrosoftOfficeHub')
# Собственно сама фильтрация
[System.Array]$FilterEq = (Get-AppxPackage -allusers | Select-Object name,nonremovable | Where-Object { (-not $_.NonRemovable)}).name | Select-String $notmatch -NotMatch
[System.Array]$FilterNe = (Get-AppxPackage -allusers | Select-Object name,nonremovable | Where-Object { (-not $_.NonRemovable)}).name
[System.Array]$arr = @()
foreach ($something in $match) {
$arr += $FilterNe -match $something
}
$FilterEq = $FilterEq + $arr # Объединение двух массивов с разными фильтрами
# Присвоение индекса каждой строчке
[System.Array]$arrmain = @()
foreach ($_ in $FilterEq) {
$arrmain += [pscustomobject] @{
"Number" = $FilterEq.IndexOf($_)
"Object" = $_
}
}
menu
если я удалю большую часть для всех юзеров, забекаплю систему, то при будущем разворачивании эти приложения не должны вставать все с нуля, не так ли?
Имеете в виду снятие образа, а не бэкап?
Все правильно.
Но при установке следующего билда Windows 10 прилоежния могут приехать опять — тут как решит microsoft…
Здравствуйте. Не получается удалятор сунуть в startup-скрипты. Читаю в журнале:
«Параметры разрешений для конкретного приложения не дают разрешения Локально Запуск для приложения COM-сервера с CLSID
Windows.SecurityCenter.SecurityAppBroker
и APPID
Недоступно
пользователю NT AUTHORITY\СИСТЕМА с ИД безопасности (S-1-5-18) и адресом LocalHost (с использованием LRPC), выполняемого в контейнере приложения Недоступно с ИД безопасности (Недоступно). Это разрешение безопасности можно изменить с помощью средства администрирования служб компонентов.»
Такое же для Windows.SecurityCenter.WscBrokerManager. Выходит, нельзя при стартапе из под SYSTEM запустить, правильно понимаю?
При ручном запуске удаление работает нормально?
Запускаете через logon скрипт GPO или еще как-то?
Руками отрабатывает. Сам скрипт сделал буквально по кальке с вашего — сначала обьявляется массив, потом foreach и так далее. В качестве StartUp- и ShutDown-скрипта не работает. Проверял gpresult, пихал в скриптик иные команды (создание и редактирование файлов, например), которые без вопросов исполняются при старте машины. В Logon даже ставить не пробовал, потому что у заходящего пользователя не будет прав для удаления приложений. Пробовал также отложенный старт, всё равно не работает.
Всем привет!
Использую PowerShell 5.1 в Windows 10 Pro 21H2.
Получаю следующее:
обе команды
Get-AppxPackage -PackageTypeFilter Main, Bundle, Resource -AllUsers *ИмяПакета* | Remove-AppxPackage -AllUsers
или
Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -Like "*ИмяПакета*"} | Remove-AppxProvisionedPackage -Online –Verbose
дают одинаковый результат.
То есть при выполнении любой одной из команд приложение пропадает из списка
Get-AppxPackage -AllUsers | Select Name, PackageFullName
и из списка
Get-AppxProvisionedPackage -Online | Select DisplayName, PackageName
.Также это приложение удаляется из папки \Program Files\WindowsApps.
Судя по изложенному в данной статье такого быть не должно и каждая команда должна удалять приложение только из одного соответствующего списка, а из папки \Program Files\WindowsApps приложение должно удаляться только при использовании командлета Remove-AppxProvisionedPackage.
Или я чего-то не понимаю, или кто знает, плиз, поясните , где тут собака порылась)).
PowerShell начал осваивать недавно и пока учусь.
Заранее спасибо за разъяснение.
Забыл отметить уведомление по почте о комментах.))
Приветствую.
При выполнении скрипта вида Get-AppxPackage *BingWeather* -AllUsers | Remove-AppPackage –AllUsers
или приведенного в посте Леонида от 12.08.2021
Выдается ошибка вида:
PS C:\windows\system32> Get-AppxPackage *BingWeather* -AllUsers | Remove-AppPackage –AllUsers
Remove-AppPackage : Произошла ошибка из-за того, что пользователь вышел из системы.
Произошел сбой операции развертывания Remove с конечным томом C: для пакета Microsoft.BingWeather_4.53.43112.0_x64__8wekyb3d8bbwe из . Ошибка: 0x80073D19.
У кого ни будь получилось понять как это исправить?
ЗЫ Ошибка ошибкой, но пакеты таким способом удаляются из ОС.
ЗЫЫ Если из строки убрать один ключ -AllUsers (не важно откуда), то ошибки нет. Но и приложение работает и не удаляется.
Спасибо, помогли
Можно удалять приложения в том числе provisioned с помощью dism++
А как диагностировать почему приложение не работает? Все перепробовал, полную чистку и прочее. Вотсап устанавливается, открывает белое окно и закрывает.
Имя сбойного приложения: WhatsApp.exe, версия: 0.0.0.0, метка времени: 0x64e76256
Имя сбойного модуля: KERNELBASE.dll, версия: 10.0.19041.3324, метка времени: 0x6967c799
Код исключения: 0xc000027b
Смещение ошибки: 0x000000000012d9b2
Идентификатор сбойного процесса: 0x4dc0
Время запуска сбойного приложения: 0x01d9da63bf9da1bb
Путь сбойного приложения: C:\Program Files\WindowsApps\5319275A.WhatsAppDesktop_2.2333.8.0_x64__cv1g1gvanyjgm\WhatsApp.exe
Путь сбойного модуля: C:\WINDOWS\System32\KERNELBASE.dll
Идентификатор отчета: 97126326-28ab-4bbc-bb7c-93245c8fd562
Полное имя сбойного пакета: 5319275A.WhatsAppDesktop_2.2333.8.0_x64__cv1g1gvanyjgm
Код приложения, связанного со сбойным пакетом: App
удалить cortana:
Get-AppxPackage Microsoft.549981C3F5F10 -allusers| Remove-AppxPackage
Помогла переустановка пакета мультимедиа
В Windows 10/11 23H2 добавились еще два ненужных встроенных приложения: Dev Home и Outlook:
Чтобы удалить пакеты из всех учетных записей и из локального хранилища, которое служит источником установки при первом входе в систему, выполните:
Get-AppxPackage -AllUsers | Where-Object {$_.Name -like '*DevHome*' -or $_.Name -like '*OutlookForWindows*'} | Remove-AppxPackage -AllUsers
Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -Like '*DevHome*' -or $_.PackageName -Like '*OutlookForWindows*'} | Remove-AppxProvisionedPackage -Online
А как снести пресловутый OneDrive? В списке установленных приложений не могу найти
Это не UWP приложение.
onedrive по умолчанию ставится в профиль каждого пользователя.
Удаление описано тут https://winitpro.ru/index.php/2024/07/17/polnostyu-udalit-onedrive-v-windows/