winutil/docs/dev/tweaks/z--Advanced-Tweaks---CAUTION/DebloatAdobe.md
MyDrift 5e3c6ba452
[Docs 02] Auto dev-docs & more (#2481)
* Compile Winutil

* pre-Releases (#1)

* Create pre-release.yaml

* Update release.yaml

* Update pre-release.yaml

* Create release-drafter.yml

* Update release-drafter.yml

* Update pre-release.yaml

* Update pre-release.yaml

* Update pre-release.yaml

* Update pre-release.yaml

* Update pre-release.yaml

* Update pre-release.yaml

* Update pre-release.yaml

* Update pre-release.yaml

* Update pre-release.yaml

* Update release-drafter.yml

* Update pre-release.yaml

* Update release-drafter.yml

* Update pre-release.yaml

* Update release-drafter.yml

* Update release-drafter.yml

* Update pre-release.yaml

* Update pre-release.yaml

* Update release-drafter.yml

* Update release-drafter.yml

* Update release.yaml

* Update release-drafter.yml

* Update release-drafter.yml

* Update pre-release.yaml

* Compile Winutil

* fixed end task with right click

* Compile Winutil

* code generator & compile integration

* Compile Winutil

* finish

- add autogenerated table of content page named "Dev Docs", with table of content to all .md files
- added invokescript & undoscript
- generate documentation files

* oops, remove dublicates

* undo winutil.ps1

* remove prefixes

WPF
WinUtil
Toggle
$category
Features
Tweaks
Panel
Fixes

* fixes

- fix inconsistency in Featurenaming
- add "Enable" & "Disable" as prefix to remove

* fix spellin mistake

* remove unneccesary whitespaces

update info
remove unnecessary whitespaces by only adding stuff to the md if it actually exists

* rewrite prefix removal into one line definition

* added taskscheduler support

* add support for function calling

add support for functioncalling
- replace code formatting for invoke & undo script from json to powershell

* content instead of displayname

* add last modified date

* contributing + docs generator

- moved contribute.md to root CONTRIBUTING.md
- referenced CONTRIBUTING.md in contribute.md
- added toggle & button reference to functions
- added function references in functions
- changed mkdocs site styling

* Use HashSet for processedFunctions

Use HashSet for processedFunctions:
- Ensures dynamic addition of functions without duplication.
Recursive Function Scanning:
- Includes all nested functions called by InvokeScript, UndoScript, ToggleScript, and ButtonScript.

* follow github standards

- add code of conduct
- reference code of conduct in docs
- regrouped docs navigation
- add comment about the sourced md file

* small fixes

* change color from teal to blue in light mode

* add links to tweaks

* add archiving feature to autodocs

* administrative

- add script to releases and remove from compile
- move link from after description to after category

* small fixes

- add S in feature.json
- fix dating
- move link to after category

* fix links

* undo link bc of bugs

* add progress bar to script

- add progress like in compile
- moved archive folder creation to the beginning of the script

* Simple improvements to 'auto-devdocs' branch (#3)

* Fix links for tweaks & features

* Make New Line characters work for Json Snippet

* Change NewLine Character from Unix Style (LF) to Windows/DOS Style (CRLF)

* rerun script

* und workflows & rearrange navigation items

* layer out itemname cutout

* rework links & temp removal of archivation

* fix adding link in json root

not adding link member to root in json files

* fix json generation

replace '\r\n',"`r`n" with ('\n',"`n")

* add features to auto md docs

* add minify plugin

* regex hotfix

* refractor

* add changelog to about section

add link to changelog in docs for about section

* undo changelog

* Cleanup 'devdocs-generator.ps1' - Implement Zig Multiline String Feature (#4)

* Cleanup 'devdocs-generator.ps1' - Implement Zig Multiline String Feature

* Fix NewLine character replace in 'devdocs-generator.ps1'

* run script

* run script

* Fix 'itemnametocut' RegEx in 'devdocs-generator.ps1' (#5)

* rerun script

* rework nav + remove code of conduct

* undo workflow changes

* run script

* remove changelog

---------

Co-authored-by: MyDrift-user <MyDrift-user@users.noreply.github.com>
Co-authored-by: Mr.k <mineshtine28546271@gmail.com>
2024-08-07 10:55:23 -05:00

10 KiB

Adobe Debloat

Last Updated: 2024-08-07

!!! info The Development Documentation is auto generated for every compilation of WinUtil, meaning a part of it will always stay up-to-date. Developers do have the ability to add custom content, which won't be updated automatically.

Description

Manages Adobe Services, Adobe Desktop Service, and Acrobat Updates

Preview Code
{
  "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"
    }
  ],
  "link": "https://christitustech.github.io/winutil/dev/tweaks/z--Advanced-Tweaks---CAUTION/DebloatAdobe"
}

Invoke Script


      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
      

Undo Script


      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 Changes

Windows services are background processes for system functions or applications. Setting some to manual optimizes performance by starting them only when needed.

You can find information about services on Wikipedia and Microsoft's Website.

Service Name: AGSService

Startup Type: Disabled

Original Type: Automatic

Service Name: AGMService

Startup Type: Disabled

Original Type: Automatic

Service Name: AdobeUpdateService

Startup Type: Manual

Original Type: Automatic

Service Name: Adobe Acrobat Update

Startup Type: Manual

Original Type: Automatic

Service Name: Adobe Genuine Monitor Service

Startup Type: Disabled

Original Type: Automatic

Service Name: AdobeARMservice

Startup Type: Manual

Original Type: Automatic

Service Name: Adobe Licensing Console

Startup Type: Manual

Original Type: Automatic

Service Name: CCXProcess

Startup Type: Manual

Original Type: Automatic

Service Name: AdobeIPCBroker

Startup Type: Manual

Original Type: Automatic

Service Name: CoreSync

Startup Type: Manual

Original Type: Automatic

View the JSON file