I create a new user via PowerShell, then remove unnecessary apps for that user. However, the new user must log in at least once before any apps can be removed, otherwise I get:
The security ID structure is invalid.
How can I remove these apps for a new user without login?
function removeAppx {
param([string]$Username)
$Apps = @(
"Microsoft.549981C3F5F10",
"Microsoft.BingNews",
"Microsoft.BingWeather",
"Microsoft.GamingApp",
"Microsoft.GetHelp",
"Microsoft.Getstarted",
"Microsoft.MicrosoftEdge.Stable",
"Microsoft.MicrosoftOfficeHub",
"Microsoft.MicrosoftSolitaireCollection",
"Microsoft.MicrosoftStickyNotes",
"Microsoft.Paint",
"Microsoft.People",
"Microsoft.PowerAutomateDesktop",
"Microsoft.ScreenSketch",
"Microsoft.StorePurchaseApp",
"Microsoft.Todos",
"Microsoft.Windows.Photos",
"Microsoft.WindowsAlarms",
"Microsoft.WindowsCalculator",
"Microsoft.WindowsCommunicationsApps",
"Microsoft.WindowsFeedbackHub",
"Microsoft.WindowsMaps",
"Microsoft.WindowsNotepad",
"Microsoft.WindowsSoundRecorder",
"Microsoft.Xbox.TCUI",
"Microsoft.XboxGameOverlay",
"Microsoft.XboxGamingOverlay",
"Microsoft.XboxIdentityProvider",
"Microsoft.XboxSpeechToTextOverlay",
"Microsoft.YourPhone",
"Microsoft.ZuneMusic",
"Microsoft.ZuneVideo",
"MicrosoftTeams",
"MicrosoftWindows.Client.WebExperience"
)
foreach ($App in $Apps) {
try {
$Package = Get-AppxPackage -Name $App -User "test" -ErrorAction SilentlyContinue
if ($null -ne $Package) {
Write-Host "[DEL] $App (utilisateur $Username)" -NoNewline -ForegroundColor Green
Remove-AppxPackage -Package $Package.PackageFullName -User $Username -ErrorAction Stop
Write-Host " [OK]" -ForegroundColor Green
}
} catch { Write-Host "Erreur: $_" -ForegroundColor Red }
try {
$ProvPackage = Get-AppxProvisionedPackage -Online | Where-Object {$_.DisplayName -eq $App}
if ($null -ne $ProvPackage) {
Write-Host "[DEL] $App" -NoNewline -ForegroundColor Yellow
Remove-AppxProvisionedPackage -Online -PackageName $ProvPackage.PackageName -ErrorAction Stop
Write-Host " [OK]" -ForegroundColor Yellow
}
} catch { Write-Host "Erreur provisioned: $_" -ForegroundColor Red }
}
Write-Host "`nSuppression terminée pour l'utilisateur $Username." -ForegroundColor Green
}
