для удаления приложения под текущим пользователем у меня работает подобная команда
Get-AppxPackage *WindowsCamera* | Remove-AppxPackage
для удаления приложения для всех пользователей нужно передать полное название программы полученное из параметра PackageName команды Get-AppxProvisionedPackage -online
полные названия приложения отличаются в зависимости от используемой вами команды Get-AppxPackage хранит полное название приложения в параметре с названием - PackageFullName (используя его мы получаем ошибку) Get-AppxProvisionedPackage -online хранит полное название приложения в параметре с названием - PackageName (надо использовать это название)
для одного приложения я использую подобную конструкцию
$appx = Get-AppXProvisionedPackage -Online | Where {$_.DisplayName -eq "Microsoft.WindowsCamera"}
write-host $appx.PackageName
Remove-AppxPackage -Package $appx.PackageName -AllUsers
для удаления списка приложений я использую подобный цикл
$apps = @(
"Microsoft.549981C3F5F10",# Cortana
"Microsoft.BingWeather",
"Microsoft.GetHelp",
"Microsoft.Getstarted",
"Microsoft.Microsoft3DViewer",
"Microsoft.MicrosoftOfficeHub",
"Microsoft.MicrosoftSolitaireCollection",
"Microsoft.MicrosoftStickyNotes",
"Microsoft.MixedReality.Portal",
"Microsoft.MSPaint",
"Microsoft.Office.OneNote",
"Microsoft.People",
"Microsoft.SkypeApp",
"Microsoft.Wallet",
"Microsoft.WindowsAlarms",
"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"
)
# cycle of deleting an application for all users from the list
Get-AppxProvisionedPackage -Online | ForEach-Object {
if ($apps -contains $_.DisplayName) {
Write-Host Removing $_.DisplayName...
Remove-AppxPackage -Package $_.PackageName -AllUsers
}
}