Recently we found out that a few browser options are going to be losing support. Now that we know they are going away, what incentive do we have to keep these on users machines? ZERO! Let’s look at how we can use PDQ Inventory to find machines that have the offending software and PDQ Deploy to remove it.
Here is the PDQ Deploy package if you'd like to follow along.
I will be honest, I started this planning by talking about how we can remove both Legacy Edge and Internet Explorer 11, but Microsoft is not going to let you remove Edge. Even if you install the latest Chromium Edge, it will just hide the Legacy from you. If you run:
Get-AppxPackage -Name "Microsoft.MicrosoftEdge"
It will show you it's still installed; Remove-AppxPackage will fail. You can do some workarounds to get rid of it, just like you can for Siri, but I have no idea what dependencies it has that will break by it. Let's leave it there, and assume that they will drop the legacy in a later major release and make the new version unable to be removed.
Finding which machines have Internet Explorer 11 installed is going to be super easy. Install PDQ Inventory and scan, which is a prebuilt collection.
It's a pretty safe bet this is on all of your windows 10 machines, but don't you feel better to have verification of what has it, and in such a short time? Isn't it awesome to receive great information out of the box?
Removing is pretty straightforward, as well. It is considered an optional feature, which you can remove with PowerShell command
Disable-WindowsOptionalFeature -FeatureName Internet-Explorer-Optional-amd64 –Online -NoRestart
Disable-WindowsOptionalFeature -FeatureName Internet-Explorer-Optional-x86 –Online -NoRestart
Because we are deploying this to a bunch of computers, make sure you specify the no restart. We know the command, so let's create a new package and add two PowerShell steps. One for each architecture.
Create a condition for each step, so it only looks at computers of that architecture.
And that is all there is to it. We are ready to uninstall.
Now that we know what machines we are removing and the package is built, let's combine them and remove it. You will want to add a condition for your package that the machine is a member of the IE11 group in Inventory. This will prevent this from running on computers that don't need to have it removed.
Deploy this to all computers. I ran this against around 15 computers, and it took about 5 minutes to complete. Keep in mind that we did tell it not to restart, so those computers will still appear to have it until those machines restart. If you are feeling particularly aggressive, you can remove the no restart from the end of those lines, and you will see the result much quicker but most likely receive a lot more complaints.
If this is your first time to this blog, then this was for sure here from the start. If you are returning because your collections don’t seem to be updating correctly? Then I admit I missed something here. Thanks to Joe Brugaletta for letting us know!
It turns out that our collection just looks for the feature, not whether it is enabled. So that collection will still show them after we remove the feature. So let’s make a new collection that will check if we have that feature enabled or not. This Filter is pretty easy to make. We want to look at machines that have the Feature IE 11, then specify if it is enabled or not. We chose the caption for the column as it is easier to read. If you want to do it by name, it will be “Internet-Explorer-Optional-amd64” on a 64-bit system.
With those collections built, you can now properly check which machines have successfully had IE 11 removed.
This feels like a lot of words for something that will not take a lot of time. I can’t think of a reason to keep this on your machines when it falls out of support over the next year. You will already be shifting your workforce to a different solution. Why not remove what you don’t need as you go?