diff --git a/plugins/ChrisTitusApp.ps1 b/plugins/ChrisTitusApp.ps1 new file mode 100644 index 0000000..cbf43d9 --- /dev/null +++ b/plugins/ChrisTitusApp.ps1 @@ -0,0 +1 @@ +irm christitus.com/win | iex \ No newline at end of file diff --git a/plugins/Clear Icon Cache.json b/plugins/Clear Icon Cache.json new file mode 100644 index 0000000..f77a22e --- /dev/null +++ b/plugins/Clear Icon Cache.json @@ -0,0 +1,16 @@ +{ + "PlugID": "Clear Icon Cache", + "PlugInfo": "This feature clears the icon cache in Windows to resolve issues with icons displaying incorrectly.", + "PlugCheck": [], + "PlugCategory": "Tweaks (Plugins)", + "PlugDo": [ + "ie4uinit.exe -show", + "taskkill /IM explorer.exe /F", + "DEL /A /Q \"%localappdata%\\IconCache.db\"", + "DEL /A /F /Q \"%localappdata%\\Microsoft\\Windows\\Explorer\\iconcache*\"", + "Start explorer.exe" + ], + "PlugUndo": [ + "powershell -Command \"Write-Output 'There is no undo operation for clearing the icon cache.'\"" + ] +} diff --git a/plugins/Create Restore Point.ps1 b/plugins/Create Restore Point.ps1 new file mode 100644 index 0000000..35181da --- /dev/null +++ b/plugins/Create Restore Point.ps1 @@ -0,0 +1,37 @@ +# Run as Admin +if (-not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) +{ + Write-Warning "You need to run this script as an Administrator!" + exit +} + +# Load Windows Forms assembly for MessageBox +Add-Type -AssemblyName System.Windows.Forms + +# Define the restore point description and type +$description = "xd-AntiSpy Restore Point" +$restorePointType = 12 # MODIFY_SETTINGS = 12 + +# Function to create restore point with progress reporting +function Create-RestorePoint { + Write-Host "Starting to create restore point..." -ForegroundColor Yellow + + # Simulate progress + for ($i = 0; $i -le 100; $i += 10) { + Write-Progress -Activity "Creating Restore Point" -Status "$i% Complete" -PercentComplete $i + Start-Sleep -Milliseconds 300 # Simulate some work being done + } + + # WMI query to create the restore point + $restorePoint = Get-WmiObject -List Win32_SystemRestore | ForEach-Object { + $_.CreateRestorePoint($description, $restorePointType, 100) + } + + Write-Host "Restore point created successfully." -ForegroundColor Green + + # Show completion message + [System.Windows.Forms.MessageBox]::Show("Restore point has been created successfully!", "Completion", [System.Windows.Forms.MessageBoxButtons]::OK, [System.Windows.Forms.MessageBoxIcon]::Information) +} + +# Execute the restore point creation +Create-RestorePoint diff --git a/plugins/File Extensions Visibility.json b/plugins/File Extensions Visibility.json new file mode 100644 index 0000000..15f2779 --- /dev/null +++ b/plugins/File Extensions Visibility.json @@ -0,0 +1,20 @@ +{ + "PlugID": "Hide Hidden File Extensions", + "PlugInfo": "This feature shows or hides hidden file extensions in Windows Explorer.", + "PlugCategory": "Tweaks (Plugins)", + "PlugCheck": [ + "reg query HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced /v HideFileExt" + ], + "PlugDo": [ + "reg add HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced /v HideFileExt /t REG_DWORD /d 1 /f", + "reg add HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced /v ShowSuperHidden /t REG_DWORD /d 0 /f", + "taskkill /f /im explorer.exe", + "start explorer.exe" + ], + "PlugUndo": [ + "reg add HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced /v HideFileExt /t REG_DWORD /d 0 /f", + "reg add HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced /v ShowSuperHidden /t REG_DWORD /d 1 /f", + "taskkill /f /im explorer.exe", + "start explorer.exe" + ] +} diff --git a/plugins/Remove default apps.ps1 b/plugins/Remove default apps.ps1 new file mode 100644 index 0000000..98a1ce4 --- /dev/null +++ b/plugins/Remove default apps.ps1 @@ -0,0 +1,172 @@ +# Description: +# This script removes unwanted Apps that come with Windows. If you do not want +# to remove certain Apps comment out the corresponding lines below. + +Import-Module -DisableNameChecking $PSScriptRoot\..\lib\take-own.psm1 +Import-Module -DisableNameChecking $PSScriptRoot\..\lib\New-FolderForced.psm1 + +Write-Output "Elevating privileges for this process" +do {} until (Elevate-Privileges SeTakeOwnershipPrivilege) + +Write-Output "Uninstalling default apps" +$apps = @( + # default Windows 10 apps + "Microsoft.549981C3F5F10" #Cortana + "Microsoft.3DBuilder" + "Microsoft.Appconnector" + "Microsoft.BingFinance" + "Microsoft.BingNews" + "Microsoft.BingSports" + "Microsoft.BingTranslator" + "Microsoft.BingWeather" + #"Microsoft.FreshPaint" + "Microsoft.GamingServices" + "Microsoft.Microsoft3DViewer" + "Microsoft.MicrosoftOfficeHub" + "Microsoft.MicrosoftPowerBIForWindows" + "Microsoft.MicrosoftSolitaireCollection" + #"Microsoft.MicrosoftStickyNotes" + "Microsoft.MinecraftUWP" + "Microsoft.NetworkSpeedTest" + "Microsoft.Office.OneNote" + "Microsoft.People" + "Microsoft.Print3D" + "Microsoft.SkypeApp" + "Microsoft.Wallet" + #"Microsoft.Windows.Photos" + "Microsoft.WindowsAlarms" + #"Microsoft.WindowsCalculator" + "Microsoft.WindowsCamera" + "microsoft.windowscommunicationsapps" + "Microsoft.WindowsMaps" + "Microsoft.WindowsPhone" + "Microsoft.WindowsSoundRecorder" + #"Microsoft.WindowsStore" # can't be re-installed + "Microsoft.Xbox.TCUI" + "Microsoft.XboxApp" + "Microsoft.XboxGameOverlay" + "Microsoft.XboxGamingOverlay" + "Microsoft.XboxSpeechToTextOverlay" + "Microsoft.YourPhone" + "Microsoft.ZuneMusic" + "Microsoft.ZuneVideo" + "Microsoft.SkypeApp" + "Clipchamp.Clipchamp" + + # Threshold 2 apps + "Microsoft.CommsPhone" + "Microsoft.ConnectivityStore" + "Microsoft.GetHelp" + "Microsoft.Getstarted" + "Microsoft.Messaging" + "Microsoft.Office.Sway" + "Microsoft.OneConnect" + "Microsoft.WindowsFeedbackHub" + + # Creators Update apps + "Microsoft.Microsoft3DViewer" + #"Microsoft.MSPaint" + + #Redstone apps + "Microsoft.BingFoodAndDrink" + "Microsoft.BingHealthAndFitness" + "Microsoft.BingTravel" + "Microsoft.WindowsReadingList" + + # Redstone 5 apps + "Microsoft.MixedReality.Portal" + "Microsoft.ScreenSketch" + "Microsoft.XboxGamingOverlay" + + # non-Microsoft + "2FE3CB00.PicsArt-PhotoStudio" + "46928bounde.EclipseManager" + "4DF9E0F8.Netflix" + "613EBCEA.PolarrPhotoEditorAcademicEdition" + "6Wunderkinder.Wunderlist" + "7EE7776C.LinkedInforWindows" + "89006A2E.AutodeskSketchBook" + "9E2F88E3.Twitter" + "A278AB0D.DisneyMagicKingdoms" + "A278AB0D.MarchofEmpires" + "ActiproSoftwareLLC.562882FEEB491" # next one is for the Code Writer from Actipro Software LLC + "CAF9E577.Plex" + "ClearChannelRadioDigital.iHeartRadio" + "D52A8D61.FarmVille2CountryEscape" + "D5EA27B7.Duolingo-LearnLanguagesforFree" + "DB6EA5DB.CyberLinkMediaSuiteEssentials" + "DolbyLaboratories.DolbyAccess" + "DolbyLaboratories.DolbyAccess" + "Drawboard.DrawboardPDF" + "Facebook.Facebook" + "Fitbit.FitbitCoach" + "Flipboard.Flipboard" + "GAMELOFTSA.Asphalt8Airborne" + "KeeperSecurityInc.Keeper" + "NORDCURRENT.COOKINGFEVER" + "PandoraMediaInc.29680B314EFC2" + "Playtika.CaesarsSlotsFreeCasino" + "ShazamEntertainmentLtd.Shazam" + "SlingTVLLC.SlingTV" + "SpotifyAB.SpotifyMusic" + "ThumbmunkeysLtd.PhototasticCollage" + "TuneIn.TuneInRadio" + "WinZipComputing.WinZipUniversal" + "XINGAG.XING" + "flaregamesGmbH.RoyalRevolt2" + "king.com.*" + "king.com.BubbleWitch3Saga" + "king.com.CandyCrushSaga" + "king.com.CandyCrushSodaSaga" + "BytedancePte.Ltd.TikTok" + "Facebook.InstagramBeta" + + # apps which cannot be removed using Remove-AppxPackage + #"Microsoft.BioEnrollment" + #"Microsoft.MicrosoftEdge" + #"Microsoft.Windows.Cortana" + #"Microsoft.WindowsFeedback" + #"Microsoft.XboxGameCallableUI" + #"Microsoft.XboxIdentityProvider" + #"Windows.ContactSupport" +) + +$appxprovisionedpackage = Get-AppxProvisionedPackage -Online + +foreach ($app in $apps) { + Write-Output "Trying to remove $app" + + Get-AppxPackage -Name $app -AllUsers | Remove-AppxPackage -AllUsers + + ($appxprovisionedpackage).Where( {$_.DisplayName -EQ $app}) | + Remove-AppxProvisionedPackage -Online +} Write-Host "Clippy has completed the process and removed all possible apps." + +# Prevents Apps from re-installing +$cdm = @( + "ContentDeliveryAllowed" + "FeatureManagementEnabled" + "OemPreInstalledAppsEnabled" + "PreInstalledAppsEnabled" + "PreInstalledAppsEverEnabled" + "SilentInstalledAppsEnabled" + "SubscribedContent-314559Enabled" + "SubscribedContent-338387Enabled" + "SubscribedContent-338388Enabled" + "SubscribedContent-338389Enabled" + "SubscribedContent-338393Enabled" + "SubscribedContentEnabled" + "SystemPaneSuggestionsEnabled" +) + +New-FolderForced -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" +foreach ($key in $cdm) { + Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\ContentDeliveryManager" $key 0 +} + +New-FolderForced -Path "HKLM:\SOFTWARE\Policies\Microsoft\WindowsStore" +Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\WindowsStore" "AutoDownload" 2 + +# Prevents "Suggested Applications" returning +New-FolderForced -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" +Set-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\CloudContent" "DisableWindowsConsumerFeatures" 1 diff --git a/plugins/Resore all built-in apps.ps1 b/plugins/Resore all built-in apps.ps1 new file mode 100644 index 0000000..d011e14 --- /dev/null +++ b/plugins/Resore all built-in apps.ps1 @@ -0,0 +1,31 @@ +# Get all installed Windows apps for all users +$allApps = Get-AppxPackage -AllUsers + +# Counter for tracking progress +$totalApps = $allApps.Count +$currentAppIndex = 1 +$reinstalledCount = 0 + +# Loop through each app and reinstall +foreach ($app in $allApps) { + # Display current status + Write-Host "[$currentAppIndex / $totalApps] Reinstalling $($app.Name)..." -ForegroundColor Yellow + + # Try to reinstall the app + try { + Add-AppxPackage -Register "$($app.InstallLocation)\appxmanifest.xml" -DisableDevelopmentMode -ErrorAction Stop + Write-Host "[$currentAppIndex / $totalApps] $($app.Name) reinstalled successfully." -ForegroundColor Green + $reinstalledCount++ + } catch { + Write-Host "[$currentAppIndex / $totalApps] Error occurred while reinstalling $($app.Name): $_" -ForegroundColor Red + } + + # Increment the counter + $currentAppIndex++ +} + +# Display final status +if ($reinstalledCount -eq $totalApps) { + Write-Host "All apps reinstalled successfully." -ForegroundColor Green + Write-Host "Winpilot and Clippy have reinstalled everything possible." -ForegroundColor Cyan +} diff --git a/plugins/Restart Explorer.ps1 b/plugins/Restart Explorer.ps1 new file mode 100644 index 0000000..ab3072e --- /dev/null +++ b/plugins/Restart Explorer.ps1 @@ -0,0 +1,18 @@ +# Function to show a message box +function Show-MessageBox { + param ( + [string]$message, + [string]$title = "Information" + ) + Add-Type -AssemblyName PresentationFramework + [System.Windows.MessageBox]::Show($message, $title) +} + +# Stop Windows Explorer +Stop-Process -Name explorer -Force + +# Start Windows Explorer +Start-Process explorer + +# Show message box +Show-MessageBox -message "Windows Explorer has been restarted successfully." -title "xd-AntiSpy" diff --git a/plugins/Uninstall OneDrive.ps1 b/plugins/Uninstall OneDrive.ps1 new file mode 100644 index 0000000..a21395d --- /dev/null +++ b/plugins/Uninstall OneDrive.ps1 @@ -0,0 +1,60 @@ +Import-Module -DisableNameChecking $PSScriptRoot\..\lib\force-mkdir.psm1 +Import-Module -DisableNameChecking $PSScriptRoot\..\lib\take-own.psm1 + +Write-Output "Kill OneDrive process" +taskkill.exe /F /IM "OneDrive.exe" +taskkill.exe /F /IM "explorer.exe" + +Write-Output "Remove OneDrive" +if (Test-Path "$env:systemroot\System32\OneDriveSetup.exe") { + & "$env:systemroot\System32\OneDriveSetup.exe" /uninstall +} +if (Test-Path "$env:systemroot\SysWOW64\OneDriveSetup.exe") { + & "$env:systemroot\SysWOW64\OneDriveSetup.exe" /uninstall +} + +Write-Output "Removing OneDrive leftovers" +Remove-Item -Recurse -Force -ErrorAction SilentlyContinue "$env:localappdata\Microsoft\OneDrive" +Remove-Item -Recurse -Force -ErrorAction SilentlyContinue "$env:programdata\Microsoft OneDrive" +Remove-Item -Recurse -Force -ErrorAction SilentlyContinue "$env:systemdrive\OneDriveTemp" +# check if directory is empty before removing: +If ((Get-ChildItem "$env:userprofile\OneDrive" -Recurse | Measure-Object).Count -eq 0) { + Remove-Item -Recurse -Force -ErrorAction SilentlyContinue "$env:userprofile\OneDrive" +} + +Write-Output "Disable OneDrive via Group Policies" +force-mkdir "HKLM:\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\OneDrive" +Set-ItemProperty "HKLM:\SOFTWARE\Wow6432Node\Policies\Microsoft\Windows\OneDrive" "DisableFileSyncNGSC" 1 + +Write-Output "Remove Onedrive from explorer sidebar" +New-PSDrive -PSProvider "Registry" -Root "HKEY_CLASSES_ROOT" -Name "HKCR" +mkdir -Force "HKCR:\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" +Set-ItemProperty "HKCR:\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" "System.IsPinnedToNameSpaceTree" 0 +mkdir -Force "HKCR:\Wow6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" +Set-ItemProperty "HKCR:\Wow6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" "System.IsPinnedToNameSpaceTree" 0 +Remove-PSDrive "HKCR" + +# Thank you Matthew Israelsson +Write-Output "Removing run hook for new users" +reg load "hku\Default" "C:\Users\Default\NTUSER.DAT" +reg delete "HKEY_USERS\Default\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" /v "OneDriveSetup" /f +reg unload "hku\Default" + +Write-Output "Removing startmenu entry" +Remove-Item -Force -ErrorAction SilentlyContinue "$env:userprofile\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\OneDrive.lnk" + +Write-Output "Removing scheduled task" +Get-ScheduledTask -TaskPath '\' -TaskName 'OneDrive*' -ea SilentlyContinue | Unregister-ScheduledTask -Confirm:$false + +Write-Output "Restarting explorer" +Start-Process "explorer.exe" + +Write-Output "Waiting for explorer to complete loading" +Start-Sleep 10 + +Write-Output "Removing additional OneDrive leftovers" +foreach ($item in (Get-ChildItem "$env:WinDir\WinSxS\*onedrive*")) { + Takeown-Folder $item.FullName + Remove-Item -Recurse -Force $item.FullName +} +Write-Output "xd-AntiSpy can confirm the uninstallation of the OneDrive app." diff --git a/plugins/plugins_manifest.json b/plugins/plugins_manifest.json new file mode 100644 index 0000000..63a1208 --- /dev/null +++ b/plugins/plugins_manifest.json @@ -0,0 +1,10 @@ +{ + "ChrisTitusApp.ps1": "Chris Titus Tech's Windows Utility - Install Programs, Tweaks, Fixes, and Updates. Dev: https://github.com/ChrisTitusTech/winutil", + "Restart Explorer.ps1": "Restarts the Windows Explorer process to refresh the desktop and taskbar.", + "Create Restore Point.ps1": "Creates a system restore point to save your current system state.", + "Uninstall OneDrive.ps1": "Completely removes OneDrive from your Windows system.", + "Resore all built-in apps.ps1": "This will restore all preinstalled inbox apps of Microsoft.", + "Remove default apps.ps1": "This script will remove all preinstalled inbox apps using PowerShell. For a better alternative, consider using the PluginDebloater.dll", + "File Extensions Visibility.json": "This feature shows or hides hidden file extensions in Windows Explorer.", + "Clear Icon Cache.json": "This feature clears the icon cache in Windows to resolve issues with icons displaying incorrectly." +}