mirror of
https://github.com/ChrisTitusTech/winutil.git
synced 2025-06-28 09:04:47 -05:00
[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>
This commit is contained in:
245
docs/dev/tweaks/z--Advanced-Tweaks---CAUTION/BlockAdobeNet.md
Normal file
245
docs/dev/tweaks/z--Advanced-Tweaks---CAUTION/BlockAdobeNet.md
Normal file
@ -0,0 +1,245 @@
|
||||
# Adobe Network Block
|
||||
|
||||
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
|
||||
|
||||
Reduce user interruptions by selectively blocking connections to Adobe's activation and telemetry servers. Credit: Ruddernation-Designs
|
||||
|
||||
<!-- BEGIN CUSTOM CONTENT -->
|
||||
|
||||
<!-- END CUSTOM CONTENT -->
|
||||
|
||||
<details>
|
||||
<summary>Preview Code</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"Content": "Adobe Network Block",
|
||||
"Description": "Reduce user interruptions by selectively blocking connections to Adobe's activation and telemetry servers. Credit: Ruddernation-Designs",
|
||||
"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: $_\"
|
||||
}
|
||||
"
|
||||
],
|
||||
"link": "https://christitustech.github.io/winutil/dev/tweaks/z--Advanced-Tweaks---CAUTION/BlockAdobeNet"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Invoke Script
|
||||
|
||||
```powershell
|
||||
|
||||
# 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: $_"
|
||||
}
|
||||
|
||||
|
||||
```
|
||||
## Undo Script
|
||||
|
||||
```powershell
|
||||
|
||||
# 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: $_"
|
||||
}
|
||||
|
||||
|
||||
```
|
||||
|
||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
||||
|
||||
<!-- END SECOND CUSTOM CONTENT -->
|
||||
|
||||
|
||||
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)
|
||||
|
189
docs/dev/tweaks/z--Advanced-Tweaks---CAUTION/DeBloat.md
Normal file
189
docs/dev/tweaks/z--Advanced-Tweaks---CAUTION/DeBloat.md
Normal file
@ -0,0 +1,189 @@
|
||||
# Remove ALL MS Store Apps - NOT RECOMMENDED
|
||||
|
||||
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
|
||||
|
||||
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!
|
||||
|
||||
<!-- BEGIN CUSTOM CONTENT -->
|
||||
|
||||
<!-- END CUSTOM CONTENT -->
|
||||
|
||||
<details>
|
||||
<summary>Preview Code</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"Content": "Remove ALL MS Store Apps - NOT RECOMMENDED",
|
||||
"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": "a028_",
|
||||
"appx": [
|
||||
"Microsoft.Microsoft3DViewer",
|
||||
"Microsoft.AppConnector",
|
||||
"Microsoft.BingFinance",
|
||||
"Microsoft.BingNews",
|
||||
"Microsoft.BingSports",
|
||||
"Microsoft.BingTranslator",
|
||||
"Microsoft.BingWeather",
|
||||
"Microsoft.BingFoodAndDrink",
|
||||
"Microsoft.BingHealthAndFitness",
|
||||
"Microsoft.BingTravel",
|
||||
"Microsoft.MinecraftUWP",
|
||||
"Microsoft.GamingServices",
|
||||
"Microsoft.GetHelp",
|
||||
"Microsoft.Getstarted",
|
||||
"Microsoft.Messaging",
|
||||
"Microsoft.Microsoft3DViewer",
|
||||
"Microsoft.MicrosoftSolitaireCollection",
|
||||
"Microsoft.NetworkSpeedTest",
|
||||
"Microsoft.News",
|
||||
"Microsoft.Office.Lens",
|
||||
"Microsoft.Office.Sway",
|
||||
"Microsoft.Office.OneNote",
|
||||
"Microsoft.OneConnect",
|
||||
"Microsoft.People",
|
||||
"Microsoft.Print3D",
|
||||
"Microsoft.SkypeApp",
|
||||
"Microsoft.Wallet",
|
||||
"Microsoft.Whiteboard",
|
||||
"Microsoft.WindowsAlarms",
|
||||
"microsoft.windowscommunicationsapps",
|
||||
"Microsoft.WindowsFeedbackHub",
|
||||
"Microsoft.WindowsMaps",
|
||||
"Microsoft.YourPhone",
|
||||
"Microsoft.WindowsSoundRecorder",
|
||||
"Microsoft.XboxApp",
|
||||
"Microsoft.ConnectivityStore",
|
||||
"Microsoft.ScreenSketch",
|
||||
"Microsoft.Xbox.TCUI",
|
||||
"Microsoft.XboxGameOverlay",
|
||||
"Microsoft.XboxGameCallableUI",
|
||||
"Microsoft.XboxSpeechToTextOverlay",
|
||||
"Microsoft.MixedReality.Portal",
|
||||
"Microsoft.XboxIdentityProvider",
|
||||
"Microsoft.ZuneMusic",
|
||||
"Microsoft.ZuneVideo",
|
||||
"Microsoft.Getstarted",
|
||||
"Microsoft.MicrosoftOfficeHub",
|
||||
"*EclipseManager*",
|
||||
"*ActiproSoftwareLLC*",
|
||||
"*AdobeSystemsIncorporated.AdobePhotoshopExpress*",
|
||||
"*Duolingo-LearnLanguagesforFree*",
|
||||
"*PandoraMediaInc*",
|
||||
"*CandyCrush*",
|
||||
"*BubbleWitch3Saga*",
|
||||
"*Wunderlist*",
|
||||
"*Flipboard*",
|
||||
"*Twitter*",
|
||||
"*Facebook*",
|
||||
"*Royal Revolt*",
|
||||
"*Sway*",
|
||||
"*Speed Test*",
|
||||
"*Dolby*",
|
||||
"*Viber*",
|
||||
"*ACGMediaPlayer*",
|
||||
"*Netflix*",
|
||||
"*OneCalendar*",
|
||||
"*LinkedInforWindows*",
|
||||
"*HiddenCityMysteryofShadows*",
|
||||
"*Hulu*",
|
||||
"*HiddenCity*",
|
||||
"*AdobePhotoshopExpress*",
|
||||
"*HotspotShieldFreeVPN*",
|
||||
"*Microsoft.Advertising.Xaml*"
|
||||
],
|
||||
"InvokeScript": [
|
||||
"
|
||||
$TeamsPath = [System.IO.Path]::Combine($env:LOCALAPPDATA, 'Microsoft', 'Teams')
|
||||
$TeamsUpdateExePath = [System.IO.Path]::Combine($TeamsPath, 'Update.exe')
|
||||
|
||||
Write-Host \"Stopping Teams process...\"
|
||||
Stop-Process -Name \"*teams*\" -Force -ErrorAction SilentlyContinue
|
||||
|
||||
Write-Host \"Uninstalling Teams from AppData\\Microsoft\\Teams\"
|
||||
if ([System.IO.File]::Exists($TeamsUpdateExePath)) {
|
||||
# Uninstall app
|
||||
$proc = Start-Process $TeamsUpdateExePath \"-uninstall -s\" -PassThru
|
||||
$proc.WaitForExit()
|
||||
}
|
||||
|
||||
Write-Host \"Removing Teams AppxPackage...\"
|
||||
Get-AppxPackage \"*Teams*\" | Remove-AppxPackage -ErrorAction SilentlyContinue
|
||||
Get-AppxPackage \"*Teams*\" -AllUsers | Remove-AppxPackage -AllUsers -ErrorAction SilentlyContinue
|
||||
|
||||
Write-Host \"Deleting Teams directory\"
|
||||
if ([System.IO.Directory]::Exists($TeamsPath)) {
|
||||
Remove-Item $TeamsPath -Force -Recurse -ErrorAction SilentlyContinue
|
||||
}
|
||||
|
||||
Write-Host \"Deleting Teams uninstall registry key\"
|
||||
# Uninstall from Uninstall registry key UninstallString
|
||||
$us = (Get-ChildItem -Path HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall, HKLM:\\SOFTWARE\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall | Get-ItemProperty | Where-Object { $_.DisplayName -like '*Teams*'}).UninstallString
|
||||
if ($us.Length -gt 0) {
|
||||
$us = ($us.Replace('/I', '/uninstall ') + ' /quiet').Replace(' ', ' ')
|
||||
$FilePath = ($us.Substring(0, $us.IndexOf('.exe') + 4).Trim())
|
||||
$ProcessArgs = ($us.Substring($us.IndexOf('.exe') + 5).Trim().replace(' ', ' '))
|
||||
$proc = Start-Process -FilePath $FilePath -Args $ProcessArgs -PassThru
|
||||
$proc.WaitForExit()
|
||||
}
|
||||
"
|
||||
],
|
||||
"link": "https://christitustech.github.io/winutil/dev/tweaks/z--Advanced-Tweaks---CAUTION/DeBloat"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Invoke Script
|
||||
|
||||
```powershell
|
||||
|
||||
$TeamsPath = [System.IO.Path]::Combine($env:LOCALAPPDATA, 'Microsoft', 'Teams')
|
||||
$TeamsUpdateExePath = [System.IO.Path]::Combine($TeamsPath, 'Update.exe')
|
||||
|
||||
Write-Host "Stopping Teams process..."
|
||||
Stop-Process -Name "*teams*" -Force -ErrorAction SilentlyContinue
|
||||
|
||||
Write-Host "Uninstalling Teams from AppData\Microsoft\Teams"
|
||||
if ([System.IO.File]::Exists($TeamsUpdateExePath)) {
|
||||
# Uninstall app
|
||||
$proc = Start-Process $TeamsUpdateExePath "-uninstall -s" -PassThru
|
||||
$proc.WaitForExit()
|
||||
}
|
||||
|
||||
Write-Host "Removing Teams AppxPackage..."
|
||||
Get-AppxPackage "*Teams*" | Remove-AppxPackage -ErrorAction SilentlyContinue
|
||||
Get-AppxPackage "*Teams*" -AllUsers | Remove-AppxPackage -AllUsers -ErrorAction SilentlyContinue
|
||||
|
||||
Write-Host "Deleting Teams directory"
|
||||
if ([System.IO.Directory]::Exists($TeamsPath)) {
|
||||
Remove-Item $TeamsPath -Force -Recurse -ErrorAction SilentlyContinue
|
||||
}
|
||||
|
||||
Write-Host "Deleting Teams uninstall registry key"
|
||||
# Uninstall from Uninstall registry key UninstallString
|
||||
$us = (Get-ChildItem -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall, HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall | Get-ItemProperty | Where-Object { $_.DisplayName -like '*Teams*'}).UninstallString
|
||||
if ($us.Length -gt 0) {
|
||||
$us = ($us.Replace('/I', '/uninstall ') + ' /quiet').Replace(' ', ' ')
|
||||
$FilePath = ($us.Substring(0, $us.IndexOf('.exe') + 4).Trim())
|
||||
$ProcessArgs = ($us.Substring($us.IndexOf('.exe') + 5).Trim().replace(' ', ' '))
|
||||
$proc = Start-Process -FilePath $FilePath -Args $ProcessArgs -PassThru
|
||||
$proc.WaitForExit()
|
||||
}
|
||||
|
||||
|
||||
```
|
||||
|
||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
||||
|
||||
<!-- END SECOND CUSTOM CONTENT -->
|
||||
|
||||
|
||||
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)
|
||||
|
342
docs/dev/tweaks/z--Advanced-Tweaks---CAUTION/DebloatAdobe.md
Normal file
342
docs/dev/tweaks/z--Advanced-Tweaks---CAUTION/DebloatAdobe.md
Normal file
@ -0,0 +1,342 @@
|
||||
# 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
|
||||
|
||||
<!-- BEGIN CUSTOM CONTENT -->
|
||||
|
||||
<!-- END CUSTOM CONTENT -->
|
||||
|
||||
<details>
|
||||
<summary>Preview Code</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"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"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Invoke Script
|
||||
|
||||
```powershell
|
||||
|
||||
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
|
||||
|
||||
```powershell
|
||||
|
||||
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](https://www.wikiwand.com/en/Windows_service) and [Microsoft's Website](https://learn.microsoft.com/en-us/dotnet/framework/windows-services/introduction-to-windows-service-applications).
|
||||
|
||||
### 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
|
||||
|
||||
|
||||
|
||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
||||
|
||||
<!-- END SECOND CUSTOM CONTENT -->
|
||||
|
||||
|
||||
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)
|
||||
|
@ -0,0 +1,63 @@
|
||||
# Disable Background Apps
|
||||
|
||||
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
|
||||
|
||||
Disables all Microsoft Store apps from running in the background, which has to be done individually since Win11
|
||||
|
||||
<!-- BEGIN CUSTOM CONTENT -->
|
||||
|
||||
<!-- END CUSTOM CONTENT -->
|
||||
|
||||
<details>
|
||||
<summary>Preview Code</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"Content": "Disable Background Apps",
|
||||
"Description": "Disables all Microsoft Store apps from running in the background, which has to be done individually since Win11",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a024_",
|
||||
"registry": [
|
||||
{
|
||||
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\BackgroundAccessApplications",
|
||||
"Name": "GlobalUserDisabled",
|
||||
"Value": "1",
|
||||
"OriginalValue": "0",
|
||||
"Type": "DWord"
|
||||
}
|
||||
],
|
||||
"link": "https://christitustech.github.io/winutil/dev/tweaks/z--Advanced-Tweaks---CAUTION/DisableBGapps"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Registry Changes
|
||||
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
|
||||
|
||||
|
||||
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
|
||||
|
||||
### Registry Key: GlobalUserDisabled
|
||||
|
||||
**Type:** DWord
|
||||
|
||||
**Original Value:** 0
|
||||
|
||||
**New Value:** 1
|
||||
|
||||
|
||||
|
||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
||||
|
||||
<!-- END SECOND CUSTOM CONTENT -->
|
||||
|
||||
|
||||
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)
|
||||
|
63
docs/dev/tweaks/z--Advanced-Tweaks---CAUTION/DisableFSO.md
Normal file
63
docs/dev/tweaks/z--Advanced-Tweaks---CAUTION/DisableFSO.md
Normal file
@ -0,0 +1,63 @@
|
||||
# Disable Fullscreen Optimizations
|
||||
|
||||
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
|
||||
|
||||
Disables FSO in all applications. NOTE: This will disable Color Management in Exclusive Fullscreen
|
||||
|
||||
<!-- BEGIN CUSTOM CONTENT -->
|
||||
|
||||
<!-- END CUSTOM CONTENT -->
|
||||
|
||||
<details>
|
||||
<summary>Preview Code</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"Content": "Disable Fullscreen Optimizations",
|
||||
"Description": "Disables FSO in all applications. NOTE: This will disable Color Management in Exclusive Fullscreen",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a024_",
|
||||
"registry": [
|
||||
{
|
||||
"Path": "HKCU:\\System\\GameConfigStore",
|
||||
"Name": "GameDVR_DXGIHonorFSEWindowsCompatible",
|
||||
"Value": "1",
|
||||
"OriginalValue": "0",
|
||||
"Type": "DWord"
|
||||
}
|
||||
],
|
||||
"link": "https://christitustech.github.io/winutil/dev/tweaks/z--Advanced-Tweaks---CAUTION/DisableFSO"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Registry Changes
|
||||
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
|
||||
|
||||
|
||||
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
|
||||
|
||||
### Registry Key: GameDVR_DXGIHonorFSEWindowsCompatible
|
||||
|
||||
**Type:** DWord
|
||||
|
||||
**Original Value:** 0
|
||||
|
||||
**New Value:** 1
|
||||
|
||||
|
||||
|
||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
||||
|
||||
<!-- END SECOND CUSTOM CONTENT -->
|
||||
|
||||
|
||||
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)
|
||||
|
145
docs/dev/tweaks/z--Advanced-Tweaks---CAUTION/DisableLMS1.md
Normal file
145
docs/dev/tweaks/z--Advanced-Tweaks---CAUTION/DisableLMS1.md
Normal file
@ -0,0 +1,145 @@
|
||||
# Disable Intel MM (vPro LMS)
|
||||
|
||||
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
|
||||
|
||||
Intel LMS service is always listening on all ports and could be a huge security risk. There is no need to run LMS on home machines and even in the Enterprise there are better solutions.
|
||||
|
||||
<!-- BEGIN CUSTOM CONTENT -->
|
||||
|
||||
<!-- END CUSTOM CONTENT -->
|
||||
|
||||
<details>
|
||||
<summary>Preview Code</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"Content": "Disable Intel MM (vPro LMS)",
|
||||
"Description": "Intel LMS service is always listening on all ports and could be a huge security risk. There is no need to run LMS on home machines and even in the Enterprise there are better solutions.",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a026_",
|
||||
"InvokeScript": [
|
||||
"
|
||||
Write-Host \"Kill LMS\"
|
||||
$serviceName = \"LMS\"
|
||||
Write-Host \"Stopping and disabling service: $serviceName\"
|
||||
Stop-Service -Name $serviceName -Force -ErrorAction SilentlyContinue;
|
||||
Set-Service -Name $serviceName -StartupType Disabled -ErrorAction SilentlyContinue;
|
||||
|
||||
Write-Host \"Removing service: $serviceName\";
|
||||
sc.exe delete $serviceName;
|
||||
|
||||
Write-Host \"Removing LMS driver packages\";
|
||||
$lmsDriverPackages = Get-ChildItem -Path \"C:\\Windows\\System32\\DriverStore\\FileRepository\" -Recurse -Filter \"lms.inf*\";
|
||||
foreach ($package in $lmsDriverPackages) {
|
||||
Write-Host \"Removing driver package: $($package.Name)\";
|
||||
pnputil /delete-driver $($package.Name) /uninstall /force;
|
||||
}
|
||||
if ($lmsDriverPackages.Count -eq 0) {
|
||||
Write-Host \"No LMS driver packages found in the driver store.\";
|
||||
} else {
|
||||
Write-Host \"All found LMS driver packages have been removed.\";
|
||||
}
|
||||
|
||||
Write-Host \"Searching and deleting LMS executable files\";
|
||||
$programFilesDirs = @(\"C:\\Program Files\", \"C:\\Program Files (x86)\");
|
||||
$lmsFiles = @();
|
||||
foreach ($dir in $programFilesDirs) {
|
||||
$lmsFiles += Get-ChildItem -Path $dir -Recurse -Filter \"LMS.exe\" -ErrorAction SilentlyContinue;
|
||||
}
|
||||
foreach ($file in $lmsFiles) {
|
||||
Write-Host \"Taking ownership of file: $($file.FullName)\";
|
||||
& icacls $($file.FullName) /grant Administrators:F /T /C /Q;
|
||||
& takeown /F $($file.FullName) /A /R /D Y;
|
||||
Write-Host \"Deleting file: $($file.FullName)\";
|
||||
Remove-Item $($file.FullName) -Force -ErrorAction SilentlyContinue;
|
||||
}
|
||||
if ($lmsFiles.Count -eq 0) {
|
||||
Write-Host \"No LMS.exe files found in Program Files directories.\";
|
||||
} else {
|
||||
Write-Host \"All found LMS.exe files have been deleted.\";
|
||||
}
|
||||
Write-Host 'Intel LMS vPro service has been disabled, removed, and blocked.';
|
||||
"
|
||||
],
|
||||
"UndoScript": [
|
||||
"
|
||||
Write-Host \"LMS vPro needs to be redownloaded from intel.com\"
|
||||
|
||||
"
|
||||
],
|
||||
"link": "https://christitustech.github.io/winutil/dev/tweaks/z--Advanced-Tweaks---CAUTION/DisableLMS1"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Invoke Script
|
||||
|
||||
```powershell
|
||||
|
||||
Write-Host "Kill LMS"
|
||||
$serviceName = "LMS"
|
||||
Write-Host "Stopping and disabling service: $serviceName"
|
||||
Stop-Service -Name $serviceName -Force -ErrorAction SilentlyContinue;
|
||||
Set-Service -Name $serviceName -StartupType Disabled -ErrorAction SilentlyContinue;
|
||||
|
||||
Write-Host "Removing service: $serviceName";
|
||||
sc.exe delete $serviceName;
|
||||
|
||||
Write-Host "Removing LMS driver packages";
|
||||
$lmsDriverPackages = Get-ChildItem -Path "C:\Windows\System32\DriverStore\FileRepository" -Recurse -Filter "lms.inf*";
|
||||
foreach ($package in $lmsDriverPackages) {
|
||||
Write-Host "Removing driver package: $($package.Name)";
|
||||
pnputil /delete-driver $($package.Name) /uninstall /force;
|
||||
}
|
||||
if ($lmsDriverPackages.Count -eq 0) {
|
||||
Write-Host "No LMS driver packages found in the driver store.";
|
||||
} else {
|
||||
Write-Host "All found LMS driver packages have been removed.";
|
||||
}
|
||||
|
||||
Write-Host "Searching and deleting LMS executable files";
|
||||
$programFilesDirs = @("C:\Program Files", "C:\Program Files (x86)");
|
||||
$lmsFiles = @();
|
||||
foreach ($dir in $programFilesDirs) {
|
||||
$lmsFiles += Get-ChildItem -Path $dir -Recurse -Filter "LMS.exe" -ErrorAction SilentlyContinue;
|
||||
}
|
||||
foreach ($file in $lmsFiles) {
|
||||
Write-Host "Taking ownership of file: $($file.FullName)";
|
||||
& icacls $($file.FullName) /grant Administrators:F /T /C /Q;
|
||||
& takeown /F $($file.FullName) /A /R /D Y;
|
||||
Write-Host "Deleting file: $($file.FullName)";
|
||||
Remove-Item $($file.FullName) -Force -ErrorAction SilentlyContinue;
|
||||
}
|
||||
if ($lmsFiles.Count -eq 0) {
|
||||
Write-Host "No LMS.exe files found in Program Files directories.";
|
||||
} else {
|
||||
Write-Host "All found LMS.exe files have been deleted.";
|
||||
}
|
||||
Write-Host 'Intel LMS vPro service has been disabled, removed, and blocked.';
|
||||
|
||||
|
||||
```
|
||||
## Undo Script
|
||||
|
||||
```powershell
|
||||
|
||||
Write-Host "LMS vPro needs to be redownloaded from intel.com"
|
||||
|
||||
|
||||
|
||||
```
|
||||
|
||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
||||
|
||||
<!-- END SECOND CUSTOM CONTENT -->
|
||||
|
||||
|
||||
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)
|
||||
|
@ -0,0 +1,78 @@
|
||||
# Disable Notification Tray/Calendar
|
||||
|
||||
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
|
||||
|
||||
Disables all Notifications INCLUDING Calendar
|
||||
|
||||
<!-- BEGIN CUSTOM CONTENT -->
|
||||
|
||||
<!-- END CUSTOM CONTENT -->
|
||||
|
||||
<details>
|
||||
<summary>Preview Code</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"Content": "Disable Notification Tray/Calendar",
|
||||
"Description": "Disables all Notifications INCLUDING Calendar",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a026_",
|
||||
"registry": [
|
||||
{
|
||||
"Path": "HKCU:\\Software\\Policies\\Microsoft\\Windows\\Explorer",
|
||||
"Name": "DisableNotificationCenter",
|
||||
"Type": "DWord",
|
||||
"Value": "1",
|
||||
"OriginalValue": "0"
|
||||
},
|
||||
{
|
||||
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\PushNotifications",
|
||||
"Name": "ToastEnabled",
|
||||
"Type": "DWord",
|
||||
"Value": "0",
|
||||
"OriginalValue": "1"
|
||||
}
|
||||
],
|
||||
"link": "https://christitustech.github.io/winutil/dev/tweaks/z--Advanced-Tweaks---CAUTION/DisableNotifications"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Registry Changes
|
||||
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
|
||||
|
||||
|
||||
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
|
||||
|
||||
### Registry Key: DisableNotificationCenter
|
||||
|
||||
**Type:** DWord
|
||||
|
||||
**Original Value:** 0
|
||||
|
||||
**New Value:** 1
|
||||
|
||||
### Registry Key: ToastEnabled
|
||||
|
||||
**Type:** DWord
|
||||
|
||||
**Original Value:** 1
|
||||
|
||||
**New Value:** 0
|
||||
|
||||
|
||||
|
||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
||||
|
||||
<!-- END SECOND CUSTOM CONTENT -->
|
||||
|
||||
|
||||
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)
|
||||
|
81
docs/dev/tweaks/z--Advanced-Tweaks---CAUTION/Disableipsix.md
Normal file
81
docs/dev/tweaks/z--Advanced-Tweaks---CAUTION/Disableipsix.md
Normal file
@ -0,0 +1,81 @@
|
||||
# Disable IPv6
|
||||
|
||||
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
|
||||
|
||||
Disables IPv6.
|
||||
|
||||
<!-- BEGIN CUSTOM CONTENT -->
|
||||
|
||||
<!-- END CUSTOM CONTENT -->
|
||||
|
||||
<details>
|
||||
<summary>Preview Code</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"Content": "Disable IPv6",
|
||||
"Description": "Disables IPv6.",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a023_",
|
||||
"registry": [
|
||||
{
|
||||
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Services\\Tcpip6\\Parameters",
|
||||
"Name": "DisabledComponents",
|
||||
"Value": "255",
|
||||
"OriginalValue": "0",
|
||||
"Type": "DWord"
|
||||
}
|
||||
],
|
||||
"InvokeScript": [
|
||||
"Disable-NetAdapterBinding -Name \"*\" -ComponentID ms_tcpip6"
|
||||
],
|
||||
"UndoScript": [
|
||||
"Enable-NetAdapterBinding -Name \"*\" -ComponentID ms_tcpip6"
|
||||
],
|
||||
"link": "https://christitustech.github.io/winutil/dev/tweaks/z--Advanced-Tweaks---CAUTION/Disableipsix"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Invoke Script
|
||||
|
||||
```powershell
|
||||
Disable-NetAdapterBinding -Name "*" -ComponentID ms_tcpip6
|
||||
|
||||
```
|
||||
## Undo Script
|
||||
|
||||
```powershell
|
||||
Enable-NetAdapterBinding -Name "*" -ComponentID ms_tcpip6
|
||||
|
||||
```
|
||||
## Registry Changes
|
||||
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
|
||||
|
||||
|
||||
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
|
||||
|
||||
### Registry Key: DisabledComponents
|
||||
|
||||
**Type:** DWord
|
||||
|
||||
**Original Value:** 0
|
||||
|
||||
**New Value:** 255
|
||||
|
||||
|
||||
|
||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
||||
|
||||
<!-- END SECOND CUSTOM CONTENT -->
|
||||
|
||||
|
||||
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)
|
||||
|
261
docs/dev/tweaks/z--Advanced-Tweaks---CAUTION/Display.md
Normal file
261
docs/dev/tweaks/z--Advanced-Tweaks---CAUTION/Display.md
Normal file
@ -0,0 +1,261 @@
|
||||
# Set Display for Performance
|
||||
|
||||
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
|
||||
|
||||
Sets the system preferences to performance. You can do this manually with sysdm.cpl as well.
|
||||
|
||||
<!-- BEGIN CUSTOM CONTENT -->
|
||||
|
||||
<!-- END CUSTOM CONTENT -->
|
||||
|
||||
<details>
|
||||
<summary>Preview Code</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"Content": "Set Display for Performance",
|
||||
"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": "a027_",
|
||||
"registry": [
|
||||
{
|
||||
"Path": "HKCU:\\Control Panel\\Desktop",
|
||||
"OriginalValue": "1",
|
||||
"Name": "DragFullWindows",
|
||||
"Value": "0",
|
||||
"Type": "String"
|
||||
},
|
||||
{
|
||||
"Path": "HKCU:\\Control Panel\\Desktop",
|
||||
"OriginalValue": "1",
|
||||
"Name": "MenuShowDelay",
|
||||
"Value": "200",
|
||||
"Type": "String"
|
||||
},
|
||||
{
|
||||
"Path": "HKCU:\\Control Panel\\Desktop\\WindowMetrics",
|
||||
"OriginalValue": "1",
|
||||
"Name": "MinAnimate",
|
||||
"Value": "0",
|
||||
"Type": "String"
|
||||
},
|
||||
{
|
||||
"Path": "HKCU:\\Control Panel\\Keyboard",
|
||||
"OriginalValue": "1",
|
||||
"Name": "KeyboardDelay",
|
||||
"Value": "0",
|
||||
"Type": "DWord"
|
||||
},
|
||||
{
|
||||
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
|
||||
"OriginalValue": "1",
|
||||
"Name": "ListviewAlphaSelect",
|
||||
"Value": "0",
|
||||
"Type": "DWord"
|
||||
},
|
||||
{
|
||||
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
|
||||
"OriginalValue": "1",
|
||||
"Name": "ListviewShadow",
|
||||
"Value": "0",
|
||||
"Type": "DWord"
|
||||
},
|
||||
{
|
||||
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
|
||||
"OriginalValue": "1",
|
||||
"Name": "TaskbarAnimations",
|
||||
"Value": "0",
|
||||
"Type": "DWord"
|
||||
},
|
||||
{
|
||||
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\VisualEffects",
|
||||
"OriginalValue": "1",
|
||||
"Name": "VisualFXSetting",
|
||||
"Value": "3",
|
||||
"Type": "DWord"
|
||||
},
|
||||
{
|
||||
"Path": "HKCU:\\Software\\Microsoft\\Windows\\DWM",
|
||||
"OriginalValue": "1",
|
||||
"Name": "EnableAeroPeek",
|
||||
"Value": "0",
|
||||
"Type": "DWord"
|
||||
},
|
||||
{
|
||||
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
|
||||
"OriginalValue": "1",
|
||||
"Name": "TaskbarMn",
|
||||
"Value": "0",
|
||||
"Type": "DWord"
|
||||
},
|
||||
{
|
||||
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
|
||||
"OriginalValue": "1",
|
||||
"Name": "TaskbarDa",
|
||||
"Value": "0",
|
||||
"Type": "DWord"
|
||||
},
|
||||
{
|
||||
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
|
||||
"OriginalValue": "1",
|
||||
"Name": "ShowTaskViewButton",
|
||||
"Value": "0",
|
||||
"Type": "DWord"
|
||||
},
|
||||
{
|
||||
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Search",
|
||||
"OriginalValue": "1",
|
||||
"Name": "SearchboxTaskbarMode",
|
||||
"Value": "0",
|
||||
"Type": "DWord"
|
||||
}
|
||||
],
|
||||
"InvokeScript": [
|
||||
"Set-ItemProperty -Path \"HKCU:\\Control Panel\\Desktop\" -Name \"UserPreferencesMask\" -Type Binary -Value ([byte[]](144,18,3,128,16,0,0,0))"
|
||||
],
|
||||
"UndoScript": [
|
||||
"Remove-ItemProperty -Path \"HKCU:\\Control Panel\\Desktop\" -Name \"UserPreferencesMask\""
|
||||
],
|
||||
"link": "https://christitustech.github.io/winutil/dev/tweaks/z--Advanced-Tweaks---CAUTION/Display"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Invoke Script
|
||||
|
||||
```powershell
|
||||
Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "UserPreferencesMask" -Type Binary -Value ([byte[]](144,18,3,128,16,0,0,0))
|
||||
|
||||
```
|
||||
## Undo Script
|
||||
|
||||
```powershell
|
||||
Remove-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name "UserPreferencesMask"
|
||||
|
||||
```
|
||||
## Registry Changes
|
||||
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
|
||||
|
||||
|
||||
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
|
||||
|
||||
### Registry Key: DragFullWindows
|
||||
|
||||
**Type:** String
|
||||
|
||||
**Original Value:** 1
|
||||
|
||||
**New Value:** 0
|
||||
|
||||
### Registry Key: MenuShowDelay
|
||||
|
||||
**Type:** String
|
||||
|
||||
**Original Value:** 1
|
||||
|
||||
**New Value:** 200
|
||||
|
||||
### Registry Key: MinAnimate
|
||||
|
||||
**Type:** String
|
||||
|
||||
**Original Value:** 1
|
||||
|
||||
**New Value:** 0
|
||||
|
||||
### Registry Key: KeyboardDelay
|
||||
|
||||
**Type:** DWord
|
||||
|
||||
**Original Value:** 1
|
||||
|
||||
**New Value:** 0
|
||||
|
||||
### Registry Key: ListviewAlphaSelect
|
||||
|
||||
**Type:** DWord
|
||||
|
||||
**Original Value:** 1
|
||||
|
||||
**New Value:** 0
|
||||
|
||||
### Registry Key: ListviewShadow
|
||||
|
||||
**Type:** DWord
|
||||
|
||||
**Original Value:** 1
|
||||
|
||||
**New Value:** 0
|
||||
|
||||
### Registry Key: TaskbarAnimations
|
||||
|
||||
**Type:** DWord
|
||||
|
||||
**Original Value:** 1
|
||||
|
||||
**New Value:** 0
|
||||
|
||||
### Registry Key: VisualFXSetting
|
||||
|
||||
**Type:** DWord
|
||||
|
||||
**Original Value:** 1
|
||||
|
||||
**New Value:** 3
|
||||
|
||||
### Registry Key: EnableAeroPeek
|
||||
|
||||
**Type:** DWord
|
||||
|
||||
**Original Value:** 1
|
||||
|
||||
**New Value:** 0
|
||||
|
||||
### Registry Key: TaskbarMn
|
||||
|
||||
**Type:** DWord
|
||||
|
||||
**Original Value:** 1
|
||||
|
||||
**New Value:** 0
|
||||
|
||||
### Registry Key: TaskbarDa
|
||||
|
||||
**Type:** DWord
|
||||
|
||||
**Original Value:** 1
|
||||
|
||||
**New Value:** 0
|
||||
|
||||
### Registry Key: ShowTaskViewButton
|
||||
|
||||
**Type:** DWord
|
||||
|
||||
**Original Value:** 1
|
||||
|
||||
**New Value:** 0
|
||||
|
||||
### Registry Key: SearchboxTaskbarMode
|
||||
|
||||
**Type:** DWord
|
||||
|
||||
**Original Value:** 1
|
||||
|
||||
**New Value:** 0
|
||||
|
||||
|
||||
|
||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
||||
|
||||
<!-- END SECOND CUSTOM CONTENT -->
|
||||
|
||||
|
||||
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)
|
||||
|
62
docs/dev/tweaks/z--Advanced-Tweaks---CAUTION/OOSUbutton.md
Normal file
62
docs/dev/tweaks/z--Advanced-Tweaks---CAUTION/OOSUbutton.md
Normal file
@ -0,0 +1,62 @@
|
||||
# Run OO Shutup 10
|
||||
|
||||
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.**
|
||||
|
||||
|
||||
<!-- BEGIN CUSTOM CONTENT -->
|
||||
|
||||
<!-- END CUSTOM CONTENT -->
|
||||
|
||||
<details>
|
||||
<summary>Preview Code</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"Content": "Run OO Shutup 10",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a039_",
|
||||
"Type": "Button",
|
||||
"link": "https://christitustech.github.io/winutil/dev/tweaks/z--Advanced-Tweaks---CAUTION/OOSUbutton"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Function: Invoke-WPFOOSU
|
||||
|
||||
```powershell
|
||||
function Invoke-WPFOOSU {
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Downloads and runs OO Shutup 10
|
||||
#>
|
||||
try {
|
||||
$OOSU_filepath = "$ENV:temp\OOSU10.exe"
|
||||
$Initial_ProgressPreference = $ProgressPreference
|
||||
$ProgressPreference = "SilentlyContinue" # Disables the Progress Bar to drasticly speed up Invoke-WebRequest
|
||||
Invoke-WebRequest -Uri "https://dl5.oo-software.com/files/ooshutup10/OOSU10.exe" -OutFile $OOSU_filepath
|
||||
Write-Host "Starting OO Shutup 10 ..."
|
||||
Start-Process $OOSU_filepath
|
||||
} catch {
|
||||
Write-Host "Error Downloading and Running OO Shutup 10" -ForegroundColor Red
|
||||
}
|
||||
finally {
|
||||
$ProgressPreference = $Initial_ProgressPreference
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
||||
|
||||
<!-- END SECOND CUSTOM CONTENT -->
|
||||
|
||||
|
||||
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)
|
||||
|
123
docs/dev/tweaks/z--Advanced-Tweaks---CAUTION/RemoveCopilot.md
Normal file
123
docs/dev/tweaks/z--Advanced-Tweaks---CAUTION/RemoveCopilot.md
Normal file
@ -0,0 +1,123 @@
|
||||
# Disable Microsoft Copilot
|
||||
|
||||
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
|
||||
|
||||
Disables MS Copilot AI built into Windows since 23H2.
|
||||
|
||||
<!-- BEGIN CUSTOM CONTENT -->
|
||||
|
||||
<!-- END CUSTOM CONTENT -->
|
||||
|
||||
<details>
|
||||
<summary>Preview Code</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"Content": "Disable Microsoft Copilot",
|
||||
"Description": "Disables MS Copilot AI built into Windows since 23H2.",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a025_",
|
||||
"registry": [
|
||||
{
|
||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\WindowsCopilot",
|
||||
"Name": "TurnOffWindowsCopilot",
|
||||
"Type": "DWord",
|
||||
"Value": "1",
|
||||
"OriginalValue": "0"
|
||||
},
|
||||
{
|
||||
"Path": "HKCU:\\Software\\Policies\\Microsoft\\Windows\\WindowsCopilot",
|
||||
"Name": "TurnOffWindowsCopilot",
|
||||
"Type": "DWord",
|
||||
"Value": "1",
|
||||
"OriginalValue": "0"
|
||||
},
|
||||
{
|
||||
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
|
||||
"Name": "ShowCopilotButton",
|
||||
"Type": "DWord",
|
||||
"Value": "0",
|
||||
"OriginalValue": "1"
|
||||
}
|
||||
],
|
||||
"InvokeScript": [
|
||||
"
|
||||
Write-Host \"Remove Copilot\"
|
||||
dism /online /remove-package /package-name:Microsoft.Windows.Copilot
|
||||
"
|
||||
],
|
||||
"UndoScript": [
|
||||
"
|
||||
Write-Host \"Install Copilot\"
|
||||
dism /online /add-package /package-name:Microsoft.Windows.Copilot
|
||||
"
|
||||
],
|
||||
"link": "https://christitustech.github.io/winutil/dev/tweaks/z--Advanced-Tweaks---CAUTION/RemoveCopilot"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Invoke Script
|
||||
|
||||
```powershell
|
||||
|
||||
Write-Host "Remove Copilot"
|
||||
dism /online /remove-package /package-name:Microsoft.Windows.Copilot
|
||||
|
||||
|
||||
```
|
||||
## Undo Script
|
||||
|
||||
```powershell
|
||||
|
||||
Write-Host "Install Copilot"
|
||||
dism /online /add-package /package-name:Microsoft.Windows.Copilot
|
||||
|
||||
|
||||
```
|
||||
## Registry Changes
|
||||
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
|
||||
|
||||
|
||||
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
|
||||
|
||||
### Registry Key: TurnOffWindowsCopilot
|
||||
|
||||
**Type:** DWord
|
||||
|
||||
**Original Value:** 0
|
||||
|
||||
**New Value:** 1
|
||||
|
||||
### Registry Key: TurnOffWindowsCopilot
|
||||
|
||||
**Type:** DWord
|
||||
|
||||
**Original Value:** 0
|
||||
|
||||
**New Value:** 1
|
||||
|
||||
### Registry Key: ShowCopilotButton
|
||||
|
||||
**Type:** DWord
|
||||
|
||||
**Original Value:** 1
|
||||
|
||||
**New Value:** 0
|
||||
|
||||
|
||||
|
||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
||||
|
||||
<!-- END SECOND CUSTOM CONTENT -->
|
||||
|
||||
|
||||
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)
|
||||
|
225
docs/dev/tweaks/z--Advanced-Tweaks---CAUTION/RemoveEdge.md
Normal file
225
docs/dev/tweaks/z--Advanced-Tweaks---CAUTION/RemoveEdge.md
Normal file
@ -0,0 +1,225 @@
|
||||
# Remove Microsoft Edge
|
||||
|
||||
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
|
||||
|
||||
Removes MS Edge when it gets reinstalled by updates. Credit: Techie Jack
|
||||
|
||||
<!-- BEGIN CUSTOM CONTENT -->
|
||||
|
||||
<!-- END CUSTOM CONTENT -->
|
||||
|
||||
<details>
|
||||
<summary>Preview Code</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"Content": "Remove Microsoft Edge",
|
||||
"Description": "Removes MS Edge when it gets reinstalled by updates. Credit: Techie Jack",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a029_",
|
||||
"InvokeScript": [
|
||||
"
|
||||
Uninstall-WinUtilEdgeBrowser
|
||||
"
|
||||
],
|
||||
"UndoScript": [
|
||||
"
|
||||
Write-Host \"Install Microsoft Edge\"
|
||||
Start-Process -FilePath winget -ArgumentList \"install --force -e --accept-source-agreements --accept-package-agreements --silent Microsoft.Edge \" -NoNewWindow -Wait
|
||||
"
|
||||
],
|
||||
"link": "https://christitustech.github.io/winutil/dev/tweaks/z--Advanced-Tweaks---CAUTION/RemoveEdge"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Invoke Script
|
||||
|
||||
```powershell
|
||||
|
||||
Uninstall-WinUtilEdgeBrowser
|
||||
|
||||
|
||||
```
|
||||
## Undo Script
|
||||
|
||||
```powershell
|
||||
|
||||
Write-Host "Install Microsoft Edge"
|
||||
Start-Process -FilePath winget -ArgumentList "install --force -e --accept-source-agreements --accept-package-agreements --silent Microsoft.Edge " -NoNewWindow -Wait
|
||||
|
||||
|
||||
```
|
||||
## Function: Uninstall-WinUtilEdgeBrowser
|
||||
|
||||
```powershell
|
||||
Function Uninstall-WinUtilEdgeBrowser {
|
||||
|
||||
<#
|
||||
|
||||
.SYNOPSIS
|
||||
This will uninstall edge by changing the region to Ireland and uninstalling edge the changing it back
|
||||
|
||||
#>
|
||||
|
||||
$msedgeProcess = Get-Process -Name "msedge" -ErrorAction SilentlyContinue
|
||||
$widgetsProcess = Get-Process -Name "widgets" -ErrorAction SilentlyContinue
|
||||
# Checking if Microsoft Edge is running
|
||||
if ($msedgeProcess) {
|
||||
Stop-Process -Name "msedge" -Force
|
||||
} else {
|
||||
Write-Output "msedge process is not running."
|
||||
}
|
||||
# Checking if Widgets is running
|
||||
if ($widgetsProcess) {
|
||||
Stop-Process -Name "widgets" -Force
|
||||
} else {
|
||||
Write-Output "widgets process is not running."
|
||||
}
|
||||
|
||||
function Uninstall-Process {
|
||||
param (
|
||||
[Parameter(Mandatory = $true)]
|
||||
[string]$Key
|
||||
)
|
||||
|
||||
$originalNation = [microsoft.win32.registry]::GetValue('HKEY_USERS\.DEFAULT\Control Panel\International\Geo', 'Nation', [Microsoft.Win32.RegistryValueKind]::String)
|
||||
|
||||
# Set Nation to 84 (France) temporarily
|
||||
[microsoft.win32.registry]::SetValue('HKEY_USERS\.DEFAULT\Control Panel\International\Geo', 'Nation', 68, [Microsoft.Win32.RegistryValueKind]::String) | Out-Null
|
||||
|
||||
# credits to he3als for the Acl commands
|
||||
$fileName = "IntegratedServicesRegionPolicySet.json"
|
||||
$pathISRPS = [Environment]::SystemDirectory + "\" + $fileName
|
||||
$aclISRPS = Get-Acl -Path $pathISRPS
|
||||
$aclISRPSBackup = [System.Security.AccessControl.FileSecurity]::new()
|
||||
$aclISRPSBackup.SetSecurityDescriptorSddlForm($acl.Sddl)
|
||||
if (Test-Path -Path $pathISRPS) {
|
||||
try {
|
||||
$admin = [System.Security.Principal.NTAccount]$(New-Object System.Security.Principal.SecurityIdentifier('S-1-5-32-544')).Translate([System.Security.Principal.NTAccount]).Value
|
||||
|
||||
$aclISRPS.SetOwner($admin)
|
||||
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule($admin, 'FullControl', 'Allow')
|
||||
$aclISRPS.AddAccessRule($rule)
|
||||
Set-Acl -Path $pathISRPS -AclObject $aclISRPS
|
||||
|
||||
Rename-Item -Path $pathISRPS -NewName ($fileName + '.bak') -Force
|
||||
}
|
||||
catch {
|
||||
Write-Error "[$Mode] Failed to set owner for $pathISRPS"
|
||||
}
|
||||
}
|
||||
|
||||
$baseKey = 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate'
|
||||
$registryPath = $baseKey + '\ClientState\' + $Key
|
||||
|
||||
if (!(Test-Path -Path $registryPath)) {
|
||||
Write-Host "[$Mode] Registry key not found: $registryPath"
|
||||
return
|
||||
}
|
||||
|
||||
Remove-ItemProperty -Path $registryPath -Name "experiment_control_labels" -ErrorAction SilentlyContinue | Out-Null
|
||||
|
||||
$uninstallString = (Get-ItemProperty -Path $registryPath).UninstallString
|
||||
$uninstallArguments = (Get-ItemProperty -Path $registryPath).UninstallArguments
|
||||
|
||||
if ([string]::IsNullOrEmpty($uninstallString) -or [string]::IsNullOrEmpty($uninstallArguments)) {
|
||||
Write-Host "[$Mode] Cannot find uninstall methods for $Mode"
|
||||
return
|
||||
}
|
||||
|
||||
$uninstallArguments += " --force-uninstall --delete-profile"
|
||||
|
||||
# $uninstallCommand = "`"$uninstallString`"" + $uninstallArguments
|
||||
if (!(Test-Path -Path $uninstallString)) {
|
||||
Write-Host "[$Mode] setup.exe not found at: $uninstallString"
|
||||
return
|
||||
}
|
||||
Start-Process -FilePath $uninstallString -ArgumentList $uninstallArguments -Wait -NoNewWindow -Verbose
|
||||
|
||||
# Restore Acl
|
||||
if (Test-Path -Path ($pathISRPS + '.bak')) {
|
||||
Rename-Item -Path ($pathISRPS + '.bak') -NewName $fileName -Force
|
||||
Set-Acl -Path $pathISRPS -AclObject $aclISRPSBackup
|
||||
}
|
||||
|
||||
# Restore Nation
|
||||
[microsoft.win32.registry]::SetValue('HKEY_USERS\.DEFAULT\Control Panel\International\Geo', 'Nation', $originalNation, [Microsoft.Win32.RegistryValueKind]::String) | Out-Null
|
||||
|
||||
if ((Get-ItemProperty -Path $baseKey).IsEdgeStableUninstalled -eq 1) {
|
||||
Write-Host "[$Mode] Edge Stable has been successfully uninstalled"
|
||||
}
|
||||
}
|
||||
|
||||
function Uninstall-Edge {
|
||||
Remove-ItemProperty -Path "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Microsoft Edge" -Name "NoRemove" -ErrorAction SilentlyContinue | Out-Null
|
||||
|
||||
[microsoft.win32.registry]::SetValue("HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\EdgeUpdateDev", "AllowUninstall", 1, [Microsoft.Win32.RegistryValueKind]::DWord) | Out-Null
|
||||
|
||||
Uninstall-Process -Key '{56EB18F8-B008-4CBD-B6D2-8C97FE7E9062}'
|
||||
|
||||
@( "$env:ProgramData\Microsoft\Windows\Start Menu\Programs",
|
||||
"$env:PUBLIC\Desktop",
|
||||
"$env:USERPROFILE\Desktop" ) | ForEach-Object {
|
||||
$shortcutPath = Join-Path -Path $_ -ChildPath "Microsoft Edge.lnk"
|
||||
if (Test-Path -Path $shortcutPath) {
|
||||
Remove-Item -Path $shortcutPath -Force
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function Uninstall-WebView {
|
||||
Remove-ItemProperty -Path "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Microsoft EdgeWebView" -Name "NoRemove" -ErrorAction SilentlyContinue | Out-Null
|
||||
|
||||
# Force to use system-wide WebView2
|
||||
# [microsoft.win32.registry]::SetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge\WebView2\BrowserExecutableFolder", "*", "%%SystemRoot%%\System32\Microsoft-Edge-WebView")
|
||||
|
||||
Uninstall-Process -Key '{F3017226-FE2A-4295-8BDF-00C3A9A7E4C5}'
|
||||
}
|
||||
|
||||
function Uninstall-EdgeUpdate {
|
||||
Remove-ItemProperty -Path "HKLM:\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Microsoft Edge Update" -Name "NoRemove" -ErrorAction SilentlyContinue | Out-Null
|
||||
|
||||
$registryPath = 'HKLM:\SOFTWARE\WOW6432Node\Microsoft\EdgeUpdate'
|
||||
if (!(Test-Path -Path $registryPath)) {
|
||||
Write-Host "Registry key not found: $registryPath"
|
||||
return
|
||||
}
|
||||
$uninstallCmdLine = (Get-ItemProperty -Path $registryPath).UninstallCmdLine
|
||||
|
||||
if ([string]::IsNullOrEmpty($uninstallCmdLine)) {
|
||||
Write-Host "Cannot find uninstall methods for $Mode"
|
||||
return
|
||||
}
|
||||
|
||||
Write-Output "Uninstalling: $uninstallCmdLine"
|
||||
Start-Process cmd.exe "/c $uninstallCmdLine" -WindowStyle Hidden -Wait
|
||||
}
|
||||
|
||||
Uninstall-Edge
|
||||
# "WebView" { Uninstall-WebView }
|
||||
# "EdgeUpdate" { Uninstall-EdgeUpdate }
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
||||
|
||||
<!-- END SECOND CUSTOM CONTENT -->
|
||||
|
||||
|
||||
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)
|
||||
|
@ -0,0 +1,73 @@
|
||||
# Remove Home and Gallery from explorer
|
||||
|
||||
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
|
||||
|
||||
Removes the Home and Gallery from explorer and sets This PC as default
|
||||
|
||||
<!-- BEGIN CUSTOM CONTENT -->
|
||||
|
||||
<!-- END CUSTOM CONTENT -->
|
||||
|
||||
<details>
|
||||
<summary>Preview Code</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"Content": "Remove Home and Gallery from explorer",
|
||||
"Description": "Removes the Home and Gallery from explorer and sets This PC as default",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a029_",
|
||||
"InvokeScript": [
|
||||
"
|
||||
REG DELETE \"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Desktop\\NameSpace\\{e88865ea-0e1c-4e20-9aa6-edcd0212c87c}\" /f
|
||||
REG DELETE \"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Desktop\\NameSpace\\{f874310e-b6b7-47dc-bc84-b9e6b38f5903}\" /f
|
||||
REG ADD \"HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\" /f /v \"LaunchTo\" /t REG_DWORD /d \"1\"
|
||||
"
|
||||
],
|
||||
"UndoScript": [
|
||||
"
|
||||
REG ADD \"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Desktop\\NameSpace\\{e88865ea-0e1c-4e20-9aa6-edcd0212c87c}\" /f /ve /t REG_SZ /d \"{e88865ea-0e1c-4e20-9aa6-edcd0212c87c}\"
|
||||
REG ADD \"HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Desktop\\NameSpace\\{f874310e-b6b7-47dc-bc84-b9e6b38f5903}\" /f /ve /t REG_SZ /d \"CLSID_MSGraphHomeFolder\"
|
||||
REG DELETE \"HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\" /f /v \"LaunchTo\"
|
||||
"
|
||||
],
|
||||
"link": "https://christitustech.github.io/winutil/dev/tweaks/z--Advanced-Tweaks---CAUTION/RemoveHomeGallery"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Invoke Script
|
||||
|
||||
```powershell
|
||||
|
||||
REG DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{e88865ea-0e1c-4e20-9aa6-edcd0212c87c}" /f
|
||||
REG DELETE "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{f874310e-b6b7-47dc-bc84-b9e6b38f5903}" /f
|
||||
REG ADD "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /f /v "LaunchTo" /t REG_DWORD /d "1"
|
||||
|
||||
|
||||
```
|
||||
## Undo Script
|
||||
|
||||
```powershell
|
||||
|
||||
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{e88865ea-0e1c-4e20-9aa6-edcd0212c87c}" /f /ve /t REG_SZ /d "{e88865ea-0e1c-4e20-9aa6-edcd0212c87c}"
|
||||
REG ADD "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{f874310e-b6b7-47dc-bc84-b9e6b38f5903}" /f /ve /t REG_SZ /d "CLSID_MSGraphHomeFolder"
|
||||
REG DELETE "HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced" /f /v "LaunchTo"
|
||||
|
||||
|
||||
```
|
||||
|
||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
||||
|
||||
<!-- END SECOND CUSTOM CONTENT -->
|
||||
|
||||
|
||||
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)
|
||||
|
219
docs/dev/tweaks/z--Advanced-Tweaks---CAUTION/RemoveOnedrive.md
Normal file
219
docs/dev/tweaks/z--Advanced-Tweaks---CAUTION/RemoveOnedrive.md
Normal file
@ -0,0 +1,219 @@
|
||||
# Remove OneDrive
|
||||
|
||||
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
|
||||
|
||||
Moves OneDrive files to Default Home Folders and Uninstalls it.
|
||||
|
||||
<!-- BEGIN CUSTOM CONTENT -->
|
||||
|
||||
<!-- END CUSTOM CONTENT -->
|
||||
|
||||
<details>
|
||||
<summary>Preview Code</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"Content": "Remove OneDrive",
|
||||
"Description": "Moves OneDrive files to Default Home Folders and Uninstalls it.",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a030_",
|
||||
"InvokeScript": [
|
||||
"
|
||||
$OneDrivePath = $($env:OneDrive)
|
||||
Write-Host \"Removing OneDrive\"
|
||||
$regPath = \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\OneDriveSetup.exe\"
|
||||
if (Test-Path $regPath) {
|
||||
$OneDriveUninstallString = Get-ItemPropertyValue \"$regPath\" -Name \"UninstallString\"
|
||||
$OneDriveExe, $OneDriveArgs = $OneDriveUninstallString.Split(\" \")
|
||||
Start-Process -FilePath $OneDriveExe -ArgumentList \"$OneDriveArgs /silent\" -NoNewWindow -Wait
|
||||
} else {
|
||||
Write-Host \"Onedrive dosn't seem to be installed anymore\" -ForegroundColor Red
|
||||
return
|
||||
}
|
||||
# Check if OneDrive got Uninstalled
|
||||
if (-not (Test-Path $regPath)) {
|
||||
Write-Host \"Copy downloaded Files from the OneDrive Folder to Root UserProfile\"
|
||||
Start-Process -FilePath powershell -ArgumentList \"robocopy '$($OneDrivePath)' '$($env:USERPROFILE.TrimEnd())\\' /mov /e /xj\" -NoNewWindow -Wait
|
||||
|
||||
Write-Host \"Removing OneDrive leftovers\"
|
||||
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$env:localappdata\\Microsoft\\OneDrive\"
|
||||
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$env:localappdata\\OneDrive\"
|
||||
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$env:programdata\\Microsoft OneDrive\"
|
||||
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$env:systemdrive\\OneDriveTemp\"
|
||||
reg delete \"HKEY_CURRENT_USER\\Software\\Microsoft\\OneDrive\" -f
|
||||
# check if directory is empty before removing:
|
||||
If ((Get-ChildItem \"$OneDrivePath\" -Recurse | Measure-Object).Count -eq 0) {
|
||||
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue \"$OneDrivePath\"
|
||||
}
|
||||
|
||||
Write-Host \"Remove Onedrive from explorer sidebar\"
|
||||
Set-ItemProperty -Path \"HKCR:\\CLSID\\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\" -Name \"System.IsPinnedToNameSpaceTree\" -Value 0
|
||||
Set-ItemProperty -Path \"HKCR:\\Wow6432Node\\CLSID\\{018D5C66-4533-4307-9B53-224DE2ED1FE6}\" -Name \"System.IsPinnedToNameSpaceTree\" -Value 0
|
||||
|
||||
Write-Host \"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-Host \"Removing startmenu entry\"
|
||||
Remove-Item -Force -ErrorAction SilentlyContinue \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\OneDrive.lnk\"
|
||||
|
||||
Write-Host \"Removing scheduled task\"
|
||||
Get-ScheduledTask -TaskPath '\\' -TaskName 'OneDrive*' -ea SilentlyContinue | Unregister-ScheduledTask -Confirm:$false
|
||||
|
||||
# Add Shell folders restoring default locations
|
||||
Write-Host \"Shell Fixing\"
|
||||
Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"AppData\" -Value \"$env:userprofile\\AppData\\Roaming\" -Type ExpandString
|
||||
Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Cache\" -Value \"$env:userprofile\\AppData\\Local\\Microsoft\\Windows\\INetCache\" -Type ExpandString
|
||||
Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Cookies\" -Value \"$env:userprofile\\AppData\\Local\\Microsoft\\Windows\\INetCookies\" -Type ExpandString
|
||||
Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Favorites\" -Value \"$env:userprofile\\Favorites\" -Type ExpandString
|
||||
Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"History\" -Value \"$env:userprofile\\AppData\\Local\\Microsoft\\Windows\\History\" -Type ExpandString
|
||||
Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Local AppData\" -Value \"$env:userprofile\\AppData\\Local\" -Type ExpandString
|
||||
Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"My Music\" -Value \"$env:userprofile\\Music\" -Type ExpandString
|
||||
Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"My Video\" -Value \"$env:userprofile\\Videos\" -Type ExpandString
|
||||
Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"NetHood\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Network Shortcuts\" -Type ExpandString
|
||||
Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"PrintHood\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Printer Shortcuts\" -Type ExpandString
|
||||
Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Programs\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\" -Type ExpandString
|
||||
Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Recent\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Recent\" -Type ExpandString
|
||||
Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"SendTo\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\SendTo\" -Type ExpandString
|
||||
Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Start Menu\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\" -Type ExpandString
|
||||
Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Startup\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\" -Type ExpandString
|
||||
Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Templates\" -Value \"$env:userprofile\\AppData\\Roaming\\Microsoft\\Windows\\Templates\" -Type ExpandString
|
||||
Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"{374DE290-123F-4565-9164-39C4925E467B}\" -Value \"$env:userprofile\\Downloads\" -Type ExpandString
|
||||
Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Desktop\" -Value \"$env:userprofile\\Desktop\" -Type ExpandString
|
||||
Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"My Pictures\" -Value \"$env:userprofile\\Pictures\" -Type ExpandString
|
||||
Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"Personal\" -Value \"$env:userprofile\\Documents\" -Type ExpandString
|
||||
Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"{F42EE2D3-909F-4907-8871-4C22FC0BF756}\" -Value \"$env:userprofile\\Documents\" -Type ExpandString
|
||||
Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\User Shell Folders\" -Name \"{0DDD015D-B06C-45D5-8C4C-F59713854639}\" -Value \"$env:userprofile\\Pictures\" -Type ExpandString
|
||||
Write-Host \"Restarting explorer\"
|
||||
taskkill.exe /F /IM \"explorer.exe\"
|
||||
Start-Process \"explorer.exe\"
|
||||
|
||||
Write-Host \"Waiting for explorer to complete loading\"
|
||||
Write-Host \"Please Note - The OneDrive folder at $OneDrivePath may still have items in it. You must manually delete it, but all the files should already be copied to the base user folder.\"
|
||||
Write-Host \"If there are Files missing afterwards, please Login to Onedrive.com and Download them manually\" -ForegroundColor Yellow
|
||||
Start-Sleep 5
|
||||
} else {
|
||||
Write-Host \"Something went Wrong during the Unistallation of OneDrive\" -ForegroundColor Red
|
||||
}
|
||||
"
|
||||
],
|
||||
"UndoScript": [
|
||||
"
|
||||
Write-Host \"Install OneDrive\"
|
||||
Start-Process -FilePath winget -ArgumentList \"install -e --accept-source-agreements --accept-package-agreements --silent Microsoft.OneDrive \" -NoNewWindow -Wait
|
||||
"
|
||||
],
|
||||
"link": "https://christitustech.github.io/winutil/dev/tweaks/z--Advanced-Tweaks---CAUTION/RemoveOnedrive"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Invoke Script
|
||||
|
||||
```powershell
|
||||
|
||||
$OneDrivePath = $($env:OneDrive)
|
||||
Write-Host "Removing OneDrive"
|
||||
$regPath = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall\OneDriveSetup.exe"
|
||||
if (Test-Path $regPath) {
|
||||
$OneDriveUninstallString = Get-ItemPropertyValue "$regPath" -Name "UninstallString"
|
||||
$OneDriveExe, $OneDriveArgs = $OneDriveUninstallString.Split(" ")
|
||||
Start-Process -FilePath $OneDriveExe -ArgumentList "$OneDriveArgs /silent" -NoNewWindow -Wait
|
||||
} else {
|
||||
Write-Host "Onedrive dosn't seem to be installed anymore" -ForegroundColor Red
|
||||
return
|
||||
}
|
||||
# Check if OneDrive got Uninstalled
|
||||
if (-not (Test-Path $regPath)) {
|
||||
Write-Host "Copy downloaded Files from the OneDrive Folder to Root UserProfile"
|
||||
Start-Process -FilePath powershell -ArgumentList "robocopy '$($OneDrivePath)' '$($env:USERPROFILE.TrimEnd())\' /mov /e /xj" -NoNewWindow -Wait
|
||||
|
||||
Write-Host "Removing OneDrive leftovers"
|
||||
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue "$env:localappdata\Microsoft\OneDrive"
|
||||
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue "$env:localappdata\OneDrive"
|
||||
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue "$env:programdata\Microsoft OneDrive"
|
||||
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue "$env:systemdrive\OneDriveTemp"
|
||||
reg delete "HKEY_CURRENT_USER\Software\Microsoft\OneDrive" -f
|
||||
# check if directory is empty before removing:
|
||||
If ((Get-ChildItem "$OneDrivePath" -Recurse | Measure-Object).Count -eq 0) {
|
||||
Remove-Item -Recurse -Force -ErrorAction SilentlyContinue "$OneDrivePath"
|
||||
}
|
||||
|
||||
Write-Host "Remove Onedrive from explorer sidebar"
|
||||
Set-ItemProperty -Path "HKCR:\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" -Name "System.IsPinnedToNameSpaceTree" -Value 0
|
||||
Set-ItemProperty -Path "HKCR:\Wow6432Node\CLSID\{018D5C66-4533-4307-9B53-224DE2ED1FE6}" -Name "System.IsPinnedToNameSpaceTree" -Value 0
|
||||
|
||||
Write-Host "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-Host "Removing startmenu entry"
|
||||
Remove-Item -Force -ErrorAction SilentlyContinue "$env:userprofile\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\OneDrive.lnk"
|
||||
|
||||
Write-Host "Removing scheduled task"
|
||||
Get-ScheduledTask -TaskPath '\' -TaskName 'OneDrive*' -ea SilentlyContinue | Unregister-ScheduledTask -Confirm:$false
|
||||
|
||||
# Add Shell folders restoring default locations
|
||||
Write-Host "Shell Fixing"
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "AppData" -Value "$env:userprofile\AppData\Roaming" -Type ExpandString
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "Cache" -Value "$env:userprofile\AppData\Local\Microsoft\Windows\INetCache" -Type ExpandString
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "Cookies" -Value "$env:userprofile\AppData\Local\Microsoft\Windows\INetCookies" -Type ExpandString
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "Favorites" -Value "$env:userprofile\Favorites" -Type ExpandString
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "History" -Value "$env:userprofile\AppData\Local\Microsoft\Windows\History" -Type ExpandString
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "Local AppData" -Value "$env:userprofile\AppData\Local" -Type ExpandString
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "My Music" -Value "$env:userprofile\Music" -Type ExpandString
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "My Video" -Value "$env:userprofile\Videos" -Type ExpandString
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "NetHood" -Value "$env:userprofile\AppData\Roaming\Microsoft\Windows\Network Shortcuts" -Type ExpandString
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "PrintHood" -Value "$env:userprofile\AppData\Roaming\Microsoft\Windows\Printer Shortcuts" -Type ExpandString
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "Programs" -Value "$env:userprofile\AppData\Roaming\Microsoft\Windows\Start Menu\Programs" -Type ExpandString
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "Recent" -Value "$env:userprofile\AppData\Roaming\Microsoft\Windows\Recent" -Type ExpandString
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "SendTo" -Value "$env:userprofile\AppData\Roaming\Microsoft\Windows\SendTo" -Type ExpandString
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "Start Menu" -Value "$env:userprofile\AppData\Roaming\Microsoft\Windows\Start Menu" -Type ExpandString
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "Startup" -Value "$env:userprofile\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup" -Type ExpandString
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "Templates" -Value "$env:userprofile\AppData\Roaming\Microsoft\Windows\Templates" -Type ExpandString
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "{374DE290-123F-4565-9164-39C4925E467B}" -Value "$env:userprofile\Downloads" -Type ExpandString
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "Desktop" -Value "$env:userprofile\Desktop" -Type ExpandString
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "My Pictures" -Value "$env:userprofile\Pictures" -Type ExpandString
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "Personal" -Value "$env:userprofile\Documents" -Type ExpandString
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "{F42EE2D3-909F-4907-8871-4C22FC0BF756}" -Value "$env:userprofile\Documents" -Type ExpandString
|
||||
Set-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "{0DDD015D-B06C-45D5-8C4C-F59713854639}" -Value "$env:userprofile\Pictures" -Type ExpandString
|
||||
Write-Host "Restarting explorer"
|
||||
taskkill.exe /F /IM "explorer.exe"
|
||||
Start-Process "explorer.exe"
|
||||
|
||||
Write-Host "Waiting for explorer to complete loading"
|
||||
Write-Host "Please Note - The OneDrive folder at $OneDrivePath may still have items in it. You must manually delete it, but all the files should already be copied to the base user folder."
|
||||
Write-Host "If there are Files missing afterwards, please Login to Onedrive.com and Download them manually" -ForegroundColor Yellow
|
||||
Start-Sleep 5
|
||||
} else {
|
||||
Write-Host "Something went Wrong during the Unistallation of OneDrive" -ForegroundColor Red
|
||||
}
|
||||
|
||||
|
||||
```
|
||||
## Undo Script
|
||||
|
||||
```powershell
|
||||
|
||||
Write-Host "Install OneDrive"
|
||||
Start-Process -FilePath winget -ArgumentList "install -e --accept-source-agreements --accept-package-agreements --silent Microsoft.OneDrive " -NoNewWindow -Wait
|
||||
|
||||
|
||||
```
|
||||
|
||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
||||
|
||||
<!-- END SECOND CUSTOM CONTENT -->
|
||||
|
||||
|
||||
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)
|
||||
|
@ -0,0 +1,79 @@
|
||||
# Set Classic Right-Click Menu
|
||||
|
||||
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
|
||||
|
||||
Great Windows 11 tweak to bring back good context menus when right clicking things in explorer.
|
||||
|
||||
<!-- BEGIN CUSTOM CONTENT -->
|
||||
|
||||
<!-- END CUSTOM CONTENT -->
|
||||
|
||||
<details>
|
||||
<summary>Preview Code</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"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": "a027_",
|
||||
"InvokeScript": [
|
||||
"
|
||||
New-Item -Path \"HKCU:\\Software\\Classes\\CLSID\\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\" -Name \"InprocServer32\" -force -value \"\"
|
||||
Write-Host Restarting explorer.exe ...
|
||||
$process = Get-Process -Name \"explorer\"
|
||||
Stop-Process -InputObject $process
|
||||
"
|
||||
],
|
||||
"UndoScript": [
|
||||
"
|
||||
Remove-Item -Path \"HKCU:\\Software\\Classes\\CLSID\\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\" -Recurse -Confirm:$false -Force
|
||||
# Restarting Explorer in the Undo Script might not be necessary, as the Registry change without restarting Explorer does work, but just to make sure.
|
||||
Write-Host Restarting explorer.exe ...
|
||||
$process = Get-Process -Name \"explorer\"
|
||||
Stop-Process -InputObject $process
|
||||
"
|
||||
],
|
||||
"link": "https://christitustech.github.io/winutil/dev/tweaks/z--Advanced-Tweaks---CAUTION/RightClickMenu"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Invoke Script
|
||||
|
||||
```powershell
|
||||
|
||||
New-Item -Path "HKCU:\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}" -Name "InprocServer32" -force -value ""
|
||||
Write-Host Restarting explorer.exe ...
|
||||
$process = Get-Process -Name "explorer"
|
||||
Stop-Process -InputObject $process
|
||||
|
||||
|
||||
```
|
||||
## Undo Script
|
||||
|
||||
```powershell
|
||||
|
||||
Remove-Item -Path "HKCU:\Software\Classes\CLSID\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}" -Recurse -Confirm:$false -Force
|
||||
# Restarting Explorer in the Undo Script might not be necessary, as the Registry change without restarting Explorer does work, but just to make sure.
|
||||
Write-Host Restarting explorer.exe ...
|
||||
$process = Get-Process -Name "explorer"
|
||||
Stop-Process -InputObject $process
|
||||
|
||||
|
||||
```
|
||||
|
||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
||||
|
||||
<!-- END SECOND CUSTOM CONTENT -->
|
||||
|
||||
|
||||
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)
|
||||
|
63
docs/dev/tweaks/z--Advanced-Tweaks---CAUTION/UTC.md
Normal file
63
docs/dev/tweaks/z--Advanced-Tweaks---CAUTION/UTC.md
Normal file
@ -0,0 +1,63 @@
|
||||
# Set Time to UTC (Dual Boot)
|
||||
|
||||
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
|
||||
|
||||
Essential for computers that are dual booting. Fixes the time sync with Linux Systems.
|
||||
|
||||
<!-- BEGIN CUSTOM CONTENT -->
|
||||
|
||||
<!-- END CUSTOM CONTENT -->
|
||||
|
||||
<details>
|
||||
<summary>Preview Code</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"Content": "Set Time to UTC (Dual Boot)",
|
||||
"Description": "Essential for computers that are dual booting. Fixes the time sync with Linux Systems.",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a027_",
|
||||
"registry": [
|
||||
{
|
||||
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation",
|
||||
"Name": "RealTimeIsUniversal",
|
||||
"Type": "DWord",
|
||||
"Value": "1",
|
||||
"OriginalValue": "0"
|
||||
}
|
||||
],
|
||||
"link": "https://christitustech.github.io/winutil/dev/tweaks/z--Advanced-Tweaks---CAUTION/UTC"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Registry Changes
|
||||
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
|
||||
|
||||
|
||||
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
|
||||
|
||||
### Registry Key: RealTimeIsUniversal
|
||||
|
||||
**Type:** DWord
|
||||
|
||||
**Original Value:** 0
|
||||
|
||||
**New Value:** 1
|
||||
|
||||
|
||||
|
||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
||||
|
||||
<!-- END SECOND CUSTOM CONTENT -->
|
||||
|
||||
|
||||
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)
|
||||
|
91
docs/dev/tweaks/z--Advanced-Tweaks---CAUTION/Undoall.md
Normal file
91
docs/dev/tweaks/z--Advanced-Tweaks---CAUTION/Undoall.md
Normal file
@ -0,0 +1,91 @@
|
||||
# Undo Selected Tweaks
|
||||
|
||||
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.**
|
||||
|
||||
|
||||
<!-- BEGIN CUSTOM CONTENT -->
|
||||
|
||||
<!-- END CUSTOM CONTENT -->
|
||||
|
||||
<details>
|
||||
<summary>Preview Code</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"Content": "Undo Selected Tweaks",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a042_",
|
||||
"Type": "Button",
|
||||
"link": "https://christitustech.github.io/winutil/dev/tweaks/z--Advanced-Tweaks---CAUTION/Undoall"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Function: Invoke-WPFundoall
|
||||
|
||||
```powershell
|
||||
function Invoke-WPFundoall {
|
||||
<#
|
||||
|
||||
.SYNOPSIS
|
||||
Undoes every selected tweak
|
||||
|
||||
#>
|
||||
|
||||
if($sync.ProcessRunning) {
|
||||
$msg = "[Invoke-WPFundoall] Install process is currently running."
|
||||
[System.Windows.MessageBox]::Show($msg, "Winutil", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Warning)
|
||||
return
|
||||
}
|
||||
|
||||
$tweaks = (Get-WinUtilCheckBoxes)["WPFtweaks"]
|
||||
|
||||
if ($tweaks.count -eq 0) {
|
||||
$msg = "Please check the tweaks you wish to undo."
|
||||
[System.Windows.MessageBox]::Show($msg, "Winutil", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Warning)
|
||||
return
|
||||
}
|
||||
|
||||
Invoke-WPFRunspace -ArgumentList $tweaks -DebugPreference $DebugPreference -ScriptBlock {
|
||||
param($tweaks, $DebugPreference)
|
||||
|
||||
$sync.ProcessRunning = $true
|
||||
if ($tweaks.count -eq 1) {
|
||||
$sync.form.Dispatcher.Invoke([action]{ Set-WinUtilTaskbaritem -state "Indeterminate" -value 0.01 -overlay "logo" })
|
||||
} else {
|
||||
$sync.form.Dispatcher.Invoke([action]{ Set-WinUtilTaskbaritem -state "Normal" -value 0.01 -overlay "logo" })
|
||||
}
|
||||
|
||||
|
||||
for ($i = 0; $i -lt $tweaks.Count; $i++) {
|
||||
Set-WinUtilProgressBar -Label "Undoing $($tweaks[$i])" -Percent ($i / $tweaks.Count * 100)
|
||||
Invoke-WinUtiltweaks $tweaks[$i] -undo $true
|
||||
$sync.form.Dispatcher.Invoke([action]{ Set-WinUtilTaskbaritem -value ($i/$tweaks.Count) })
|
||||
}
|
||||
|
||||
Set-WinUtilProgressBar -Label "Undo Tweaks Finished" -Percent 100
|
||||
$sync.ProcessRunning = $false
|
||||
$sync.form.Dispatcher.Invoke([action]{ Set-WinUtilTaskbaritem -state "None" -overlay "checkmark" })
|
||||
Write-Host "=================================="
|
||||
Write-Host "--- Undo Tweaks are Finished ---"
|
||||
Write-Host "=================================="
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
||||
|
||||
<!-- END SECOND CUSTOM CONTENT -->
|
||||
|
||||
|
||||
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)
|
||||
|
100
docs/dev/tweaks/z--Advanced-Tweaks---CAUTION/button.md
Normal file
100
docs/dev/tweaks/z--Advanced-Tweaks---CAUTION/button.md
Normal file
@ -0,0 +1,100 @@
|
||||
# Run Tweaks
|
||||
|
||||
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.**
|
||||
|
||||
|
||||
<!-- BEGIN CUSTOM CONTENT -->
|
||||
|
||||
<!-- END CUSTOM CONTENT -->
|
||||
|
||||
<details>
|
||||
<summary>Preview Code</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"Content": "Run Tweaks",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a041_",
|
||||
"Type": "Button",
|
||||
"link": "https://christitustech.github.io/winutil/dev/tweaks/z--Advanced-Tweaks---CAUTION/button"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
## Function: Invoke-WPFtweaksbutton
|
||||
|
||||
```powershell
|
||||
function Invoke-WPFtweaksbutton {
|
||||
<#
|
||||
|
||||
.SYNOPSIS
|
||||
Invokes the functions associated with each group of checkboxes
|
||||
|
||||
#>
|
||||
|
||||
if($sync.ProcessRunning) {
|
||||
$msg = "[Invoke-WPFtweaksbutton] Install process is currently running."
|
||||
[System.Windows.MessageBox]::Show($msg, "Winutil", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Warning)
|
||||
return
|
||||
}
|
||||
|
||||
$Tweaks = (Get-WinUtilCheckBoxes)["WPFTweaks"]
|
||||
|
||||
Set-WinUtilDNS -DNSProvider $sync["WPFchangedns"].text
|
||||
|
||||
if ($tweaks.count -eq 0 -and $sync["WPFchangedns"].text -eq "Default") {
|
||||
$msg = "Please check the tweaks you wish to perform."
|
||||
[System.Windows.MessageBox]::Show($msg, "Winutil", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Warning)
|
||||
return
|
||||
}
|
||||
|
||||
Write-Debug "Number of tweaks to process: $($Tweaks.Count)"
|
||||
|
||||
Invoke-WPFRunspace -ArgumentList $Tweaks -DebugPreference $DebugPreference -ScriptBlock {
|
||||
param($Tweaks, $DebugPreference)
|
||||
Write-Debug "Inside Number of tweaks to process: $($Tweaks.Count)"
|
||||
|
||||
$sync.ProcessRunning = $true
|
||||
|
||||
if ($Tweaks.count -eq 1) {
|
||||
$sync.form.Dispatcher.Invoke([action]{ Set-WinUtilTaskbaritem -state "Indeterminate" -value 0.01 -overlay "logo" })
|
||||
} else {
|
||||
$sync.form.Dispatcher.Invoke([action]{ Set-WinUtilTaskbaritem -state "Normal" -value 0.01 -overlay "logo" })
|
||||
}
|
||||
# Execute other selected tweaks
|
||||
|
||||
for ($i = 0; $i -lt $Tweaks.Count; $i++) {
|
||||
Set-WinUtilProgressBar -Label "Applying $($tweaks[$i])" -Percent ($i / $Tweaks.Count * 100)
|
||||
Invoke-WinUtilTweaks $tweaks[$i]$sync.form.Dispatcher.Invoke([action]{ Set-WinUtilTaskbaritem -value ($i/$Tweaks.Count) })
|
||||
}
|
||||
Set-WinUtilProgressBar -Label "Tweaks finished" -Percent 100
|
||||
$sync.ProcessRunning = $false
|
||||
$sync.form.Dispatcher.Invoke([action]{ Set-WinUtilTaskbaritem -state "None" -overlay "checkmark" })
|
||||
Write-Host "================================="
|
||||
Write-Host "-- Tweaks are Finished ---"
|
||||
Write-Host "================================="
|
||||
|
||||
# $ButtonType = [System.Windows.MessageBoxButton]::OK
|
||||
# $MessageboxTitle = "Tweaks are Finished "
|
||||
# $Messageboxbody = ("Done")
|
||||
# $MessageIcon = [System.Windows.MessageBoxImage]::Information
|
||||
# [System.Windows.MessageBox]::Show($Messageboxbody, $MessageboxTitle, $ButtonType, $MessageIcon)
|
||||
}
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
|
||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
||||
|
||||
<!-- END SECOND CUSTOM CONTENT -->
|
||||
|
||||
|
||||
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)
|
||||
|
38
docs/dev/tweaks/z--Advanced-Tweaks---CAUTION/changedns.md
Normal file
38
docs/dev/tweaks/z--Advanced-Tweaks---CAUTION/changedns.md
Normal file
@ -0,0 +1,38 @@
|
||||
# DNS
|
||||
|
||||
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.**
|
||||
|
||||
|
||||
<!-- BEGIN CUSTOM CONTENT -->
|
||||
|
||||
<!-- END CUSTOM CONTENT -->
|
||||
|
||||
<details>
|
||||
<summary>Preview Code</summary>
|
||||
|
||||
```json
|
||||
{
|
||||
"Content": "DNS",
|
||||
"category": "z__Advanced Tweaks - CAUTION",
|
||||
"panel": "1",
|
||||
"Order": "a040_",
|
||||
"Type": "Combobox",
|
||||
"ComboItems": "Default DHCP Google Cloudflare Cloudflare_Malware Cloudflare_Malware_Adult Open_DNS Quad9 AdGuard_Ads_Trackers AdGuard_Ads_Trackers_Malware_Adult",
|
||||
"link": "https://christitustech.github.io/winutil/dev/tweaks/z--Advanced-Tweaks---CAUTION/changedns"
|
||||
}
|
||||
```
|
||||
|
||||
</details>
|
||||
|
||||
|
||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
||||
|
||||
<!-- END SECOND CUSTOM CONTENT -->
|
||||
|
||||
|
||||
[View the JSON file](https://github.com/ChrisTitusTech/winutil/tree/main/config/tweaks.json)
|
||||
|
Reference in New Issue
Block a user