diff --git a/winutil.ps1 b/winutil.ps1 index a5b0a24f..7c44fee8 100644 --- a/winutil.ps1 +++ b/winutil.ps1 @@ -8459,267 +8459,6 @@ $sync.configs.tweaks = '{ } ] }, - "WPFTweaksDebloatAdobe": { - "Content": "Debloat Adobe", - "Description": "Manages Adobe Services, Adobe Desktop Service, and Acrobat Updates", - "category": "Essential Tweaks", - "panel": "1", - "Order": "a009_", - "InvokeScript": [ - " - function CCStopper { - $path = \"C:\\Program Files (x86)\\Common Files\\Adobe\\Adobe Desktop Common\\ADS\\Adobe Desktop Service.exe\" - - # Test if the path exists before proceeding - if (Test-Path $path) { - Takeown /f $path - $acl = Get-Acl $path - $acl.SetOwner([System.Security.Principal.NTAccount]\"Administrators\") - $acl | Set-Acl $path - - Rename-Item -Path $path -NewName \"Adobe Desktop Service.exe.old\" -Force - } else { - Write-Host \"Adobe Desktop Service is not in the default location.\" - } - } - - - function AcrobatUpdates { - # Editing Acrobat Updates. The last folder before the key is dynamic, therefore using a script. - # Possible Values for the edited key: - # 0 = Do not download or install updates automatically - # 2 = Automatically download updates but let the user choose when to install them - # 3 = Automatically download and install updates (default value) - # 4 = Notify the user when an update is available but don''t download or install it automatically - # = It notifies the user using Windows Notifications. It runs on startup without having to have a Service/Acrobat/Reader running, therefore 0 is the next best thing. - - $rootPath = \"HKLM:\\SOFTWARE\\WOW6432Node\\Adobe\\Adobe ARM\\Legacy\\Acrobat\" - - # Get all subkeys under the specified root path - $subKeys = Get-ChildItem -Path $rootPath | Where-Object { $_.PSChildName -like \"{*}\" } - - # Loop through each subkey - foreach ($subKey in $subKeys) { - # Get the full registry path - $fullPath = Join-Path -Path $rootPath -ChildPath $subKey.PSChildName - try { - Set-ItemProperty -Path $fullPath -Name Mode -Value 0 - Write-Host \"Acrobat Updates have been disabled.\" - } catch { - Write-Host \"Registry Key for changing Acrobat Updates does not exist in $fullPath\" - } - } - } - - CCStopper - AcrobatUpdates - " - ], - "UndoScript": [ - " - function RestoreCCService { - $originalPath = \"C:\\Program Files (x86)\\Common Files\\Adobe\\Adobe Desktop Common\\ADS\\Adobe Desktop Service.exe.old\" - $newPath = \"C:\\Program Files (x86)\\Common Files\\Adobe\\Adobe Desktop Common\\ADS\\Adobe Desktop Service.exe\" - - if (Test-Path -Path $originalPath) { - Rename-Item -Path $originalPath -NewName \"Adobe Desktop Service.exe\" -Force - Write-Host \"Adobe Desktop Service has been restored.\" - } else { - Write-Host \"Backup file does not exist. No changes were made.\" - } - } - - function AcrobatUpdates { - # Default Value: - # 3 = Automatically download and install updates - - $rootPath = \"HKLM:\\SOFTWARE\\WOW6432Node\\Adobe\\Adobe ARM\\Legacy\\Acrobat\" - - # Get all subkeys under the specified root path - $subKeys = Get-ChildItem -Path $rootPath | Where-Object { $_.PSChildName -like \"{*}\" } - - # Loop through each subkey - foreach ($subKey in $subKeys) { - # Get the full registry path - $fullPath = Join-Path -Path $rootPath -ChildPath $subKey.PSChildName - try { - Set-ItemProperty -Path $fullPath -Name Mode -Value 3 - } catch { - Write-Host \"Registry Key for changing Acrobat Updates does not exist in $fullPath\" - } - } - } - - RestoreCCService - AcrobatUpdates - " - ], - "service": [ - { - "Name": "AGSService", - "StartupType": "Disabled", - "OriginalType": "Automatic" - }, - { - "Name": "AGMService", - "StartupType": "Disabled", - "OriginalType": "Automatic" - }, - { - "Name": "AdobeUpdateService", - "StartupType": "Manual", - "OriginalType": "Automatic" - }, - { - "Name": "Adobe Acrobat Update", - "StartupType": "Manual", - "OriginalType": "Automatic" - }, - { - "Name": "Adobe Genuine Monitor Service", - "StartupType": "Disabled", - "OriginalType": "Automatic" - }, - { - "Name": "AdobeARMservice", - "StartupType": "Manual", - "OriginalType": "Automatic" - }, - { - "Name": "Adobe Licensing Console", - "StartupType": "Manual", - "OriginalType": "Automatic" - }, - { - "Name": "CCXProcess", - "StartupType": "Manual", - "OriginalType": "Automatic" - }, - { - "Name": "AdobeIPCBroker", - "StartupType": "Manual", - "OriginalType": "Automatic" - }, - { - "Name": "CoreSync", - "StartupType": "Manual", - "OriginalType": "Automatic" - } - ] - }, - "WPFTweaksBlockAdobeNet": { - "Content": "Block Adobe Networking", - "Description": "Reduce user interruptions by selectively blocking connections to Adobe's activation and telemetry servers. ", - "category": "Essential Tweaks", - "panel": "1", - "Order": "a010_", - "InvokeScript": [ - " - # Define the URL of the remote HOSTS file and the local paths - $remoteHostsUrl = \"https://raw.githubusercontent.com/Ruddernation-Designs/Adobe-URL-Block-List/master/hosts\" - $localHostsPath = \"C:\\Windows\\System32\\drivers\\etc\\hosts\" - $tempHostsPath = \"C:\\Windows\\System32\\drivers\\etc\\temp_hosts\" - - # Download the remote HOSTS file to a temporary location - try { - Invoke-WebRequest -Uri $remoteHostsUrl -OutFile $tempHostsPath - Write-Output \"Downloaded the remote HOSTS file to a temporary location.\" - } - catch { - Write-Error \"Failed to download the HOSTS file. Error: $_\" - } - - # Check if the AdobeNetBlock has already been started - try { - $localHostsContent = Get-Content $localHostsPath -ErrorAction Stop - - # Check if AdobeNetBlock markers exist - $blockStartExists = $localHostsContent -like \"*#AdobeNetBlock-start*\" - if ($blockStartExists) { - Write-Output \"AdobeNetBlock-start already exists. Skipping addition of new block.\" - } else { - # Load the new block from the downloaded file - $newBlockContent = Get-Content $tempHostsPath -ErrorAction Stop - $newBlockContent = $newBlockContent | Where-Object { $_ -notmatch \"^\\s*#\" -and $_ -ne \"\" } # Exclude empty lines and comments - $newBlockHeader = \"#AdobeNetBlock-start\" - $newBlockFooter = \"#AdobeNetBlock-end\" - - # Combine the contents, ensuring new block is properly formatted - $combinedContent = $localHostsContent + $newBlockHeader, $newBlockContent, $newBlockFooter | Out-String - - # Write the combined content back to the original HOSTS file - $combinedContent | Set-Content $localHostsPath -Encoding ASCII - Write-Output \"Successfully added the AdobeNetBlock.\" - } - } - catch { - Write-Error \"Error during processing: $_\" - } - - # Clean up temporary file - Remove-Item $tempHostsPath -ErrorAction Ignore - - # Flush the DNS resolver cache - try { - Invoke-Expression \"ipconfig /flushdns\" - Write-Output \"DNS cache flushed successfully.\" - } - catch { - Write-Error \"Failed to flush DNS cache. Error: $_\" - } - " - ], - "UndoScript": [ - " - # Define the local path of the HOSTS file - $localHostsPath = \"C:\\Windows\\System32\\drivers\\etc\\hosts\" - - # Load the content of the HOSTS file - try { - $hostsContent = Get-Content $localHostsPath -ErrorAction Stop - } - catch { - Write-Error \"Failed to load the HOSTS file. Error: $_\" - return - } - - # Initialize flags and buffer for new content - $recording = $true - $newContent = @() - - # Iterate over each line of the HOSTS file - foreach ($line in $hostsContent) { - if ($line -match \"#AdobeNetBlock-start\") { - $recording = $false - } - if ($recording) { - $newContent += $line - } - if ($line -match \"#AdobeNetBlock-end\") { - $recording = $true - } - } - - # Write the filtered content back to the HOSTS file - try { - $newContent | Set-Content $localHostsPath -Encoding ASCII - Write-Output \"Successfully removed the AdobeNetBlock section from the HOSTS file.\" - } - catch { - Write-Error \"Failed to write back to the HOSTS file. Error: $_\" - } - - # Flush the DNS resolver cache - try { - Invoke-Expression \"ipconfig /flushdns\" - Write-Output \"DNS cache flushed successfully.\" - } - catch { - Write-Error \"Failed to flush DNS cache. Error: $_\" - } - " - ] - }, "WPFTweaksLoc": { "Content": "Disable Location Tracking", "Description": "Disables Location Tracking...DUH!", @@ -10587,7 +10326,7 @@ $sync.configs.tweaks = '{ "Description": "Essential for computers that are dual booting. Fixes the time sync with Linux Systems.", "category": "z__Advanced Tweaks - CAUTION", "panel": "1", - "Order": "a022_", + "Order": "a027_", "registry": [ { "Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation", @@ -10603,7 +10342,7 @@ $sync.configs.tweaks = '{ "Description": "Sets the system preferences to performance. You can do this manually with sysdm.cpl as well.", "category": "z__Advanced Tweaks - CAUTION", "panel": "1", - "Order": "a021_", + "Order": "a027_", "registry": [ { "Path": "HKCU:\\Control Panel\\Desktop", @@ -10709,7 +10448,7 @@ $sync.configs.tweaks = '{ "Description": "USE WITH CAUTION!!!!! This will remove ALL Microsoft store apps other than the essentials to make winget work. Games installed by MS Store ARE INCLUDED!", "category": "z__Advanced Tweaks - CAUTION", "panel": "1", - "Order": "a025_", + "Order": "a028_", "appx": [ "Microsoft.Microsoft3DViewer", "Microsoft.AppConnector", @@ -10928,7 +10667,7 @@ $sync.configs.tweaks = '{ "Description": "Removes MS Edge when it gets reinstalled by updates.", "category": "z__Advanced Tweaks - CAUTION", "panel": "1", - "Order": "a026_", + "Order": "a029_", "InvokeScript": [ " #:: Standalone script by AveYo Source: https://raw.githubusercontent.com/AveYo/fox/main/Edge_Removal.bat @@ -10969,7 +10708,7 @@ $sync.configs.tweaks = '{ "Description": "Copies OneDrive files to Default Home Folders and Uninstalls it.", "category": "z__Advanced Tweaks - CAUTION", "panel": "1", - "Order": "a027_", + "Order": "a030_", "InvokeScript": [ " @@ -11052,7 +10791,7 @@ $sync.configs.tweaks = '{ "Description": "Disables all Notifications INCLUDING Calendar", "category": "z__Advanced Tweaks - CAUTION", "panel": "1", - "Order": "a024_", + "Order": "a026_", "registry": [ { "Path": "HKCU:\\Software\\Policies\\Microsoft\\Windows\\Explorer", @@ -11070,12 +10809,273 @@ $sync.configs.tweaks = '{ } ] }, + "WPFTweaksDebloatAdobe": { + "Content": "Adobe Debloat", + "Description": "Manages Adobe Services, Adobe Desktop Service, and Acrobat Updates", + "category": "z__Advanced Tweaks - CAUTION", + "panel": "1", + "Order": "a021_", + "InvokeScript": [ + " + function CCStopper { + $path = \"C:\\Program Files (x86)\\Common Files\\Adobe\\Adobe Desktop Common\\ADS\\Adobe Desktop Service.exe\" + + # Test if the path exists before proceeding + if (Test-Path $path) { + Takeown /f $path + $acl = Get-Acl $path + $acl.SetOwner([System.Security.Principal.NTAccount]\"Administrators\") + $acl | Set-Acl $path + + Rename-Item -Path $path -NewName \"Adobe Desktop Service.exe.old\" -Force + } else { + Write-Host \"Adobe Desktop Service is not in the default location.\" + } + } + + + function AcrobatUpdates { + # Editing Acrobat Updates. The last folder before the key is dynamic, therefore using a script. + # Possible Values for the edited key: + # 0 = Do not download or install updates automatically + # 2 = Automatically download updates but let the user choose when to install them + # 3 = Automatically download and install updates (default value) + # 4 = Notify the user when an update is available but don''t download or install it automatically + # = It notifies the user using Windows Notifications. It runs on startup without having to have a Service/Acrobat/Reader running, therefore 0 is the next best thing. + + $rootPath = \"HKLM:\\SOFTWARE\\WOW6432Node\\Adobe\\Adobe ARM\\Legacy\\Acrobat\" + + # Get all subkeys under the specified root path + $subKeys = Get-ChildItem -Path $rootPath | Where-Object { $_.PSChildName -like \"{*}\" } + + # Loop through each subkey + foreach ($subKey in $subKeys) { + # Get the full registry path + $fullPath = Join-Path -Path $rootPath -ChildPath $subKey.PSChildName + try { + Set-ItemProperty -Path $fullPath -Name Mode -Value 0 + Write-Host \"Acrobat Updates have been disabled.\" + } catch { + Write-Host \"Registry Key for changing Acrobat Updates does not exist in $fullPath\" + } + } + } + + CCStopper + AcrobatUpdates + " + ], + "UndoScript": [ + " + function RestoreCCService { + $originalPath = \"C:\\Program Files (x86)\\Common Files\\Adobe\\Adobe Desktop Common\\ADS\\Adobe Desktop Service.exe.old\" + $newPath = \"C:\\Program Files (x86)\\Common Files\\Adobe\\Adobe Desktop Common\\ADS\\Adobe Desktop Service.exe\" + + if (Test-Path -Path $originalPath) { + Rename-Item -Path $originalPath -NewName \"Adobe Desktop Service.exe\" -Force + Write-Host \"Adobe Desktop Service has been restored.\" + } else { + Write-Host \"Backup file does not exist. No changes were made.\" + } + } + + function AcrobatUpdates { + # Default Value: + # 3 = Automatically download and install updates + + $rootPath = \"HKLM:\\SOFTWARE\\WOW6432Node\\Adobe\\Adobe ARM\\Legacy\\Acrobat\" + + # Get all subkeys under the specified root path + $subKeys = Get-ChildItem -Path $rootPath | Where-Object { $_.PSChildName -like \"{*}\" } + + # Loop through each subkey + foreach ($subKey in $subKeys) { + # Get the full registry path + $fullPath = Join-Path -Path $rootPath -ChildPath $subKey.PSChildName + try { + Set-ItemProperty -Path $fullPath -Name Mode -Value 3 + } catch { + Write-Host \"Registry Key for changing Acrobat Updates does not exist in $fullPath\" + } + } + } + + RestoreCCService + AcrobatUpdates + " + ], + "service": [ + { + "Name": "AGSService", + "StartupType": "Disabled", + "OriginalType": "Automatic" + }, + { + "Name": "AGMService", + "StartupType": "Disabled", + "OriginalType": "Automatic" + }, + { + "Name": "AdobeUpdateService", + "StartupType": "Manual", + "OriginalType": "Automatic" + }, + { + "Name": "Adobe Acrobat Update", + "StartupType": "Manual", + "OriginalType": "Automatic" + }, + { + "Name": "Adobe Genuine Monitor Service", + "StartupType": "Disabled", + "OriginalType": "Automatic" + }, + { + "Name": "AdobeARMservice", + "StartupType": "Manual", + "OriginalType": "Automatic" + }, + { + "Name": "Adobe Licensing Console", + "StartupType": "Manual", + "OriginalType": "Automatic" + }, + { + "Name": "CCXProcess", + "StartupType": "Manual", + "OriginalType": "Automatic" + }, + { + "Name": "AdobeIPCBroker", + "StartupType": "Manual", + "OriginalType": "Automatic" + }, + { + "Name": "CoreSync", + "StartupType": "Manual", + "OriginalType": "Automatic" + } + ] + }, + "WPFTweaksBlockAdobeNet": { + "Content": "Adobe Network Block", + "Description": "Reduce user interruptions by selectively blocking connections to Adobe's activation and telemetry servers. ", + "category": "z__Advanced Tweaks - CAUTION", + "panel": "1", + "Order": "a021_", + "InvokeScript": [ + " + # Define the URL of the remote HOSTS file and the local paths + $remoteHostsUrl = \"https://raw.githubusercontent.com/Ruddernation-Designs/Adobe-URL-Block-List/master/hosts\" + $localHostsPath = \"C:\\Windows\\System32\\drivers\\etc\\hosts\" + $tempHostsPath = \"C:\\Windows\\System32\\drivers\\etc\\temp_hosts\" + + # Download the remote HOSTS file to a temporary location + try { + Invoke-WebRequest -Uri $remoteHostsUrl -OutFile $tempHostsPath + Write-Output \"Downloaded the remote HOSTS file to a temporary location.\" + } + catch { + Write-Error \"Failed to download the HOSTS file. Error: $_\" + } + + # Check if the AdobeNetBlock has already been started + try { + $localHostsContent = Get-Content $localHostsPath -ErrorAction Stop + + # Check if AdobeNetBlock markers exist + $blockStartExists = $localHostsContent -like \"*#AdobeNetBlock-start*\" + if ($blockStartExists) { + Write-Output \"AdobeNetBlock-start already exists. Skipping addition of new block.\" + } else { + # Load the new block from the downloaded file + $newBlockContent = Get-Content $tempHostsPath -ErrorAction Stop + $newBlockContent = $newBlockContent | Where-Object { $_ -notmatch \"^\\s*#\" -and $_ -ne \"\" } # Exclude empty lines and comments + $newBlockHeader = \"#AdobeNetBlock-start\" + $newBlockFooter = \"#AdobeNetBlock-end\" + + # Combine the contents, ensuring new block is properly formatted + $combinedContent = $localHostsContent + $newBlockHeader, $newBlockContent, $newBlockFooter | Out-String + + # Write the combined content back to the original HOSTS file + $combinedContent | Set-Content $localHostsPath -Encoding ASCII + Write-Output \"Successfully added the AdobeNetBlock.\" + } + } + catch { + Write-Error \"Error during processing: $_\" + } + + # Clean up temporary file + Remove-Item $tempHostsPath -ErrorAction Ignore + + # Flush the DNS resolver cache + try { + Invoke-Expression \"ipconfig /flushdns\" + Write-Output \"DNS cache flushed successfully.\" + } + catch { + Write-Error \"Failed to flush DNS cache. Error: $_\" + } + " + ], + "UndoScript": [ + " + # Define the local path of the HOSTS file + $localHostsPath = \"C:\\Windows\\System32\\drivers\\etc\\hosts\" + + # Load the content of the HOSTS file + try { + $hostsContent = Get-Content $localHostsPath -ErrorAction Stop + } + catch { + Write-Error \"Failed to load the HOSTS file. Error: $_\" + return + } + + # Initialize flags and buffer for new content + $recording = $true + $newContent = @() + + # Iterate over each line of the HOSTS file + foreach ($line in $hostsContent) { + if ($line -match \"#AdobeNetBlock-start\") { + $recording = $false + } + if ($recording) { + $newContent += $line + } + if ($line -match \"#AdobeNetBlock-end\") { + $recording = $true + } + } + + # Write the filtered content back to the HOSTS file + try { + $newContent | Set-Content $localHostsPath -Encoding ASCII + Write-Output \"Successfully removed the AdobeNetBlock section from the HOSTS file.\" + } + catch { + Write-Error \"Failed to write back to the HOSTS file. Error: $_\" + } + + # Flush the DNS resolver cache + try { + Invoke-Expression \"ipconfig /flushdns\" + Write-Output \"DNS cache flushed successfully.\" + } + catch { + Write-Error \"Failed to flush DNS cache. Error: $_\" + } + " + ] + }, "WPFTweaksRightClickMenu": { "Content": "Set Classic Right-Click Menu ", "Description": "Great Windows 11 tweak to bring back good context menus when right clicking things in explorer.", "category": "z__Advanced Tweaks - CAUTION", "panel": "1", - "Order": "a028_", + "Order": "a027_", "InvokeScript": [ " New-Item -Path \"HKCU:\\Software\\Classes\\CLSID\\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\" -Name \"InprocServer32\" -force -value \"\" @@ -11189,7 +11189,7 @@ $sync.configs.tweaks = '{ "Description": "Disables IPv6.", "category": "z__Advanced Tweaks - CAUTION", "panel": "1", - "Order": "a031_", + "Order": "a023_", "registry": [ { "Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Services\\Tcpip6\\Parameters", @@ -11211,7 +11211,7 @@ $sync.configs.tweaks = '{ "Description": "Disables FSO in all applications. NOTE: This will disable Color Management in Exclusive Fullscreen", "category": "z__Advanced Tweaks - CAUTION", "panel": "1", - "Order": "a032_", + "Order": "a024_", "registry": [ { "Path": "HKCU:\\System\\GameConfigStore", @@ -11227,7 +11227,7 @@ $sync.configs.tweaks = '{ "Description": "Enables IPv6.", "category": "z__Advanced Tweaks - CAUTION", "panel": "1", - "Order": "a030_", + "Order": "a023_", "registry": [ { "Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Services\\Tcpip6\\Parameters", @@ -13653,8 +13653,6 @@ $inputXML = ' - - @@ -13662,17 +13660,19 @@ $inputXML = '