| 
					
				 | 
			
			
				@@ -28,25 +28,17 @@ Start-Transcript -OutputDirectory "$DebloatFolder" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Add-Type -AssemblyName PresentationCore, PresentationFramework
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Function DebloatAll {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    [CmdletBinding()]
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Param()
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     #Removes AppxPackages
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     #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.HEIFImageExtension|Microsoft.ScreenSketch|Microsoft.StorePurchaseApp|Microsoft.VP9VideoExtensions|Microsoft.WebMediaExtensions|Microsoft.WebpImageExtension|Microsoft.DesktopAppInstaller|WindSynthBerry|MIDIBerry|Slack'
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Get-AppxPackage -AllUsers | Where-Object {$_.Name -NotMatch $WhitelistedApps} | Remove-AppxPackage
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Get-AppxPackage | Where-Object {$_.Name -NotMatch $WhitelistedApps} | Remove-AppxPackage
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Get-AppxProvisionedPackage -Online | Where-Object {$_.PackageName -NotMatch $WhitelistedApps} | Remove-AppxProvisionedPackage -Online
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    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
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Function DebloatBlacklist {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    [CmdletBinding()]
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Param ()
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     $Bloatware = @(
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -116,18 +108,14 @@ Function DebloatBlacklist { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         #"*Microsoft.WindowsStore*"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     )
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     foreach ($Bloat in $Bloatware) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Get-AppxPackage -Name $Bloat| Remove-AppxPackage -ErrorAction SilentlyContinue
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Get-AppxProvisionedPackage -Online | Where-Object DisplayName -like $Bloat | Remove-AppxProvisionedPackage -Online -ErrorAction SilentlyContinue
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Get-AppxPackage -Name $Bloat| Remove-AppxPackage
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Get-AppxProvisionedPackage -Online | Where-Object DisplayName -like $Bloat | Remove-AppxProvisionedPackage -Online
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Write-Output "Trying to remove $Bloat."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Function Remove-Keys {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    [CmdletBinding()]
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Param()
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     #These are the registry keys that it will delete.
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     $Keys = @(
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -171,10 +159,6 @@ Function Remove-Keys { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Function Protect-Privacy {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    [CmdletBinding()]
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Param()
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     #Disables Windows Feedback Experience
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Write-Output "Disabling Windows Feedback Experience program"
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -288,7 +272,7 @@ Function Protect-Privacy { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Write-Output "Disabling People icon on Taskbar"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     $People = 'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced\People'
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     If (Test-Path $People) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Set-ItemProperty $People -Name PeopleBand -Value 0 -Verbose
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Set-ItemProperty $People -Name PeopleBand -Value 0
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     #Disables scheduled tasks that are considered unnecessary 
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -390,10 +374,6 @@ Function Stop-EdgePDF { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Function Revert-Changes {   
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    [CmdletBinding()]
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Param()
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     #This function will revert the changes you made when running the Start-Debloat function.
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -538,10 +518,6 @@ Function Enable-EdgePDF { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Function FixWhitelistedApps {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    [CmdletBinding()]
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Param()
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     If (!(Get-AppxPackage -AllUsers | Select Microsoft.Paint3D, Microsoft.WindowsCalculator, Microsoft.WindowsStore, Microsoft.Windows.Photos)) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         #Credit to abulgatz for these 4 lines of code
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -554,88 +530,89 @@ Function FixWhitelistedApps { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Function UninstallOneDrive {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Write-Output "Checking for pre-existing files and folders located in the OneDrive folders..."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Write-Host "Checking for pre-existing files and folders located in the OneDrive folders..."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    If (Get-Item -Path "$env:USERPROFILE\OneDrive\*") {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Write-Output "Files found within the OneDrive folder! Checking to see if a folder named OneDriveBackupFiles exists."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    If (Test-Path "$env:USERPROFILE\OneDrive\*") {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Write-Host "Files found within the OneDrive folder! Checking to see if a folder named OneDriveBackupFiles exists."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        If (Get-Item "$env:USERPROFILE\Desktop\OneDriveBackupFiles" -ErrorAction SilentlyContinue) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Write-Output "A folder named OneDriveBackupFiles already exists on your desktop. All files from your OneDrive location will be moved to that folder." 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        else {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            If (!(Get-Item "$env:USERPROFILE\Desktop\OneDriveBackupFiles" -ErrorAction SilentlyContinue)) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "A folder named OneDriveBackupFiles will be created and will be located on your desktop. All files from your OneDrive location will be located in that folder."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                New-item -Path "$env:USERPROFILE\Desktop" -Name "OneDriveBackupFiles"-ItemType Directory -Force
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Successfully created the folder 'OneDriveBackupFiles' on your desktop."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            If (Test-Path "$env:USERPROFILE\Desktop\OneDriveBackupFiles") {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "A folder named OneDriveBackupFiles already exists on your desktop. All files from your OneDrive location will be moved to that folder." 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            else {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                If (!(Test-Path "$env:USERPROFILE\Desktop\OneDriveBackupFiles")) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Write-Host "A folder named OneDriveBackupFiles will be created and will be located on your desktop. All files from your OneDrive location will be located in that folder."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    New-item -Path "$env:USERPROFILE\Desktop" -Name "OneDriveBackupFiles"-ItemType Directory -Force
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    Write-Host "Successfully created the folder 'OneDriveBackupFiles' on your desktop."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Move-Item -Path "$env:USERPROFILE\OneDrive\*" -Destination "$env:USERPROFILE\Desktop\OneDriveBackupFiles" -Force
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Write-Host "Successfully moved all files/folders from your OneDrive folder to the folder 'OneDriveBackupFiles' on your desktop."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Write-Host "Proceeding with the removal of OneDrive."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Move-Item -Path "$env:USERPROFILE\OneDrive\*" -Destination "$env:USERPROFILE\Desktop\OneDriveBackupFiles" -Force
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Write-Output "Successfully moved all files/folders from your OneDrive folder to the folder 'OneDriveBackupFiles' on your desktop."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Write-Output "Proceeding with the removal of OneDrive."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Else {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        If (!(Get-Item -Path "$env:USERPROFILE\OneDrive\*")) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Write-Output "Either the OneDrive folder does not exist or there are no files to be found in the folder. Proceeding with removal of OneDrive."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Else {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Write-Host "Either the OneDrive folder does not exist or there are no files to be found in the folder. Proceeding with removal of OneDrive."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Write-Host "Enabling the Group Policy 'Prevent the usage of OneDrive for File Storage'."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $OneDriveKey = 'HKLM:Software\Policies\Microsoft\Windows\OneDrive'
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            If (!(Test-Path $OneDriveKey)) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Mkdir $OneDriveKey
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Set-ItemProperty $OneDriveKey -Name OneDrive -Value DisableFileSyncNGSC
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Set-ItemProperty $OneDriveKey -Name OneDrive -Value DisableFileSyncNGSC
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Write-Output "Uninstalling OneDrive"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Write-Host "Uninstalling OneDrive. Please wait..."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    New-PSDrive  HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $onedrive = "$env:SYSTEMROOT\SysWOW64\OneDriveSetup.exe"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $ExplorerReg1 = "HKCR:\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    $ExplorerReg2 = "HKCR:\Wow6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Stop-Process -Name "OneDrive*"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Start-Sleep 2
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    If (!(Test-Path $onedrive)) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $onedrive = "$env:SYSTEMROOT\System32\OneDriveSetup.exe"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Start-Process $onedrive "/uninstall" -NoNewWindow -Wait
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Start-Sleep 2
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Write-Output "Stopping explorer"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    .\taskkill.exe /F /IM explorer.exe
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Start-Sleep 3
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Write-Output "Removing leftover files"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Remove-Item "$env:USERPROFILE\OneDrive" -Force -Recurse
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Remove-Item "$env:LOCALAPPDATA\Microsoft\OneDrive" -Force -Recurse
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Remove-Item "$env:PROGRAMDATA\Microsoft OneDrive" -Force -Recurse
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    If (Test-Path "$env:SYSTEMDRIVE\OneDriveTemp") {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Remove-Item "$env:SYSTEMDRIVE\OneDriveTemp" -Force -Recurse
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Write-Output "Removing OneDrive from windows explorer"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    If (!(Test-Path $ExplorerReg1)) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        New-Item $ExplorerReg1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Set-ItemProperty $ExplorerReg1 System.IsPinnedToNameSpaceTree -Value 0 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    If (!(Test-Path $ExplorerReg2)) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        New-Item $ExplorerReg2
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Set-ItemProperty $ExplorerReg2 System.IsPinnedToNameSpaceTree -Value 0
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Write-Output "Restarting Explorer that was shut down before."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Start-Process explorer.exe -NoNewWindow
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Write-Host "Enabling the Group Policy 'Prevent the usage of OneDrive for File Storage'."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $OneDriveKey = 'HKLM:Software\Policies\Microsoft\Windows\OneDrive'
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        If (!(Test-Path $OneDriveKey)) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Mkdir $OneDriveKey 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        New-PSDrive  HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $onedrive = "$env:SYSTEMROOT\SysWOW64\OneDriveSetup.exe"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $ExplorerReg1 = "HKCR:\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $ExplorerReg2 = "HKCR:\Wow6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Stop-Process -Name "OneDrive*"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Start-Sleep 2
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        If (!(Test-Path $onedrive)) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $onedrive = "$env:SYSTEMROOT\System32\OneDriveSetup.exe"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $DisableAllOneDrive = 'HKLM:Software\Policies\Microsoft\Windows\OneDrive'
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        If (Test-Path $DisableAllOneDrive) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            New-ItemProperty $DisableAllOneDrive -Name OneDrive -Value DisableFileSyncNGSC -Verbose 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Start-Process $onedrive "/uninstall" -NoNewWindow -Wait
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Start-Sleep 2
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Write-Host "Stopping explorer"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        taskkill.exe /F /IM explorer.exe
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Start-Sleep 3
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Write-Host "Removing leftover files"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        If (Test-Path "$env:USERPROFILE\OneDrive") {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Remove-Item "$env:USERPROFILE\OneDrive" -Force -Recurse
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        If (Test-Path "$env:LOCALAPPDATA\Microsoft\OneDrive") {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Remove-Item "$env:LOCALAPPDATA\Microsoft\OneDrive" -Force -Recurse
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        If (Test-Path "$env:PROGRAMDATA\Microsoft OneDrive") {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Remove-Item "$env:PROGRAMDATA\Microsoft OneDrive" -Force -Recurse
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        If (Test-Path "$env:SYSTEMDRIVE\OneDriveTemp") {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Remove-Item "$env:SYSTEMDRIVE\OneDriveTemp" -Force -Recurse
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Write-Host "Removing OneDrive from windows explorer"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        If (!(Test-Path $ExplorerReg1)) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            New-Item $ExplorerReg1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Set-ItemProperty $ExplorerReg1 System.IsPinnedToNameSpaceTree -Value 0 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        If (!(Test-Path $ExplorerReg2)) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            New-Item $ExplorerReg2
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Set-ItemProperty $ExplorerReg2 System.IsPinnedToNameSpaceTree -Value 0
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Write-Host "Restarting Explorer that was shut down before."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Start-Process explorer.exe -NoNewWindow
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        Write-Host "OneDrive has been successfully uninstalled!"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Function UnpinStart {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #https://superuser.com/questions/1068382/how-to-remove-all-the-tiles-in-the-windows-10-start-menu
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #Unpins all tiles from the Start Menu
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Write-Output "Unpinning all tiles from the start menu"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Write-Host "Unpinning all tiles from the start menu"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (New-Object -Com Shell.Application).
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     NameSpace('shell:::{4234d49b-0245-4df3-b780-3893943456e1}').
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     Items() |
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -646,7 +623,7 @@ Function UnpinStart { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Function Remove3dObjects {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #Removes 3D Objects from the 'My Computer' submenu in explorer
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Write-Output "Removing 3D Objects from explorer 'My Computer' submenu"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Write-Host "Removing 3D Objects from explorer 'My Computer' submenu"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     $Objects32 = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     $Objects64 = "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     If (Test-Path $Objects32) {
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -659,7 +636,7 @@ Function Remove3dObjects { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 Function Restore3dObjects {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 #Restores 3D Objects from the 'My Computer' submenu in explorer
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    Write-Output "Restoring 3D Objects from explorer 'My Computer' submenu"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Write-Host "Restoring 3D Objects from explorer 'My Computer' submenu"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     $Objects32 = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     $Objects64 = "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Explorer\MyComputer\NameSpace\{0DB7E03F-FC29-4DC6-9020-FF41B59E513A}"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     If (!(Test-Path $Objects32)) {
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -698,72 +675,72 @@ Switch ($Prompt1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         switch ($Prompt2) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Yes { 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 #Creates a "drive" to access the HKCR (HKEY_CLASSES_ROOT)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Creating PSDrive 'HKCR' (HKEY_CLASSES_ROOT). This will be used for the duration of the script as it is necessary for the removal and 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 removal and modification of specific registry keys."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 New-PSDrive  HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Uninstalling bloatware, please wait."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Uninstalling bloatware, please wait."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 DebloatAll
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Bloatware removed."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Bloatware removed."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Removing specific registry keys."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Removing specific registry keys."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Remove-Keys
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Leftover bloatware registry keys removed."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Leftover bloatware registry keys removed."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Checking to see if any Whitelisted Apps were removed, and if so re-adding them."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Checking to see if any Whitelisted Apps were removed, and if so re-adding them."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 FixWhitelistedApps
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Disabling Cortana from search, disabling feedback to Microsoft, and disabling scheduled tasks that are considered to be telemetry or unnecessary."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Disabling Cortana from search, disabling feedback to Microsoft, and disabling scheduled tasks that are considered to be telemetry or unnecessary."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Protect-Privacy
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 DisableCortana
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Cortana disabled and removed from search, feedback to Microsoft has been disabled, and scheduled tasks are disabled."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Cortana disabled and removed from search, feedback to Microsoft has been disabled, and scheduled tasks are disabled."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Stopping and disabling Diagnostics Tracking Service"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Stopping and disabling Diagnostics Tracking Service"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 DisableDiagTrack
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Diagnostics Tracking Service disabled"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Diagnostics Tracking Service disabled"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Disabling WAP push service"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Disabling WAP push service"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 DisableWAPPush
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Re-enabling DMWAppushservice if it was disabled"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Re-enabling DMWAppushservice if it was disabled"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 CheckDMWService
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Removing 3D Objects from the 'My Computer' submenu in explorer"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Removing 3D Objects from the 'My Computer' submenu in explorer"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Remove3dObjects
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             No {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 #Creates a "drive" to access the HKCR (HKEY_CLASSES_ROOT)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Creating PSDrive 'HKCR' (HKEY_CLASSES_ROOT). This will be used for the duration of the script as it is necessary for the removal and 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 removal and modification of specific registry keys."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 New-PSDrive  HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Uninstalling bloatware, please wait."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Uninstalling bloatware, please wait."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 DebloatBlacklist
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Bloatware removed."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Bloatware removed."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Removing specific registry keys."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Removing specific registry keys."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Remove-Keys
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Leftover bloatware registry keys removed."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Leftover bloatware registry keys removed."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Checking to see if any Whitelisted Apps were removed, and if so re-adding them."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Checking to see if any Whitelisted Apps were removed, and if so re-adding them."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 FixWhitelistedApps
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Disabling Cortana from search, disabling feedback to Microsoft, and disabling scheduled tasks that are considered to be telemetry or unnecessary."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Disabling Cortana from search, disabling feedback to Microsoft, and disabling scheduled tasks that are considered to be telemetry or unnecessary."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Protect-Privacy
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 DisableCortana
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Cortana disabled and removed from search, feedback to Microsoft has been disabled, and scheduled tasks are disabled."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Cortana disabled and removed from search, feedback to Microsoft has been disabled, and scheduled tasks are disabled."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Stopping and disabling Diagnostics Tracking Service"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Stopping and disabling Diagnostics Tracking Service"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 DisableDiagTrack
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Diagnostics Tracking Service disabled"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Diagnostics Tracking Service disabled"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Disabling WAP push service"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Disabling WAP push service"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 DisableWAPPush
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Re-enabling DMWAppushservice if it was disabled"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Re-enabling DMWAppushservice if it was disabled"
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 CheckDMWService
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -773,10 +750,10 @@ Switch ($Prompt1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Switch ($Prompt3) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Yes {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Stop-EdgePDF
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Edge will no longer take over as the default PDF viewer."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Edge will no longer take over as the default PDF viewer."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             No {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "You chose not to stop Edge from taking over as the default PDF viewer."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "You chose not to stop Edge from taking over as the default PDF viewer."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         #Prompt asking to delete OneDrive
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -784,10 +761,10 @@ Switch ($Prompt1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Switch ($Prompt4) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Yes {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 UninstallOneDrive
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "OneDrive is now removed from the computer."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "OneDrive is now removed from the computer."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             No {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "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
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -795,20 +772,20 @@ Switch ($Prompt1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Switch ($Prompt5) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Yes {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 UnpinStart
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				Write-Output "Start Apps unpined."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				Write-Host "Start Apps unpined."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             No {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				Write-Output "You have chosen to skip removing OneDrive from your machine."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+				Write-Host "You have chosen to skip removing OneDrive from your machine."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $Prompt6 = [Windows.MessageBox]::Show($InstallNET, "Install .Net", $Button, $Warn)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Switch ($Prompt6) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Yes {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Initializing the installation of .NET 3.5..."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Initializing the installation of .NET 3.5..."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Try {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 DISM /Online /Enable-Feature /FeatureName:NetFx3 /All
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output ".NET 3.5 has been successfully installed!" }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host ".NET 3.5 has been successfully installed!" }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Catch {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     $_
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 }
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -818,28 +795,28 @@ Switch ($Prompt1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $Prompt7 = [Windows.MessageBox]::Show($Reboot, "Reboot", $Button, $Warn) 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Switch ($Prompt7) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Yes {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Unloading the HKCR drive..."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Unloading the HKCR drive..."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Remove-PSDrive HKCR 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Stop-Transcript
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Initiating reboot."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Initiating reboot."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Start-Sleep 2
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Restart-Computer
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             No {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Unloading the HKCR drive..."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Unloading the HKCR drive..."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Remove-PSDrive HKCR 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Stop-Transcript
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Script has finished. Exiting."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Script has finished. Exiting."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Start-Sleep 2
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Exit
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     No {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Write-Output "Reverting changes..."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Write-Output "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 "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."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         New-PSDrive  HKCR -PSProvider Registry -Root HKEY_CLASSES_ROOT
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Revert-Changes
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         #Prompt asking to revert edge changes as well
 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -847,29 +824,29 @@ Switch ($Prompt1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Switch ($Prompt6) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Yes {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Enable-EdgePDF
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Edge will no longer be disabled from being used as the default Edge PDF viewer."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Edge will no longer be disabled from being used as the default Edge PDF viewer."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             No {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-               Write-Output "You have chosen to keep the setting that disallows Edge to be the default PDF viewer."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               Write-Host "You have chosen to keep the setting that disallows Edge to be the default PDF viewer."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         #Prompt asking if you'd like to reboot your machine
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $Prompt7 = [Windows.MessageBox]::Show($Reboot, "Reboot", $Button, $Warn)
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         Switch ($Prompt7) {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             Yes {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Unloading the HKCR drive..."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Unloading the HKCR drive..."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Remove-PSDrive HKCR 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Initiating reboot."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Initiating reboot."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Stop-Transcript
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Start-Sleep 2
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Restart-Computer
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             No {
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Unloading the HKCR drive..."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Unloading the HKCR drive..."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Remove-PSDrive HKCR 
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Start-Sleep 1
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Write-Output "Script has finished. Exiting."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                Write-Host "Script has finished. Exiting."
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Stop-Transcript
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Start-Sleep 2
 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 Exit
 
			 |