With each release of Windows 10, Microsoft continues to add several applications by default into the operating system. Two big concerns are shared by IT professionals is user logon time and the unnecessary applications like Candy Crush. Even for with the Windows 10 Enterprise editions designed for business, removing bloatware is a common need.
If you are not already aware, Windows Universal Apps (aka Metro Apps, aka Windows Store Apps) which are pre-provisioned into the image are reinstalled at each user logon. With Windows 7, for example, Microsoft Sticky Notes and the Calculator were installed once and could be used by each user. With Windows 10 and the universal application system, for each user login Sticky Notes, Calculator, Edge, and other WUA are installed during the initial login. You can imagine that this is a nightmare scenario for non-persistent VDI environments where each login is a new login, thus every connection is forced to wait for the installs to occur.
Because of this issue, IT administrators should evaluate more carefully which applications they install or leave in the image.
To see a list of the default applications currently on your system, run the following PowerShell command:
Get-ProvisionedAppXPackage -Online|Select DisplayName
Below is a list of applications and my own current recommendations. Some applications do not exist in every Windows 10 version released. Applications which might still be required by a smaller subset of users can still be made available through the Windows Store or Windows Store for Business:
Remove:
- Microsoft.3DBuilder
- Microsoft.BingFinance
- Microsoft.BingNews
- Microsoft.BingSports
- Microsoft.BingWeather
- Microsoft.Getstarted
- Microsoft.Messaging
- Microsoft.3DViewer
- Microsoft.MicrosoftOfficeHub
- Microsoft.Office.Sway
- Microsoft.MicrosoftSolitaireCollection
- Microsfot.MicrosoftStickyNotes
- Microsoft.MSPaint
- Microsoft.Office.OneNote (Especially if you already plan to install Office which includes OneNote)
- Microsoft.OneConnect
- Microsoft.People
- Microsoft.SkypeApp
- Microsoft.Wallet
- Microsoft.Windows.Photos
- Microsoft.WindowsCamera
- microsoft.windowscommunicationsapps
- Microsoft.WindowsFeedbackHub (You may want to leave this in for your IT guys to send feedback to MS about problems with the OS)
- Microsoft.WindowsMaps
- Microsoft.WindowsPhone
- Microsoft.WindowsSoundrecorder
- Microsoft.XboxApp
- Microsoft.XboxGameOverlay
- Microsoft.XboxIdentityProvider
- Microsoft.SpeechToTextOverlay
- Microsoft.ZuneMusic
- Microsoft.ZuneVideo
Currently I remove the default applications by running a PowerShell script as a task in the LANDESK provisioning template to automate the process during my image build. You can use the script and run it however you want. Simply add or remove applications to the $AppsList variable.
#Reference: https://support.microsoft.com/en-us/kb/2769827 #Remove Windows 10 Default Apps #Start Logging to file $ErrorActionPreference="SilentlyContinue" Stop-Transcript | out-null $ErrorActionPreference = "Continue" $OutputFileLocation = "C:\Temp\Win10PreProvApps_Removal.log" Start-Transcript -path $OutputFileLocation -append $AppsList = “Microsoft.3DViewer”, “Microsoft.MSPaint”, “Microsoft.Wallet”, “Microsoft.XboxGameOverlay”, “Microsoft.XboxSpeechToTextOverlay”, “Microsoft.Office.Onenote”, “Microsoft.OneConnect”, “Microsoft.BingFinance”, “Microsoft.BingNews”, “Microsoft.BingWeather”, “Microsoft.XboxApp”, “Microsoft.SkypeApp”, “Microsoft.MicrosoftSolitaireCollection”, “Microsoft.BingSports”, “Microsoft.ZuneMusic”, “Microsoft.ZuneVideo”, “Microsoft.Windows.Photos”, “Microsoft.People”, “Microsoft.MicrosoftOfficeHub”, “Microsoft.WindowsMaps”, “Microsoft.Windowscommunicationsapps”, “Microsoft.Getstarted”, “Microsoft.3DBuilder”, “Microsoft.Office.Sway”, “Microsoft.Windows.FeaturesOnDemand.InsiderHub”, “Microsoft.XboxGameCallableUI”, “Microsoft.WindowsPhone”, “Microsoft.WindowsCamera”, “Microsoft.WindowsAlarms”, “Microsoft.Messaging”, “Microsoft.CommsPhone”, “Microsoft.Feedback”, “Microsoft.WindowsFeedbackHub”, “Microsoft.XboxIdentityProvider”, “Microsoft.MicrosoftStickyNotes”, “Microsoft.StorePurchaseApp”, “Microsoft.WindowsSoundRecorder”, “*.Twitter”, “*.CandyCrushSaga” #Imports Import-Module Appx Import-Module Dism ForEach ($App in $AppsList) { $PackageFullName = (Get-AppxPackage $App).PackageFullName $ProPackageFullName = (Get-AppxProvisionedPackage -online | where {$_.Displayname -eq $App}).PackageName write-host $PackageFullName Write-Host $ProPackageFullName if ($PackageFullName) { Write-Host “Removing Package: $App” remove-AppxPackage -package $PackageFullName } else { Write-Host “Unable to find package: $App” } if ($ProPackageFullName) { Write-Host “Removing Provisioned Package: $ProPackageFullName” Remove-AppxProvisionedPackage -online -packagename $ProPackageFullName } else { Write-Host “Unable to find provisioned package: $App” } } Stop-Transcript exit 0