DebloatAll whitelisted XBox apps since a lot of home users
want to play games. So, I added ALL of the XBox items to
the whitelist. Seems reasonable to me.
The blacklist removed several XBox components (since it
ignores the whitelist). Since some XBox components are
being removed, I added ALL of the XBox items to
the blacklist. Seems reasonable to me.
Or alternatively all XBox apps should be removed from
one of the lists, right?
I also confirmed that both GameOverlay and GamingOverlay
are both valid/installed in 1809.
This ESPECIALLY helps during a second run of the removal script,
where the result is almost instantaneous. Instead of
initializing the Remove-AppxPackage routine N times,
it only needs to do it once.
The downside is that we can't control feedback to the user on
the progress - and users frequently complain about hung
processes etc. There is SOME feedback coming from the
Remove-AppxPackage process - hopefully that will be enough.
I also ensured that -AllUsers packages were removed,
which was not done previously. If there was a reason for
NOT removing -AllUsers for the blacklist, then it can
be removed, but the DeBloat All function does remove
it, so to be consistent it seemed best to do the same here.
In terms of $NonRemovables - I had just added that but
on second thought, let the user be smarter than the computer.
The user now has the tools to detect if there are
conflicts with nonRemovables, so if they choose to
try to remove it anyway, don't prevent that.
The computer might be lying after all...
At least as far as I can see. Microsoft.Paint is the appx name for
Paint3D. I often confuse it with Microsoft.Print3D, and perhaps
that is what has happened here as well.
https://github.com/Sycnex/Windows10Debloater/issues/107
1.) dynamic list of all installed apps, indicating current status.
This enables instant verification of the effectiveness of
running a debloat.
2.) white/blacklists regex/matching name retained. (Doesn't
change to match the actual full/installed name.)
3.) indentifies NEW apps not in any black or white list.
4.) notes conflicts between NonRemovable/White/Black lists.
Potential enhancements
A.) I placed the save button at the top of the form because
it was easiest to do. I don't know how to put it at the
bottom of a dynamic-length form.
B.) Currently the white/blacklist are only updated in the
running program when the saveList button is pressed.
That means that all of the NEWly found bloats which
are checked as bloatware will not be removed, and any
changes the user makes also don't take effect until
they are saved. I supposed an OK button could handle
that (but then a cancel button would also be needed).
Step 2 is to add a GUI.
This step 1 patch is the minimal requirement
for custom blacklist functionality.
https://github.com/Sycnex/Windows10Debloater/issues/68https://github.com/Sycnex/Windows10Debloater/issues/110
1.) Make the black/whitelists global - so they can easily be
modified from functions and forms (needed for step 2)
2.) Put the lists at the start of the script to make it
easy for people to find and browse through the lists.
3.) One item per line to allow for better documentation.
I added as many notes as I could. Documentating the
reasons for black/white-listing is very valuable.
4.) Both whitelist and blacklist entries can be used as REGEXs.
That can cause a bit of confusion perhaps, but probably
necessary for flexibility. I turned ON case sensitivity
to offset that a bit (using .NET as the prime example
which otherwise falsely whitelists .NetworkSpeedTest)
In theory, these should be merely cosmetic changes and any
change in behaviour should be considered a bug.
5.) Provide the user a persistent, customizable white/blacklist.
custom-lists.ps1 should NOT be added to GIT,
so that a "git pull" does not change their custom settings.
Step 2 will provide a GUI to easily create/edit this file.
6.) Tried to make NonRemovables dynamic - to auto-detect new
packages that cannot be removed in future verisons of Windows.
Non-dynamic fallback provided for older versions of Windows.
(I developed on 1709, which didn't have the .NonRemovable
property, but tested on 1809 which does.)
NonRemovable apps were still getting attempted in the debloat all functions that were always throwing errors that were just hanging on initalizing floating above the powershell window running.
Fixed Prompt position after the .NET prompt that wouldn't show the Do you want to power down Prompt
Fixed the Write-Host saying you didn't want to remove one drive after selecting 'no' to not unpin tiles.
#> is in the wrong place and creates an error
Missing closing '}' in statement block or type definition.
+ CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : MissingEndCurlyBrace
added ' -and $_.NonRemovable -eq "False"' to the Get-AppxPackage code lines to help sort through apps that can't get deleted and just get skipped anyways.
Onedrive fixes and code reuse from GUI moved over to interactive script code.
Removed [CmdletBinding()] and Param() that wasn't being used.
Fixed Write-Output to Write-Host
Added ' -and $_.NonRemovable -eq "False"' to GUI code as well in the DebloatAll function
Started out adding a new feature about removing 3D objects from explorer in This PC but I found a lot of code re use and found bugs when I went to add it to the GUI
Fixed -Verbose being used where Write-Host is already being used.
Fixed Admin check so it works, it was removed last year for some reason after I added it when I started adding my code to this project from my old debloat.
Fixed some code reuse where -ErrorAction SilentlyContinue is called multiple times even after it's already a global settings set in the start of the function.
Removed -Name from where it just wasn't needed to slim down file size.
Fixed the OneDrive button so it workes without errors and finds everything the way it should.
Shortened .NET 3.5 section to slim down file size
Fixed Disable Windows Store Automatic Updates code so it runs without errors and is shorter.