Для цикла с DISM для удаления нежелательных приложений в Windows 10

У меня проблемы с приведенным ниже сценарием. Хотя это говорит о том, что это успешно во время выполнения, приложения все еще присутствуют в ОС. Файлы журнала DISM также не помогают.

# Remove non-corporate apps
$AppsList = "Microsoft.3DBuilder",`
            "Microsoft.Advertising.Xaml",`
            "Microsoft.Messaging",`
            "Microsoft.Microsoft3DViewer",`
            "Microsoft.Messaging",`
            "Microsoft.MicrosoftOfficeHub",`
            "Microsoft.MicrosoftSolitaireCollection",`
            "Microsoft.Office.OneNote",`
            "Microsoft.OneConnect",`
            "Microsoft.People",`
            "Microsoft.SkypeApp",`
            #"Microsoft.StorePurchaseApp",`
            "Microsoft.Wallet",`
            "Microsoft.XboxApp",`
            "Microsoft.XboxGameOverlay",`
            "Microsoft.XboxIdentityProvider",`
            "Microsoft.XboxSpeechToTextOverlay",`
            "Microsoft.ZuneMusic",`
            "Microsoft.ZuneVideo",`
            #"Microsoft.WindowsStore",`
            "microsoft.windowscommunicationsapps",`
            "Microsoft.WindowsPhone",`
            "Microsoft.Office.Sway",`
            "Microsoft.ConnectivityStore",`
            "Microsoft.CommsPhone",`
            "Microsoft.BingFinance"

ForEach ($app in $AppsList){
$variable = DISM /Online /Get-ProvisionedAppxPackages | select-string Packagename
$variable2 = $variable -replace "PackageName : ", ""
}

$variable2| % {DISM /Online /Remove-ProvisionedAppxPackage /PackageName:$_}

3 ответа

Чтобы удалить приложения от текущего пользователя:

ForEach ($app in $AppsList)
{
    Get-AppxPackage -Name $app | Remove-AppxPackage
}

Чтобы удалить приложения от новых пользователей, вошедших в систему, используйте, но не удаляйте из существующих пользователей:

ForEach ($app in $AppsList)
{
Get-AppXProvisionedPackage -Online | Where-Object { $_.DisplayName -eq  $app } | Remove-AppxProvisionedPackage -Online
}

Я бы использовал Remove-AppxProvisionedPackage вместо DISM:

# Remove non-corporate apps
$AppsList = "Microsoft.3DBuilder",`
            "Microsoft.Advertising.Xaml",`
            "Microsoft.Messaging",`
            "Microsoft.Microsoft3DViewer",`
            "Microsoft.Messaging",`
            "Microsoft.MicrosoftOfficeHub",`
            "Microsoft.MicrosoftSolitaireCollection",`
            "Microsoft.Office.OneNote",`
            "Microsoft.OneConnect",`
            "Microsoft.People",`
            "Microsoft.SkypeApp",`
            #"Microsoft.StorePurchaseApp",`
            "Microsoft.Wallet",`
            "Microsoft.XboxApp",`
            "Microsoft.XboxGameOverlay",`
            "Microsoft.XboxIdentityProvider",`
            "Microsoft.XboxSpeechToTextOverlay",`
            "Microsoft.ZuneMusic",`
            "Microsoft.ZuneVideo",`
            #"Microsoft.WindowsStore",`
            "microsoft.windowscommunicationsapps",`
            "Microsoft.WindowsPhone",`
            "Microsoft.Office.Sway",`
            "Microsoft.ConnectivityStore",`
            "Microsoft.CommsPhone",`
            "Microsoft.BingFinance"

ForEach ($app in $AppsList){
    Remove-AppxProvisionedPackage -Online -PackageName $app
}

Мой сценарий:

      Write-Host "FiliP Bloatware Remover DISM Script 2023"
$AppsList = "Microsoft.ZuneMusic",`
            "Microsoft.ZuneVideo"
Write-Host "List to remove:"
ForEach ($app in $AppsList)
    {
        Write-Host $app
    }

ForEach ($app in $AppsList){
$PackList = DISM /Online /Get-ProvisionedAppxPackages | select-string Packagename
ForEach ($package in $PackList) 
    {
        if ($package -like "*$app*") 
            {
                $dism_app = $package -replace "PackageName : ", ""
                DISM /Online /Remove-ProvisionedAppxPackage /PackageName:$dism_app
            }
    }
}
Другие вопросы по тегам