Browse Source

Fixed Optimization to skip NonRemovable apps that were always attempted

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.
Damian 6 years ago
parent
commit
f269dbbee3
2 changed files with 34 additions and 22 deletions
  1. 23 16
      Windows10Debloater.ps1
  2. 11 6
      Windows10DebloaterGUI.ps1

+ 23 - 16
Windows10Debloater.ps1

@@ -39,9 +39,15 @@ Function DebloatAll {
     $WhitelistedApps = 'Microsoft.ScreenSketch|Microsoft.Paint3D|Microsoft.WindowsCalculator|Microsoft.WindowsStore|Microsoft.Windows.Photos|CanonicalGroupLimited.UbuntuonWindows|`
     $WhitelistedApps = 'Microsoft.ScreenSketch|Microsoft.Paint3D|Microsoft.WindowsCalculator|Microsoft.WindowsStore|Microsoft.Windows.Photos|CanonicalGroupLimited.UbuntuonWindows|`
     Microsoft.XboxGameCallableUI|Microsoft.XboxGamingOverlay|Microsoft.Xbox.TCUI|Microsoft.XboxGamingOverlay|Microsoft.XboxIdentityProvider|Microsoft.MicrosoftStickyNotes|Microsoft.MSPaint|Microsoft.WindowsCamera|.NET|Framework|`
     Microsoft.XboxGameCallableUI|Microsoft.XboxGamingOverlay|Microsoft.Xbox.TCUI|Microsoft.XboxGamingOverlay|Microsoft.XboxIdentityProvider|Microsoft.MicrosoftStickyNotes|Microsoft.MSPaint|Microsoft.WindowsCamera|.NET|Framework|`
     Microsoft.HEIFImageExtension|Microsoft.ScreenSketch|Microsoft.StorePurchaseApp|Microsoft.VP9VideoExtensions|Microsoft.WebMediaExtensions|Microsoft.WebpImageExtension|Microsoft.DesktopAppInstaller|WindSynthBerry|MIDIBerry|Slack'
     Microsoft.HEIFImageExtension|Microsoft.ScreenSketch|Microsoft.StorePurchaseApp|Microsoft.VP9VideoExtensions|Microsoft.WebMediaExtensions|Microsoft.WebpImageExtension|Microsoft.DesktopAppInstaller|WindSynthBerry|MIDIBerry|Slack'
-    Get-AppxPackage -AllUsers | Where-Object {$_.Name -NotMatch $WhitelistedApps -and $_.NonRemovable -eq "False"} | Remove-AppxPackage
-    Get-AppxPackage | Where-Object {$_.Name -NotMatch $WhitelistedApps -and $_.NonRemovable -eq "False"} | Remove-AppxPackage
-    Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -NotMatch $WhitelistedApps -and $_.NonRemovable -eq "False"} | Remove-AppxProvisionedPackage -Online
+    #NonRemovable Apps that where getting attempted and the system would reject the uninstall, speeds up debloat and prevents 'initalizing' overlay when removing apps
+    $NonRemovable = '1527c705-839a-4832-9118-54d4Bd6a0c89|c5e2524a-ea46-4f67-841f-6a9465d9d515|E2A4F912-2574-4A75-9BB0-0D023378592B|F46D4000-FD22-4DB4-AC8E-4E1DDDE828FE|InputApp|Microsoft.AAD.BrokerPlugin|Microsoft.AccountsControl|`
+    Microsoft.BioEnrollment|Microsoft.CredDialogHost|Microsoft.ECApp|Microsoft.LockApp|Microsoft.MicrosoftEdgeDevToolsClient|Microsoft.MicrosoftEdge|Microsoft.PPIProjection|Microsoft.Win32WebViewHost|Microsoft.Windows.Apprep.ChxApp|`
+    Microsoft.Windows.AssignedAccessLockApp|Microsoft.Windows.CapturePicker|Microsoft.Windows.CloudExperienceHost|Microsoft.Windows.ContentDeliveryManager|Microsoft.Windows.Cortana|Microsoft.Windows.NarratorQuickStart|`
+    Microsoft.Windows.ParentalControls|Microsoft.Windows.PeopleExperienceHost|Microsoft.Windows.PinningConfirmationDialog|Microsoft.Windows.SecHealthUI|Microsoft.Windows.SecureAssessmentBrowser|Microsoft.Windows.ShellExperienceHost|`
+    Microsoft.Windows.XGpuEjectDialog|Microsoft.XboxGameCallableUI|Windows.CBSPreview|windows.immersivecontrolpanel|Windows.PrintDialog|Microsoft.VCLibs.140.00|Microsoft.Services.Store.Engagement|Microsoft.UI.Xaml.2.0'
+    Get-AppxPackage -AllUsers | Where {$_.Name -NotMatch $WhitelistedApps -and $_.Name -NotMatch $NonRemovable} | Remove-AppxPackage
+    Get-AppxPackage | Where {$_.Name -NotMatch $WhitelistedApps -and $_.Name -NotMatch $NonRemovable} | Remove-AppxPackage
+    Get-AppxProvisionedPackage -Online | Where {$_.Name -NotMatch $WhitelistedApps -and $_.Name -NotMatch $NonRemovable} | Remove-AppxProvisionedPackage -Online
 }
 }
 
 
 Function DebloatBlacklist {
 Function DebloatBlacklist {
@@ -676,7 +682,7 @@ $Prompt1 = [Windows.MessageBox]::Show($Ask, "Debloat or Revert", $Button, $Error
 Switch ($Prompt1) {
 Switch ($Prompt1) {
     #This will debloat Windows 10
     #This will debloat Windows 10
     Yes {
     Yes {
-
+        #Everything is specific prompt
         $Prompt2 = [Windows.MessageBox]::Show($EverythingorSpecific, "Everything or Specific", $Button, $Warn)
         $Prompt2 = [Windows.MessageBox]::Show($EverythingorSpecific, "Everything or Specific", $Button, $Warn)
         switch ($Prompt2) {
         switch ($Prompt2) {
             Yes { 
             Yes { 
@@ -751,7 +757,7 @@ Switch ($Prompt1) {
                 Start-Sleep 1
                 Start-Sleep 1
             }
             }
         }
         }
-
+        #Disabling EdgePDF prompt
         $Prompt3 = [Windows.MessageBox]::Show($EdgePdf, "Edge PDF", $Button, $Warn)
         $Prompt3 = [Windows.MessageBox]::Show($EdgePdf, "Edge PDF", $Button, $Warn)
         Switch ($Prompt3) {
         Switch ($Prompt3) {
             Yes {
             Yes {
@@ -773,7 +779,7 @@ Switch ($Prompt1) {
                 Write-Host "You have chosen to skip removing OneDrive from your machine."
                 Write-Host "You have chosen to skip removing OneDrive from your machine."
             }
             }
         }
         }
-				#Prompt asking if you'd like to unpin all start items
+		#Prompt asking if you'd like to unpin all start items
 		$Prompt5 = [Windows.MessageBox]::Show($Unpin, "Unpin", $Button, $ErrorIco) 
 		$Prompt5 = [Windows.MessageBox]::Show($Unpin, "Unpin", $Button, $ErrorIco) 
         Switch ($Prompt5) {
         Switch ($Prompt5) {
             Yes {
             Yes {
@@ -781,31 +787,31 @@ Switch ($Prompt1) {
 				Write-Host "Start Apps unpined."
 				Write-Host "Start Apps unpined."
             }
             }
             No {
             No {
-				Write-Host "You have chosen to skip removing OneDrive from your machine."
+				Write-Host "Apps will remain pinned to the start menu."
 
 
             }
             }
         }
         }
+        #Prompt asking if you want to install .NET
         $Prompt6 = [Windows.MessageBox]::Show($InstallNET, "Install .Net", $Button, $Warn)
         $Prompt6 = [Windows.MessageBox]::Show($InstallNET, "Install .Net", $Button, $Warn)
         Switch ($Prompt6) {
         Switch ($Prompt6) {
             Yes {
             Yes {
                 Write-Host "Initializing the installation of .NET 3.5..."
                 Write-Host "Initializing the installation of .NET 3.5..."
-                Try {
                 DISM /Online /Enable-Feature /FeatureName:NetFx3 /All
                 DISM /Online /Enable-Feature /FeatureName:NetFx3 /All
-                Write-Host ".NET 3.5 has been successfully installed!" }
-                Catch {
-                    $_
+                Write-Host ".NET 3.5 has been successfully installed!"
                 }
                 }
+            No {
+                Write-Host "Skipping .NET install."
+            }
             }
             }
-        }
         #Prompt asking if you'd like to reboot your machine
         #Prompt asking if you'd like to reboot your machine
-        $Prompt7 = [Windows.MessageBox]::Show($Reboot, "Reboot", $Button, $Warn) 
+        $Prompt7 = [Windows.MessageBox]::Show($Reboot, "Reboot", $Button, $Warn)
         Switch ($Prompt7) {
         Switch ($Prompt7) {
             Yes {
             Yes {
                 Write-Host "Unloading the HKCR drive..."
                 Write-Host "Unloading the HKCR drive..."
                 Remove-PSDrive HKCR 
                 Remove-PSDrive HKCR 
                 Start-Sleep 1
                 Start-Sleep 1
-                Stop-Transcript
                 Write-Host "Initiating reboot."
                 Write-Host "Initiating reboot."
+                Stop-Transcript
                 Start-Sleep 2
                 Start-Sleep 2
                 Restart-Computer
                 Restart-Computer
             }
             }
@@ -813,13 +819,15 @@ Switch ($Prompt1) {
                 Write-Host "Unloading the HKCR drive..."
                 Write-Host "Unloading the HKCR drive..."
                 Remove-PSDrive HKCR 
                 Remove-PSDrive HKCR 
                 Start-Sleep 1
                 Start-Sleep 1
-                Stop-Transcript
                 Write-Host "Script has finished. Exiting."
                 Write-Host "Script has finished. Exiting."
+                Stop-Transcript
                 Start-Sleep 2
                 Start-Sleep 2
                 Exit
                 Exit
             }
             }
         }
         }
     }
     }
+}
+
     No {
     No {
         Write-Host "Reverting changes..."
         Write-Host "Reverting changes..."
         Write-Host "Creating PSDrive 'HKCR' (HKEY_CLASSES_ROOT). This will be used for the duration of the script as it is necessary for the modification of specific registry keys."
         Write-Host "Creating PSDrive 'HKCR' (HKEY_CLASSES_ROOT). This will be used for the duration of the script as it is necessary for the modification of specific registry keys."
@@ -859,4 +867,3 @@ Switch ($Prompt1) {
             }
             }
         }
         }
     }
     }
-}

+ 11 - 6
Windows10DebloaterGUI.ps1

@@ -297,16 +297,21 @@ $RemoveAllBloatware.Add_Click( {
         }
         }
 
 
         Function DebloatAll {
         Function DebloatAll {
-    
             #Removes AppxPackages
             #Removes AppxPackages
             #Credit to /u/GavinEke for a modified version of my whitelist code
             #Credit to /u/GavinEke for a modified version of my whitelist code
-            [regex]$WhitelistedApps = 'Microsoft.ScreenSketch|Microsoft.Paint3D|Microsoft.WindowsCalculator|Microsoft.WindowsStore|Microsoft.Windows.Photos|CanonicalGroupLimited.UbuntuonWindows|`
+            $WhitelistedApps = 'Microsoft.ScreenSketch|Microsoft.Paint3D|Microsoft.WindowsCalculator|Microsoft.WindowsStore|Microsoft.Windows.Photos|CanonicalGroupLimited.UbuntuonWindows|`
             Microsoft.XboxGameCallableUI|Microsoft.XboxGamingOverlay|Microsoft.Xbox.TCUI|Microsoft.XboxGamingOverlay|Microsoft.XboxIdentityProvider|Microsoft.MicrosoftStickyNotes|Microsoft.MSPaint|Microsoft.WindowsCamera|.NET|Framework|`
             Microsoft.XboxGameCallableUI|Microsoft.XboxGamingOverlay|Microsoft.Xbox.TCUI|Microsoft.XboxGamingOverlay|Microsoft.XboxIdentityProvider|Microsoft.MicrosoftStickyNotes|Microsoft.MSPaint|Microsoft.WindowsCamera|.NET|Framework|`
             Microsoft.HEIFImageExtension|Microsoft.ScreenSketch|Microsoft.StorePurchaseApp|Microsoft.VP9VideoExtensions|Microsoft.WebMediaExtensions|Microsoft.WebpImageExtension|Microsoft.DesktopAppInstaller|WindSynthBerry|MIDIBerry|Slack'
             Microsoft.HEIFImageExtension|Microsoft.ScreenSketch|Microsoft.StorePurchaseApp|Microsoft.VP9VideoExtensions|Microsoft.WebMediaExtensions|Microsoft.WebpImageExtension|Microsoft.DesktopAppInstaller|WindSynthBerry|MIDIBerry|Slack'
-            Get-AppxPackage -AllUsers | Where-Object {$_.Name -NotMatch $WhitelistedApps -and $_.NonRemovable -eq "False"} | Remove-AppxPackage
-            Get-AppxPackage | Where-Object {$_.Name -NotMatch $WhitelistedApps -and $_.NonRemovable -eq "False"} | Remove-AppxPackage
-            Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -NotMatch $WhitelistedApps -and $_.NonRemovable -eq "False"} | Remove-AppxProvisionedPackage -Online
-        }
+            #NonRemovable Apps that where getting attempted and the system would reject the uninstall, speeds up debloat and prevents 'initalizing' overlay when removing apps
+            $NonRemovable = '1527c705-839a-4832-9118-54d4Bd6a0c89|c5e2524a-ea46-4f67-841f-6a9465d9d515|E2A4F912-2574-4A75-9BB0-0D023378592B|F46D4000-FD22-4DB4-AC8E-4E1DDDE828FE|InputApp|Microsoft.AAD.BrokerPlugin|Microsoft.AccountsControl|`
+            Microsoft.BioEnrollment|Microsoft.CredDialogHost|Microsoft.ECApp|Microsoft.LockApp|Microsoft.MicrosoftEdgeDevToolsClient|Microsoft.MicrosoftEdge|Microsoft.PPIProjection|Microsoft.Win32WebViewHost|Microsoft.Windows.Apprep.ChxApp|`
+            Microsoft.Windows.AssignedAccessLockApp|Microsoft.Windows.CapturePicker|Microsoft.Windows.CloudExperienceHost|Microsoft.Windows.ContentDeliveryManager|Microsoft.Windows.Cortana|Microsoft.Windows.NarratorQuickStart|`
+            Microsoft.Windows.ParentalControls|Microsoft.Windows.PeopleExperienceHost|Microsoft.Windows.PinningConfirmationDialog|Microsoft.Windows.SecHealthUI|Microsoft.Windows.SecureAssessmentBrowser|Microsoft.Windows.ShellExperienceHost|`
+            Microsoft.Windows.XGpuEjectDialog|Microsoft.XboxGameCallableUI|Windows.CBSPreview|windows.immersivecontrolpanel|Windows.PrintDialog|Microsoft.VCLibs.140.00|Microsoft.Services.Store.Engagement|Microsoft.UI.Xaml.2.0'
+            Get-AppxPackage -AllUsers | Where {$_.Name -NotMatch $WhitelistedApps -and $_.Name -NotMatch $NonRemovable} | Remove-AppxPackage
+            Get-AppxPackage | Where {$_.Name -NotMatch $WhitelistedApps -and $_.Name -NotMatch $NonRemovable} | Remove-AppxPackage
+            Get-AppxProvisionedPackage -Online | Where {$_.Name -NotMatch $WhitelistedApps -and $_.Name -NotMatch $NonRemovable} | Remove-AppxProvisionedPackage -Online
+}
   
   
         #Creates a PSDrive to be able to access the 'HKCR' tree
         #Creates a PSDrive to be able to access the 'HKCR' tree
         New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT
         New-PSDrive -Name HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT