Compare commits
56 Commits
79ee9db8fe
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
29efb989bd | ||
|
|
99eb70d81b | ||
|
|
9013753d88 | ||
|
|
8ad96a9b6e | ||
|
|
8ed3a31424 | ||
|
|
424d4030c1 | ||
|
|
f88c9be70d | ||
|
|
bc4cd84127 | ||
|
|
54b4bcdda1 | ||
|
|
c5c23d8d18 | ||
|
|
28e84af33d | ||
|
|
832af914e9 | ||
|
|
6d9ed9026d | ||
|
|
9e877afe0e | ||
|
|
0c0ced381a | ||
|
|
8ebd127857 | ||
|
|
25a392877f | ||
|
|
ef2c91b616 | ||
|
|
b52ead87f4 | ||
|
|
2dcfc2b109 | ||
|
|
59a9c59064 | ||
|
|
fcc57fde50 | ||
|
|
06e5477d0e | ||
|
|
a5271597e9 | ||
|
|
d841792f8d | ||
|
|
132260ab96 | ||
|
|
919b2e0b8f | ||
|
|
22e083182d | ||
|
|
2ec37f952a | ||
|
|
aa719b49bf | ||
|
|
e9a6cd32d8 | ||
|
|
b02c7f3eab | ||
|
|
eb29dfced8 | ||
|
|
f9b01fdc81 | ||
|
|
61a80e270d | ||
|
|
a31c9cb235 | ||
|
|
2587a98848 | ||
|
|
a5cf3a2ba7 | ||
|
|
f59598cf07 | ||
|
|
66eaaaf9bf | ||
|
|
1b19311c2e | ||
|
|
e193eca64d | ||
|
|
df0b511a24 | ||
|
|
a017854a55 | ||
|
|
85f652ad6f | ||
|
|
38cec9bf3f | ||
|
|
a20719b65b | ||
|
|
148360305c | ||
|
|
644fa3975a | ||
|
|
2e4124b903 | ||
|
|
fac0d359f1 | ||
|
|
fe28e4064f | ||
|
|
1734241568 | ||
|
|
e008f63674 | ||
|
|
3af367ca28 | ||
|
|
ea8e178964 |
61
.github/CODEOWNERS
vendored
@@ -1,59 +1,2 @@
|
|||||||
# This is a comment.
|
# Chris rules EVERYTHING (including paths listed below)
|
||||||
# Each line is a file pattern followed by one or more owners.
|
* @ChrisTitusTech
|
||||||
|
|
||||||
# These owners will be the default owners for everything in
|
|
||||||
# the repo. Unless a later match takes precedence,
|
|
||||||
# @global-owner1 and @global-owner2 will be requested for
|
|
||||||
# review when someone opens a pull request.
|
|
||||||
* @ChrisTitusTech
|
|
||||||
|
|
||||||
# Order is important; the last matching pattern takes the most
|
|
||||||
# precedence. When someone opens a pull request that only
|
|
||||||
# modifies JS files, only @js-owner and not the global
|
|
||||||
# owner(s) will be requested for a review.
|
|
||||||
# *.js @js-owner #This is an inline comment.
|
|
||||||
|
|
||||||
# You can also use email addresses if you prefer. They'll be
|
|
||||||
# used to look up users just like we do for commit author
|
|
||||||
# emails.
|
|
||||||
# *.go docs@example.com
|
|
||||||
|
|
||||||
# Teams can be specified as code owners as well. Teams should
|
|
||||||
# be identified in the format @org/team-name. Teams must have
|
|
||||||
# explicit write access to the repository. In this example,
|
|
||||||
# the octocats team in the octo-org organization owns all .txt files.
|
|
||||||
# *.txt @octo-org/octocats
|
|
||||||
|
|
||||||
# In this example, @doctocat owns any files in the build/logs
|
|
||||||
# directory at the root of the repository and any of its
|
|
||||||
# subdirectories.
|
|
||||||
# /build/logs/ @doctocat
|
|
||||||
|
|
||||||
# The `docs/*` pattern will match files like
|
|
||||||
# `docs/getting-started.md` but not further nested files like
|
|
||||||
# `docs/build-app/troubleshooting.md`.
|
|
||||||
# docs/* docs@example.com
|
|
||||||
|
|
||||||
# In this example, @octocat owns any file in an apps directory
|
|
||||||
# anywhere in your repository.
|
|
||||||
# apps/ @octocat
|
|
||||||
|
|
||||||
# In this example, @doctocat owns any file in the `/docs`
|
|
||||||
# directory in the root of your repository and any of its
|
|
||||||
# subdirectories.
|
|
||||||
# /docs/ @doctocat
|
|
||||||
|
|
||||||
# In this example, any change inside the `/scripts` directory
|
|
||||||
# will require approval from @doctocat or @octocat.
|
|
||||||
# /scripts/ @doctocat @octocat
|
|
||||||
|
|
||||||
# In this example, @octocat owns any file in a `/logs` directory such as
|
|
||||||
# `/build/logs`, `/scripts/logs`, and `/deeply/nested/logs`. Any changes
|
|
||||||
# in a `/logs` directory will require approval from @octocat.
|
|
||||||
# **/logs @octocat
|
|
||||||
|
|
||||||
# In this example, @octocat owns any file in the `/apps`
|
|
||||||
# directory in the root of your repository except for the `/apps/github`
|
|
||||||
# subdirectory, as its owners are left empty.
|
|
||||||
# /apps/ @octocat
|
|
||||||
# /apps/github
|
|
||||||
17
.github/PULL_REQUEST_TEMPLATE.md
vendored
@@ -4,30 +4,19 @@
|
|||||||
- [ ] New feature
|
- [ ] New feature
|
||||||
- [ ] Bug fix
|
- [ ] Bug fix
|
||||||
- [ ] Documentation update
|
- [ ] Documentation update
|
||||||
- [ ] Refactoring
|
|
||||||
- [ ] Hotfix
|
- [ ] Hotfix
|
||||||
- [ ] Security patch
|
|
||||||
- [ ] UI/UX improvement
|
- [ ] UI/UX improvement
|
||||||
|
|
||||||
|
<!-- This automatically adds labels to your PR based on the selections above. -->
|
||||||
|
|
||||||
## Description
|
## Description
|
||||||
<!--[Provide a detailed explanation of the changes you have made. Include the reasons behind these changes and any relevant context. Link any related issues.]-->
|
<!--[Provide a detailed explanation of the changes you have made. Include the reasons behind these changes and any relevant context. Link any related issues.]-->
|
||||||
|
|
||||||
## Testing
|
|
||||||
<!--[Detail the testing you have performed to ensure that these changes function as intended. Include information about any added tests.]-->
|
|
||||||
|
|
||||||
## Impact
|
|
||||||
<!--[Discuss the impact of your changes on the project. This might include effects on performance, new dependencies, or changes in behaviour.]-->
|
|
||||||
|
|
||||||
## Issue related to PR
|
## Issue related to PR
|
||||||
<!--[What issue/discussion is related to this PR (if any)]-->
|
<!--[What issue/discussion is related to this PR (if any)]-->
|
||||||
- Resolves #
|
- Resolves #
|
||||||
|
|
||||||
## Additional Information
|
|
||||||
<!--[Any additional information that reviewers should be aware of.]-->
|
|
||||||
|
|
||||||
## Checklist
|
## Checklist
|
||||||
- [ ] My code adheres to the coding and style guidelines of the project.
|
- [ ] My code adheres to the coding and style guidelines of the project.
|
||||||
- [ ] I have performed a self-review of my own code.
|
|
||||||
- [ ] I have commented my code, particularly in hard-to-understand areas.
|
- [ ] I have commented my code, particularly in hard-to-understand areas.
|
||||||
- [ ] I have made corresponding changes to the documentation.
|
- [ ] I have made corresponding changes to the documentation.
|
||||||
- [ ] My changes generate no errors/warnings/merge conflicts.
|
|
||||||
12
.github/release-drafter.yml
vendored
@@ -4,15 +4,16 @@ categories:
|
|||||||
labels:
|
labels:
|
||||||
- 'feature'
|
- 'feature'
|
||||||
- 'enhancement'
|
- 'enhancement'
|
||||||
|
- 'new feature'
|
||||||
- title: '🐛 Bug Fixes'
|
- title: '🐛 Bug Fixes'
|
||||||
labels:
|
labels:
|
||||||
- 'fix'
|
- 'hotfix'
|
||||||
- 'bugfix'
|
- 'bugfix'
|
||||||
- 'bug'
|
- 'bug'
|
||||||
- title: '📚 Documentation'
|
- title: '📚 Documentation'
|
||||||
label: 'documentation'
|
label: 'documentation'
|
||||||
- title: '🔒 Security'
|
- title: '🎨 UI/UX Improvements'
|
||||||
label: 'security'
|
label: 'ui update'
|
||||||
change-template: '- $TITLE @$AUTHOR (#$NUMBER)'
|
change-template: '- $TITLE @$AUTHOR (#$NUMBER)'
|
||||||
template: |
|
template: |
|
||||||
## Changes
|
## Changes
|
||||||
@@ -31,7 +32,7 @@ autolabeler:
|
|||||||
- '/fix\/.+/'
|
- '/fix\/.+/'
|
||||||
title:
|
title:
|
||||||
- '/fix/i'
|
- '/fix/i'
|
||||||
- label: 'enhancement'
|
- label: 'new feature'
|
||||||
branch:
|
branch:
|
||||||
- '/feature\/.+/'
|
- '/feature\/.+/'
|
||||||
body:
|
body:
|
||||||
@@ -40,9 +41,6 @@ autolabeler:
|
|||||||
files:
|
files:
|
||||||
- '**/*.md'
|
- '**/*.md'
|
||||||
- 'docs/**/*'
|
- 'docs/**/*'
|
||||||
- label: 'security'
|
|
||||||
branch:
|
|
||||||
- '/security\/.+/'
|
|
||||||
replacers:
|
replacers:
|
||||||
- search: /"/g
|
- search: /"/g
|
||||||
replace: ''
|
replace: ''
|
||||||
|
|||||||
15
.github/workflows/docs.yaml
vendored
@@ -7,7 +7,7 @@ on:
|
|||||||
branches:
|
branches:
|
||||||
- main
|
- main
|
||||||
paths:
|
paths:
|
||||||
- 'docs/**' # ONLY triggers if files in the 'docs' folder are changed
|
- "docs/**" # ONLY triggers if files in the 'docs' folder are changed
|
||||||
|
|
||||||
# Allows you to run this workflow manually from the Actions tab
|
# Allows you to run this workflow manually from the Actions tab
|
||||||
workflow_dispatch:
|
workflow_dispatch:
|
||||||
@@ -34,7 +34,7 @@ jobs:
|
|||||||
build:
|
build:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
env:
|
env:
|
||||||
HUGO_VERSION: 0.145.0
|
HUGO_VERSION: 0.147.7
|
||||||
HUGO_ENVIRONMENT: production
|
HUGO_ENVIRONMENT: production
|
||||||
TZ: America/Chicago
|
TZ: America/Chicago
|
||||||
steps:
|
steps:
|
||||||
@@ -43,7 +43,7 @@ jobs:
|
|||||||
wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \
|
wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \
|
||||||
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb
|
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v6
|
||||||
with:
|
with:
|
||||||
submodules: recursive
|
submodules: recursive
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
@@ -54,13 +54,12 @@ jobs:
|
|||||||
run: "cd docs && [[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true"
|
run: "cd docs && [[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true"
|
||||||
- name: Cache Restore
|
- name: Cache Restore
|
||||||
id: cache-restore
|
id: cache-restore
|
||||||
uses: actions/cache/restore@v4
|
uses: actions/cache/restore@v5
|
||||||
with:
|
with:
|
||||||
path: |
|
path: |
|
||||||
${{ runner.temp }}/hugo_cache
|
${{ runner.temp }}/hugo_cache
|
||||||
key: hugo-${{ github.run_id }}
|
key: hugo-${{ github.run_id }}
|
||||||
restore-keys:
|
restore-keys: hugo-
|
||||||
hugo-
|
|
||||||
- name: Build with Hugo
|
- name: Build with Hugo
|
||||||
run: |
|
run: |
|
||||||
hugo \
|
hugo \
|
||||||
@@ -71,13 +70,13 @@ jobs:
|
|||||||
--cacheDir "${{ runner.temp }}/hugo_cache"
|
--cacheDir "${{ runner.temp }}/hugo_cache"
|
||||||
- name: Cache Save
|
- name: Cache Save
|
||||||
id: cache-save
|
id: cache-save
|
||||||
uses: actions/cache/save@v4
|
uses: actions/cache/save@v5
|
||||||
with:
|
with:
|
||||||
path: |
|
path: |
|
||||||
${{ runner.temp }}/hugo_cache
|
${{ runner.temp }}/hugo_cache
|
||||||
key: ${{ steps.cache-restore.outputs.cache-primary-key }}
|
key: ${{ steps.cache-restore.outputs.cache-primary-key }}
|
||||||
- name: Upload artifact
|
- name: Upload artifact
|
||||||
uses: actions/upload-pages-artifact@v3
|
uses: actions/upload-pages-artifact@v4
|
||||||
with:
|
with:
|
||||||
path: ./docs/public
|
path: ./docs/public
|
||||||
|
|
||||||
|
|||||||
2
.github/workflows/issue-slash-commands.yaml
vendored
@@ -67,7 +67,7 @@ jobs:
|
|||||||
id: check_user
|
id: check_user
|
||||||
if: env.command == 'true'
|
if: env.command == 'true'
|
||||||
run: |
|
run: |
|
||||||
ALLOWED_USERS=("ChrisTitusTech" "og-mrk" "Marterich" "MyDrift-user" "Real-MullaC" "CodingWonders")
|
ALLOWED_USERS=("ChrisTitusTech" "og-mrk" "Marterich" "MyDrift-user" "Real-MullaC" "CodingWonders" "GabiNun")
|
||||||
if [[ " ${ALLOWED_USERS[@]} " =~ " ${{ github.event.comment.user.login }} " ]]; then
|
if [[ " ${ALLOWED_USERS[@]} " =~ " ${{ github.event.comment.user.login }} " ]]; then
|
||||||
echo "user=true" >> $GITHUB_ENV
|
echo "user=true" >> $GITHUB_ENV
|
||||||
else
|
else
|
||||||
|
|||||||
45
.github/workflows/label-pr.yaml
vendored
Normal file
@@ -0,0 +1,45 @@
|
|||||||
|
name: Label PRs by Type of Change
|
||||||
|
|
||||||
|
on:
|
||||||
|
pull_request_target:
|
||||||
|
types: [opened, edited, synchronize]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
label-pr:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
permissions:
|
||||||
|
pull-requests: write
|
||||||
|
issues: write
|
||||||
|
contents: read # Often needed for github-script
|
||||||
|
steps:
|
||||||
|
- name: Check PR body for Type of Change
|
||||||
|
uses: actions/github-script@v7
|
||||||
|
with:
|
||||||
|
script: |
|
||||||
|
const prBody = context.payload.pull_request.body || '';
|
||||||
|
const labelsToAdd = [];
|
||||||
|
|
||||||
|
if (/\[x\]\s*New feature/i.test(prBody)) {
|
||||||
|
labelsToAdd.push('new feature');
|
||||||
|
}
|
||||||
|
if (/\[x\]\s*Bug fix/i.test(prBody)) {
|
||||||
|
labelsToAdd.push('bug');
|
||||||
|
}
|
||||||
|
if (/\[x\]\s*Documentation update/i.test(prBody)) {
|
||||||
|
labelsToAdd.push('documentation');
|
||||||
|
}
|
||||||
|
if (/\[x\]\s*Hotfix/i.test(prBody)) {
|
||||||
|
labelsToAdd.push('hotfix');
|
||||||
|
}
|
||||||
|
if (/\[x\]\s*UI\/UX improvement/i.test(prBody)) {
|
||||||
|
labelsToAdd.push('ui update');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (labelsToAdd.length > 0) {
|
||||||
|
await github.rest.issues.addLabels({
|
||||||
|
owner: context.repo.owner,
|
||||||
|
repo: context.repo.repo,
|
||||||
|
issue_number: context.payload.pull_request.number,
|
||||||
|
labels: labelsToAdd
|
||||||
|
});
|
||||||
|
}
|
||||||
2
.github/workflows/pre-release.yaml
vendored
@@ -56,7 +56,7 @@ jobs:
|
|||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
with:
|
with:
|
||||||
config-name: release-drafter.yml
|
config-name: release-drafter.yml
|
||||||
version: ${{ env.VERSION }} # Pass the version variable
|
version: ${{ env.VERSION }}
|
||||||
|
|
||||||
- name: Create and Upload Release
|
- name: Create and Upload Release
|
||||||
id: create_release
|
id: create_release
|
||||||
|
|||||||
7
.gitignore
vendored
@@ -55,4 +55,9 @@ winutil.ps1
|
|||||||
|
|
||||||
binary/
|
binary/
|
||||||
|
|
||||||
.preprocessor_hashes.json
|
.preprocessor_hashes.json
|
||||||
|
|
||||||
|
# Hugo Files
|
||||||
|
docs/public/
|
||||||
|
docs/.hugo_build.lock
|
||||||
|
docs/resources/
|
||||||
12
Compile.ps1
@@ -36,15 +36,6 @@ function Update-Progress {
|
|||||||
Write-Progress -Activity $Activity -Status $StatusMessage -PercentComplete $Percent
|
Write-Progress -Activity $Activity -Status $StatusMessage -PercentComplete $Percent
|
||||||
}
|
}
|
||||||
|
|
||||||
$header = @"
|
|
||||||
################################################################################################################
|
|
||||||
### ###
|
|
||||||
### WARNING: This file is automatically generated DO NOT modify this file directly as it will be overwritten ###
|
|
||||||
### ###
|
|
||||||
################################################################################################################
|
|
||||||
"@
|
|
||||||
|
|
||||||
|
|
||||||
Update-Progress "Pre-req: Running Preprocessor..." 0
|
Update-Progress "Pre-req: Running Preprocessor..." 0
|
||||||
|
|
||||||
# Dot source the 'Invoke-Preprocessing' Function from 'tools/Invoke-Preprocessing.ps1' Script
|
# Dot source the 'Invoke-Preprocessing' Function from 'tools/Invoke-Preprocessing.ps1' Script
|
||||||
@@ -76,9 +67,6 @@ Invoke-Preprocessing -WorkingDir "$workingdir" -ExcludedFiles $excludedFiles -Pr
|
|||||||
Update-Progress "Pre-req: Allocating Memory" 0
|
Update-Progress "Pre-req: Allocating Memory" 0
|
||||||
$script_content = [System.Collections.Generic.List[string]]::new()
|
$script_content = [System.Collections.Generic.List[string]]::new()
|
||||||
|
|
||||||
Update-Progress "Adding: Header" 5
|
|
||||||
$script_content.Add($header)
|
|
||||||
|
|
||||||
Update-Progress "Adding: Version" 10
|
Update-Progress "Adding: Version" 10
|
||||||
$script_content.Add($(Get-Content "scripts\start.ps1").replace('#{replaceme}',"$(Get-Date -Format yy.MM.dd)"))
|
$script_content.Add($(Get-Content "scripts\start.ps1").replace('#{replaceme}',"$(Get-Date -Format yy.MM.dd)"))
|
||||||
|
|
||||||
|
|||||||
@@ -39,9 +39,6 @@ If you have Issues, refer to [Known Issues](https://winutil.christitus.com/known
|
|||||||
|
|
||||||
## 🎓 Documentation
|
## 🎓 Documentation
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
> To contribute to the documentation, please visit [WinUtil Docs Repo](https://github.com/Chris-Titus-Docs/winutil-docs) for more info.
|
|
||||||
|
|
||||||
### [WinUtil Official Documentation](https://winutil.christitus.com/)
|
### [WinUtil Official Documentation](https://winutil.christitus.com/)
|
||||||
|
|
||||||
### [YouTube Tutorial](https://www.youtube.com/watch?v=6UQZ5oQg8XA)
|
### [YouTube Tutorial](https://www.youtube.com/watch?v=6UQZ5oQg8XA)
|
||||||
@@ -79,7 +76,7 @@ You'll see a new file named `winutil.ps1`, which's created by `Compile.ps1` scri
|
|||||||
|
|
||||||
These are the sponsors that help keep this project alive with monthly contributions.
|
These are the sponsors that help keep this project alive with monthly contributions.
|
||||||
|
|
||||||
<!-- sponsors --><a href="https://github.com/markamos"><img src="https://github.com/markamos.png" width="60px" alt="User avatar: Mark Amos" /></a><a href="https://github.com/dwelfusius"><img src="https://github.com/dwelfusius.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/mews-se"><img src="https://github.com/mews-se.png" width="60px" alt="User avatar: Martin Stockzell" /></a><a href="https://github.com/jdiegmueller"><img src="https://github.com/jdiegmueller.png" width="60px" alt="User avatar: Jason A. Diegmueller" /></a><a href="https://github.com/robertsandrock"><img src="https://github.com/robertsandrock.png" width="60px" alt="User avatar: RMS" /></a><a href="https://github.com/KenichiQaz"><img src="https://github.com/KenichiQaz.png" width="60px" alt="User avatar: Stefan" /></a><a href="https://github.com/paulsheets"><img src="https://github.com/paulsheets.png" width="60px" alt="User avatar: Paul" /></a><a href="https://github.com/djones369"><img src="https://github.com/djones369.png" width="60px" alt="User avatar: Dave J (WhamGeek)" /></a><a href="https://github.com/anthonymendez"><img src="https://github.com/anthonymendez.png" width="60px" alt="User avatar: Anthony Mendez" /></a><a href="https://github.com/FatBastard0"><img src="https://github.com/FatBastard0.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/DursleyGuy"><img src="https://github.com/DursleyGuy.png" width="60px" alt="User avatar: DursleyGuy" /></a><a href="https://github.com/quaszi"><img src="https://github.com/quaszi.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/DwayneTheRockLobster1"><img src="https://github.com/DwayneTheRockLobster1.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/KieraKujisawa"><img src="https://github.com/KieraKujisawa.png" width="60px" alt="User avatar: Kiera Meredith" /></a><a href="https://github.com/TaNorbs"><img src="https://github.com/TaNorbs.png" width="60px" alt="User avatar: Norbs" /></a><!-- sponsors -->
|
<!-- sponsors --><a href="https://github.com/markamos"><img src="https://github.com/markamos.png" width="60px" alt="User avatar: Mark Amos" /></a><a href="https://github.com/dwelfusius"><img src="https://github.com/dwelfusius.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/mews-se"><img src="https://github.com/mews-se.png" width="60px" alt="User avatar: Martin Stockzell" /></a><a href="https://github.com/jdiegmueller"><img src="https://github.com/jdiegmueller.png" width="60px" alt="User avatar: Jason A. Diegmueller" /></a><a href="https://github.com/robertsandrock"><img src="https://github.com/robertsandrock.png" width="60px" alt="User avatar: RMS" /></a><a href="https://github.com/KenichiQaz"><img src="https://github.com/KenichiQaz.png" width="60px" alt="User avatar: Stefan" /></a><a href="https://github.com/paulsheets"><img src="https://github.com/paulsheets.png" width="60px" alt="User avatar: Paul" /></a><a href="https://github.com/djones369"><img src="https://github.com/djones369.png" width="60px" alt="User avatar: Dave J (WhamGeek)" /></a><a href="https://github.com/anthonymendez"><img src="https://github.com/anthonymendez.png" width="60px" alt="User avatar: Anthony Mendez" /></a><a href="https://github.com/FatBastard0"><img src="https://github.com/FatBastard0.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/DursleyGuy"><img src="https://github.com/DursleyGuy.png" width="60px" alt="User avatar: DursleyGuy" /></a><a href="https://github.com/quaszi"><img src="https://github.com/quaszi.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/DwayneTheRockLobster1"><img src="https://github.com/DwayneTheRockLobster1.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/KieraKujisawa"><img src="https://github.com/KieraKujisawa.png" width="60px" alt="User avatar: Kiera Meredith" /></a><a href="https://github.com/andrewpayne68"><img src="https://github.com/andrewpayne68.png" width="60px" alt="User avatar: Andrew P" /></a><!-- sponsors -->
|
||||||
|
|
||||||
## 🏅 Thanks to all Contributors
|
## 🏅 Thanks to all Contributors
|
||||||
Thanks a lot for spending your time helping Winutil grow. Thanks a lot! Keep rocking 🍻.
|
Thanks a lot for spending your time helping Winutil grow. Thanks a lot! Keep rocking 🍻.
|
||||||
|
|||||||
@@ -552,6 +552,14 @@
|
|||||||
"link": "https://espanso.org/",
|
"link": "https://espanso.org/",
|
||||||
"winget": "Espanso.Espanso"
|
"winget": "Espanso.Espanso"
|
||||||
},
|
},
|
||||||
|
"ffmpeg": {
|
||||||
|
"category": "Utilities",
|
||||||
|
"choco": "na",
|
||||||
|
"content": "eibol.FFmpegBatchAVConverter",
|
||||||
|
"description": "FFmpeg Batch AV Converter is a universal audio and video encoder, that allows to use the full potential of ffmpeg command line with a few mouse clicks in a convenient GUI with drag and drop, progress information.",
|
||||||
|
"link": "https://ffmpeg-batch.sourceforge.io/",
|
||||||
|
"winget": "eibol.FFmpegBatchAVConverter"
|
||||||
|
},
|
||||||
"falkon": {
|
"falkon": {
|
||||||
"category": "Browsers",
|
"category": "Browsers",
|
||||||
"choco": "falkon",
|
"choco": "falkon",
|
||||||
@@ -912,6 +920,14 @@
|
|||||||
"link": "https://www.cpuid.com/softwares/hwmonitor.html",
|
"link": "https://www.cpuid.com/softwares/hwmonitor.html",
|
||||||
"winget": "CPUID.HWMonitor"
|
"winget": "CPUID.HWMonitor"
|
||||||
},
|
},
|
||||||
|
"imhex": {
|
||||||
|
"category": "Development",
|
||||||
|
"choco": "na",
|
||||||
|
"content": "ImHex (Hex Editor)",
|
||||||
|
"description": "A modern, featureful Hex Editor for Reverse Engineers and Developers.",
|
||||||
|
"link": "https://imhex.werwolv.net/",
|
||||||
|
"winget": "WerWolv.ImHex"
|
||||||
|
},
|
||||||
"imageglass": {
|
"imageglass": {
|
||||||
"category": "Multimedia Tools",
|
"category": "Multimedia Tools",
|
||||||
"choco": "imageglass",
|
"choco": "imageglass",
|
||||||
@@ -1774,7 +1790,7 @@
|
|||||||
"content": "Python3",
|
"content": "Python3",
|
||||||
"description": "Python is a versatile programming language used for web development, data analysis, artificial intelligence, and more.",
|
"description": "Python is a versatile programming language used for web development, data analysis, artificial intelligence, and more.",
|
||||||
"link": "https://www.python.org/",
|
"link": "https://www.python.org/",
|
||||||
"winget": "Python.Python.3.13"
|
"winget": "Python.Python.3.14"
|
||||||
},
|
},
|
||||||
"qbittorrent": {
|
"qbittorrent": {
|
||||||
"category": "Utilities",
|
"category": "Utilities",
|
||||||
@@ -2085,8 +2101,8 @@
|
|||||||
"choco": "synctrayzor",
|
"choco": "synctrayzor",
|
||||||
"content": "SyncTrayzor",
|
"content": "SyncTrayzor",
|
||||||
"description": "Windows tray utility / filesystem watcher / launcher for Syncthing",
|
"description": "Windows tray utility / filesystem watcher / launcher for Syncthing",
|
||||||
"link": "https://github.com/canton7/SyncTrayzor/",
|
"link": "https://github.com/GermanCoding/SyncTrayzor",
|
||||||
"winget": "SyncTrayzor.SyncTrayzor"
|
"winget": "GermanCoding.SyncTrayzor"
|
||||||
},
|
},
|
||||||
"sqlmanagementstudio": {
|
"sqlmanagementstudio": {
|
||||||
"category": "Microsoft Tools",
|
"category": "Microsoft Tools",
|
||||||
@@ -2186,7 +2202,7 @@
|
|||||||
},
|
},
|
||||||
"thorium": {
|
"thorium": {
|
||||||
"category": "Browsers",
|
"category": "Browsers",
|
||||||
"choco": "na",
|
"choco": "thorium",
|
||||||
"content": "Thorium Browser AVX2",
|
"content": "Thorium Browser AVX2",
|
||||||
"description": "Browser built for speed over vanilla chromium. It is built with AVX2 optimizations and is the fastest browser on the market.",
|
"description": "Browser built for speed over vanilla chromium. It is built with AVX2 optimizations and is the fastest browser on the market.",
|
||||||
"link": "https://thorium.rocks/",
|
"link": "https://thorium.rocks/",
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
"WPFTweaksActivity",
|
"WPFTweaksActivity",
|
||||||
"WPFTweaksConsumerFeatures",
|
"WPFTweaksConsumerFeatures",
|
||||||
"WPFTweaksDisableExplorerAutoDiscovery",
|
"WPFTweaksDisableExplorerAutoDiscovery",
|
||||||
|
"WPFTweaksWPBT",
|
||||||
"WPFTweaksDVR",
|
"WPFTweaksDVR",
|
||||||
"WPFTweaksLocation",
|
"WPFTweaksLocation",
|
||||||
"WPFTweaksServices",
|
"WPFTweaksServices",
|
||||||
@@ -16,6 +17,7 @@
|
|||||||
"Minimal": [
|
"Minimal": [
|
||||||
"WPFTweaksConsumerFeatures",
|
"WPFTweaksConsumerFeatures",
|
||||||
"WPFTweaksDisableExplorerAutoDiscovery",
|
"WPFTweaksDisableExplorerAutoDiscovery",
|
||||||
|
"WPFTweaksWPBT",
|
||||||
"WPFTweaksServices",
|
"WPFTweaksServices",
|
||||||
"WPFTweaksTelemetry"
|
"WPFTweaksTelemetry"
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
"OriginalValue": "<RemoveEntry>"
|
"OriginalValue": "<RemoveEntry>"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/ah"
|
"link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/activity"
|
||||||
},
|
},
|
||||||
"WPFTweaksHiber": {
|
"WPFTweaksHiber": {
|
||||||
"Content": "Disable Hibernation",
|
"Content": "Disable Hibernation",
|
||||||
@@ -58,14 +58,14 @@
|
|||||||
"UndoScript": [
|
"UndoScript": [
|
||||||
"powercfg.exe /hibernate on"
|
"powercfg.exe /hibernate on"
|
||||||
],
|
],
|
||||||
"link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/hiber"
|
"link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/hibernation"
|
||||||
},
|
},
|
||||||
"WPFTweaksLaptopHibernation": {
|
"WPFTweaksLaptopHibernation": {
|
||||||
"Content": "Set Hibernation as default (good for laptops)",
|
"Content": "Set Hibernation as default (good for laptops)",
|
||||||
"Description": "Most modern laptops have connected standby enabled which drains the battery, this sets hibernation as default which will not drain the battery. See issue https://github.com/ChrisTitusTech/winutil/issues/1399",
|
"Description": "Most modern laptops have connected standby enabled which drains the battery, this sets hibernation as default which will not drain the battery. See issue https://github.com/ChrisTitusTech/winutil/issues/1399",
|
||||||
"category": "z__Advanced Tweaks - CAUTION",
|
"category": "z__Advanced Tweaks - CAUTION",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a027_",
|
"Order": "a030_",
|
||||||
"registry": [
|
"registry": [
|
||||||
{
|
{
|
||||||
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Power\\PowerSettings\\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0",
|
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Power\\PowerSettings\\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0",
|
||||||
@@ -144,7 +144,7 @@
|
|||||||
"OriginalValue": "1"
|
"OriginalValue": "1"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/loc"
|
"link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/location"
|
||||||
},
|
},
|
||||||
"WPFTweaksServices": {
|
"WPFTweaksServices": {
|
||||||
"Content": "Set Services to Manual",
|
"Content": "Set Services to Manual",
|
||||||
@@ -221,7 +221,7 @@
|
|||||||
{
|
{
|
||||||
"Name": "BthAvctpSvc",
|
"Name": "BthAvctpSvc",
|
||||||
"StartupType": "Automatic",
|
"StartupType": "Automatic",
|
||||||
"OriginalType": "Automatic"
|
"OriginalType": "Manual"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Name": "CDPSvc",
|
"Name": "CDPSvc",
|
||||||
@@ -356,7 +356,7 @@
|
|||||||
{
|
{
|
||||||
"Name": "InventorySvc",
|
"Name": "InventorySvc",
|
||||||
"StartupType": "Manual",
|
"StartupType": "Manual",
|
||||||
"OriginalType": "Manual"
|
"OriginalType": "Automatic"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Name": "IpxlatCfgSvc",
|
"Name": "IpxlatCfgSvc",
|
||||||
@@ -366,7 +366,7 @@
|
|||||||
{
|
{
|
||||||
"Name": "KeyIso",
|
"Name": "KeyIso",
|
||||||
"StartupType": "Automatic",
|
"StartupType": "Automatic",
|
||||||
"OriginalType": "Automatic"
|
"OriginalType": "Manual"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Name": "KtmRm",
|
"Name": "KtmRm",
|
||||||
@@ -448,11 +448,6 @@
|
|||||||
"StartupType": "Disabled",
|
"StartupType": "Disabled",
|
||||||
"OriginalType": "Disabled"
|
"OriginalType": "Disabled"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"Name": "Netlogon",
|
|
||||||
"StartupType": "Automatic",
|
|
||||||
"OriginalType": "Automatic"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"Name": "Netman",
|
"Name": "Netman",
|
||||||
"StartupType": "Manual",
|
"StartupType": "Manual",
|
||||||
@@ -671,7 +666,7 @@
|
|||||||
{
|
{
|
||||||
"Name": "TermService",
|
"Name": "TermService",
|
||||||
"StartupType": "Automatic",
|
"StartupType": "Automatic",
|
||||||
"OriginalType": "Automatic"
|
"OriginalType": "Manual"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Name": "Themes",
|
"Name": "Themes",
|
||||||
@@ -731,7 +726,7 @@
|
|||||||
{
|
{
|
||||||
"Name": "VaultSvc",
|
"Name": "VaultSvc",
|
||||||
"StartupType": "Automatic",
|
"StartupType": "Automatic",
|
||||||
"OriginalType": "Automatic"
|
"OriginalType": "Manual"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Name": "W32Time",
|
"Name": "W32Time",
|
||||||
@@ -828,11 +823,6 @@
|
|||||||
"StartupType": "Automatic",
|
"StartupType": "Automatic",
|
||||||
"OriginalType": "Automatic"
|
"OriginalType": "Automatic"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"Name": "WlanSvc",
|
|
||||||
"StartupType": "Automatic",
|
|
||||||
"OriginalType": "Automatic"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"Name": "WpcMonSvc",
|
"Name": "WpcMonSvc",
|
||||||
"StartupType": "Manual",
|
"StartupType": "Manual",
|
||||||
@@ -876,7 +866,7 @@
|
|||||||
{
|
{
|
||||||
"Name": "camsvc",
|
"Name": "camsvc",
|
||||||
"StartupType": "Manual",
|
"StartupType": "Manual",
|
||||||
"OriginalType": "Manual"
|
"OriginalType": "Automatic"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Name": "cloudidsvc",
|
"Name": "cloudidsvc",
|
||||||
@@ -1150,6 +1140,13 @@
|
|||||||
"Type": "DWord",
|
"Type": "DWord",
|
||||||
"Value": "0",
|
"Value": "0",
|
||||||
"OriginalValue": "<RemoveEntry>"
|
"OriginalValue": "<RemoveEntry>"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\BraveSoftware\\Brave",
|
||||||
|
"Name": "BraveStatsPingEnabled",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "<RemoveEntry>"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
@@ -1158,7 +1155,7 @@
|
|||||||
"Description": "Disables various telemetry options, popups, and other annoyances in Edge.",
|
"Description": "Disables various telemetry options, popups, and other annoyances in Edge.",
|
||||||
"category": "z__Advanced Tweaks - CAUTION",
|
"category": "z__Advanced Tweaks - CAUTION",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a022_",
|
"Order": "a026_",
|
||||||
"registry": [
|
"registry": [
|
||||||
{
|
{
|
||||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\EdgeUpdate",
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\EdgeUpdate",
|
||||||
@@ -1174,6 +1171,13 @@
|
|||||||
"Value": "0",
|
"Value": "0",
|
||||||
"OriginalValue": "<RemoveEntry>"
|
"OriginalValue": "<RemoveEntry>"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
|
"Name": "ofefcgjbeghpigppfmkologfjadafddi",
|
||||||
|
"Type": "String",
|
||||||
|
"Value": "1",
|
||||||
|
"OriginalValue": "<RemoveEntry>"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
"Name": "ShowRecommendationsEnabled",
|
"Name": "ShowRecommendationsEnabled",
|
||||||
@@ -1435,13 +1439,6 @@
|
|||||||
"Value": "0",
|
"Value": "0",
|
||||||
"Type": "DWord"
|
"Type": "DWord"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"Path": "HKCU:\\SOFTWARE\\Microsoft\\Siuf\\Rules",
|
|
||||||
"OriginalValue": "<RemoveEntry>",
|
|
||||||
"Name": "PeriodInNanoSeconds",
|
|
||||||
"Value": "<RemoveEntry>",
|
|
||||||
"Type": "QWord"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\DataCollection",
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\DataCollection",
|
||||||
"OriginalValue": "<RemoveEntry>",
|
"OriginalValue": "<RemoveEntry>",
|
||||||
@@ -1601,71 +1598,26 @@
|
|||||||
"
|
"
|
||||||
# Disable Defender Auto Sample Submission
|
# Disable Defender Auto Sample Submission
|
||||||
Set-MpPreference -SubmitSamplesConsent 2
|
Set-MpPreference -SubmitSamplesConsent 2
|
||||||
|
|
||||||
|
$Memory = (Get-CimInstance Win32_PhysicalMemory | Measure-Object Capacity -Sum).Sum / 1KB
|
||||||
|
Set-ItemProperty -Path \"HKLM:\\SYSTEM\\CurrentControlSet\\Control\" -Name SvcHostSplitThresholdInKB -Value $Memory
|
||||||
"
|
"
|
||||||
],
|
],
|
||||||
"link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/tele"
|
"link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/telemetry"
|
||||||
},
|
},
|
||||||
"WPFTweaksDisableEdge": {
|
"WPFTweaksRemoveEdge": {
|
||||||
"Content": "Disable Edge",
|
"Content": "Remove Microsoft Edge",
|
||||||
"Description": "Prevent msedge.exe from running with explorer policies.",
|
"Description": "Unblocks Microsoft Edge uninstaller restrictions than uses that uninstaller to remove Microsoft Edge",
|
||||||
"category": "z__Advanced Tweaks - CAUTION",
|
"category": "z__Advanced Tweaks - CAUTION",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a023_",
|
"Order": "a028_",
|
||||||
"registry": [
|
|
||||||
{
|
|
||||||
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer\\DisallowRun",
|
|
||||||
"Name": "DisableEdge",
|
|
||||||
"Type": "String",
|
|
||||||
"Value": "msedge.exe",
|
|
||||||
"OriginalValue": "<RemoveEntry>"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Path": "HKLM:\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer",
|
|
||||||
"Name": "DisallowRun",
|
|
||||||
"Type": "DWord",
|
|
||||||
"Value": "1",
|
|
||||||
"OriginalValue": "<RemoveEntry>"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"link": ""
|
|
||||||
},
|
|
||||||
"WPFTweaksMakeEdgeUninstallable": {
|
|
||||||
"Content": "Make Edge Uninstallable via settings",
|
|
||||||
"Description": "Makes it so you can uninstall edge via settings > installed apps",
|
|
||||||
"category": "z__Advanced Tweaks - CAUTION",
|
|
||||||
"panel": "1",
|
|
||||||
"Order": "a023_",
|
|
||||||
"registry": [
|
|
||||||
{
|
|
||||||
"Path": "HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Microsoft Edge",
|
|
||||||
"Name": "NoRemove",
|
|
||||||
"Type": "Dword",
|
|
||||||
"Value": "0",
|
|
||||||
"OriginalValue": "1"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"InvokeScript": [
|
"InvokeScript": [
|
||||||
"
|
"Invoke-WinUtilRemoveEdge"
|
||||||
$File = \"C:\\Windows\\System32\\IntegratedServicesRegionPolicySet.json\"
|
|
||||||
|
|
||||||
takeown /f $File
|
|
||||||
icacls $File /grant \"Administrators:(F)\"
|
|
||||||
|
|
||||||
$FileContent = Get-Content $File
|
|
||||||
$FileContent[7] = $FileContent[7] -replace \"disabled\", \"enabled\"
|
|
||||||
Set-Content $File $FileContent
|
|
||||||
"
|
|
||||||
],
|
],
|
||||||
"UndoScript": [
|
"UndoScript": [
|
||||||
"
|
"
|
||||||
$File = \"C:\\Windows\\System32\\IntegratedServicesRegionPolicySet.json\"
|
Write-Host 'Installing Microsoft Edge...'
|
||||||
|
winget install Microsoft.Edge --source winget
|
||||||
takeown /f $File
|
|
||||||
icacls $File /grant \"Administrators:(F)\"
|
|
||||||
|
|
||||||
$FileContent = Get-Content $File
|
|
||||||
$FileContent[7] = $FileContent[7] -replace \"enabled\", \"disabled\"
|
|
||||||
Set-Content $File $FileContent
|
|
||||||
"
|
"
|
||||||
],
|
],
|
||||||
"link": ""
|
"link": ""
|
||||||
@@ -1675,18 +1627,50 @@
|
|||||||
"Description": "Essential for computers that are dual booting. Fixes the time sync with Linux Systems.",
|
"Description": "Essential for computers that are dual booting. Fixes the time sync with Linux Systems.",
|
||||||
"category": "z__Advanced Tweaks - CAUTION",
|
"category": "z__Advanced Tweaks - CAUTION",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a027_",
|
"Order": "a030_",
|
||||||
"registry": [
|
"registry": [
|
||||||
{
|
{
|
||||||
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation",
|
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation",
|
||||||
"Name": "RealTimeIsUniversal",
|
"Name": "RealTimeIsUniversal",
|
||||||
"Type": "DWord",
|
"Type": "QWord",
|
||||||
"Value": "1",
|
"Value": "1",
|
||||||
"OriginalValue": "0"
|
"OriginalValue": "0"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"link": "https://winutil.christitus.com/dev/tweaks/z--advanced-tweaks---caution/utc"
|
"link": "https://winutil.christitus.com/dev/tweaks/z--advanced-tweaks---caution/utc"
|
||||||
},
|
},
|
||||||
|
"WPFTweaksRemoveOneDrive": {
|
||||||
|
"Content": "Remove OneDrive",
|
||||||
|
"Description": "Denys permission to remove onedrive user files than uses its own uninstaller to remove it than brings back permissions",
|
||||||
|
"category": "z__Advanced Tweaks - CAUTION",
|
||||||
|
"panel": "1",
|
||||||
|
"Order": "a029_",
|
||||||
|
"InvokeScript": [
|
||||||
|
"
|
||||||
|
# Deny permission to remove OneDrive folder
|
||||||
|
icacls $Env:OneDrive /deny \"Administrators:(D,DC)\"
|
||||||
|
|
||||||
|
Write-Host \"Uninstalling OneDrive...\"
|
||||||
|
Start-Process 'C:\\Windows\\System32\\OneDriveSetup.exe' -ArgumentList '/uninstall' -Wait
|
||||||
|
|
||||||
|
# Some of OneDrive files use explorer, and OneDrive uses FileCoAuth
|
||||||
|
Write-Host \"Removing leftover OneDrive Files...\"
|
||||||
|
Stop-Process -Name FileCoAuth,Explorer
|
||||||
|
Remove-Item \"$Env:LocalAppData\\Microsoft\\OneDrive\" -Recurse -Force
|
||||||
|
Remove-Item \"C:\\ProgramData\\Microsoft OneDrive\" -Recurse -Force
|
||||||
|
|
||||||
|
# Grant back permission to accses OneDrive folder
|
||||||
|
icacls $Env:OneDrive /grant \"Administrators:(D,DC)\"
|
||||||
|
"
|
||||||
|
],
|
||||||
|
"UndoScript": [
|
||||||
|
"
|
||||||
|
Write-Host \"Installing OneDrive\"
|
||||||
|
winget install Microsoft.Onedrive --source winget
|
||||||
|
"
|
||||||
|
],
|
||||||
|
"link": "https://winutil.christitus.com/dev/tweaks/z--advanced-tweaks---caution/removeonedrive"
|
||||||
|
},
|
||||||
"WPFTweaksRemoveHome": {
|
"WPFTweaksRemoveHome": {
|
||||||
"Content": "Remove Home from Explorer",
|
"Content": "Remove Home from Explorer",
|
||||||
"Description": "Removes the Home from Explorer and sets This PC as default",
|
"Description": "Removes the Home from Explorer and sets This PC as default",
|
||||||
@@ -1705,14 +1689,14 @@
|
|||||||
Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\" -Name LaunchTo -Value 0
|
Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\" -Name LaunchTo -Value 0
|
||||||
"
|
"
|
||||||
],
|
],
|
||||||
"link": "https://winutil.christitus.com/dev/tweaks/z--advanced-tweaks---caution/removehomegallery"
|
"link": "https://winutil.christitus.com/dev/tweaks/z--advanced-tweaks---caution/removehome"
|
||||||
},
|
},
|
||||||
"WPFTweaksRemoveGallery": {
|
"WPFTweaksRemoveGallery": {
|
||||||
"Content": "Remove Gallery from explorer",
|
"Content": "Remove Gallery from explorer",
|
||||||
"Description": "Removes the Gallery from Explorer and sets This PC as default",
|
"Description": "Removes the Gallery from Explorer and sets This PC as default",
|
||||||
"category": "z__Advanced Tweaks - CAUTION",
|
"category": "z__Advanced Tweaks - CAUTION",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a030_",
|
"Order": "a029_",
|
||||||
"InvokeScript": [
|
"InvokeScript": [
|
||||||
"
|
"
|
||||||
Remove-Item \"HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Desktop\\NameSpace\\{e88865ea-0e1c-4e20-9aa6-edcd0212c87c}\"
|
Remove-Item \"HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Desktop\\NameSpace\\{e88865ea-0e1c-4e20-9aa6-edcd0212c87c}\"
|
||||||
@@ -1723,14 +1707,14 @@
|
|||||||
New-Item \"HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Desktop\\NameSpace\\{e88865ea-0e1c-4e20-9aa6-edcd0212c87c}\"
|
New-Item \"HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Desktop\\NameSpace\\{e88865ea-0e1c-4e20-9aa6-edcd0212c87c}\"
|
||||||
"
|
"
|
||||||
],
|
],
|
||||||
"link": "https://winutil.christitus.com/dev/tweaks/z--advanced-tweaks---caution/removehomegallery"
|
"link": "https://winutil.christitus.com/dev/tweaks/z--advanced-tweaks---caution/removegallery"
|
||||||
},
|
},
|
||||||
"WPFTweaksDisplay": {
|
"WPFTweaksDisplay": {
|
||||||
"Content": "Set Display for Performance",
|
"Content": "Set Display for Performance",
|
||||||
"Description": "Sets the system preferences to performance. You can do this manually with sysdm.cpl as well.",
|
"Description": "Sets the system preferences to performance. You can do this manually with sysdm.cpl as well.",
|
||||||
"category": "z__Advanced Tweaks - CAUTION",
|
"category": "z__Advanced Tweaks - CAUTION",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a027_",
|
"Order": "a030_",
|
||||||
"registry": [
|
"registry": [
|
||||||
{
|
{
|
||||||
"Path": "HKCU:\\Control Panel\\Desktop",
|
"Path": "HKCU:\\Control Panel\\Desktop",
|
||||||
@@ -1802,13 +1786,6 @@
|
|||||||
"Value": "0",
|
"Value": "0",
|
||||||
"Type": "DWord"
|
"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",
|
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
|
||||||
"OriginalValue": "1",
|
"OriginalValue": "1",
|
||||||
@@ -1970,7 +1947,7 @@
|
|||||||
"Description": "This will create an Environment Variable called 'POWERSHELL_TELEMETRY_OPTOUT' with a value of '1' which will tell Powershell 7 to not send Telemetry Data.",
|
"Description": "This will create an Environment Variable called 'POWERSHELL_TELEMETRY_OPTOUT' with a value of '1' which will tell Powershell 7 to not send Telemetry Data.",
|
||||||
"category": "Essential Tweaks",
|
"category": "Essential Tweaks",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a009_",
|
"Order": "a005_",
|
||||||
"InvokeScript": [
|
"InvokeScript": [
|
||||||
"[Environment]::SetEnvironmentVariable('POWERSHELL_TELEMETRY_OPTOUT', '1', 'Machine')"
|
"[Environment]::SetEnvironmentVariable('POWERSHELL_TELEMETRY_OPTOUT', '1', 'Machine')"
|
||||||
],
|
],
|
||||||
@@ -2065,6 +2042,12 @@
|
|||||||
Write-Host \"Remove Copilot\"
|
Write-Host \"Remove Copilot\"
|
||||||
Get-AppxPackage -AllUsers *Copilot* | Remove-AppxPackage -AllUsers
|
Get-AppxPackage -AllUsers *Copilot* | Remove-AppxPackage -AllUsers
|
||||||
Get-AppxPackage -AllUsers Microsoft.MicrosoftOfficeHub | Remove-AppxPackage -AllUsers
|
Get-AppxPackage -AllUsers Microsoft.MicrosoftOfficeHub | Remove-AppxPackage -AllUsers
|
||||||
|
|
||||||
|
$Appx = (Get-AppxPackage MicrosoftWindows.Client.CoreAI).PackageFullName
|
||||||
|
$Sid = (Get-LocalUser $Env:UserName).Sid.Value
|
||||||
|
|
||||||
|
New-Item \"HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Appx\\AppxAllUserStore\\EndOfLife\\$Sid\\$Appx\" -Force
|
||||||
|
Remove-AppxPackage $Appx
|
||||||
"
|
"
|
||||||
],
|
],
|
||||||
"UndoScript": [
|
"UndoScript": [
|
||||||
@@ -2078,9 +2061,9 @@
|
|||||||
"WPFTweaksWPBT": {
|
"WPFTweaksWPBT": {
|
||||||
"Content": "Disable Windows Platform Binary Table (WPBT)",
|
"Content": "Disable Windows Platform Binary Table (WPBT)",
|
||||||
"Description": "If enabled then allows your computer vendor to execute a program each time it boots. It enables computer vendors to force install anti-theft software, software drivers, or a software program conveniently. This could also be a security risk.",
|
"Description": "If enabled then allows your computer vendor to execute a program each time it boots. It enables computer vendors to force install anti-theft software, software drivers, or a software program conveniently. This could also be a security risk.",
|
||||||
"category": "z__Advanced Tweaks - CAUTION",
|
"category": "Essential Tweaks",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a027_",
|
"Order": "a005_",
|
||||||
"registry": [
|
"registry": [
|
||||||
{
|
{
|
||||||
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager",
|
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager",
|
||||||
@@ -2171,7 +2154,7 @@
|
|||||||
|
|
||||||
Copy-Item $hosts \"$hosts.bak\"
|
Copy-Item $hosts \"$hosts.bak\"
|
||||||
Invoke-WebRequest $hostsUrl -OutFile $hosts
|
Invoke-WebRequest $hostsUrl -OutFile $hosts
|
||||||
ipconfig flushdns
|
ipconfig /flushdns
|
||||||
|
|
||||||
Write-Host \"Added Adobe url block list from host file\"
|
Write-Host \"Added Adobe url block list from host file\"
|
||||||
"
|
"
|
||||||
@@ -2183,7 +2166,7 @@
|
|||||||
|
|
||||||
Copy-Item $backup $hosts
|
Copy-Item $backup $hosts
|
||||||
Remove-Item $backup
|
Remove-Item $backup
|
||||||
ipconfig flushdns
|
ipconfig /flushdns
|
||||||
|
|
||||||
Write-Host \"Removed Adobe url block list from host file\"
|
Write-Host \"Removed Adobe url block list from host file\"
|
||||||
"
|
"
|
||||||
@@ -2195,7 +2178,7 @@
|
|||||||
"Description": "Great Windows 11 tweak to bring back good context menus when right clicking things in explorer.",
|
"Description": "Great Windows 11 tweak to bring back good context menus when right clicking things in explorer.",
|
||||||
"category": "z__Advanced Tweaks - CAUTION",
|
"category": "z__Advanced Tweaks - CAUTION",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a027_",
|
"Order": "a030_",
|
||||||
"InvokeScript": [
|
"InvokeScript": [
|
||||||
"
|
"
|
||||||
New-Item -Path \"HKCU:\\Software\\Classes\\CLSID\\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\" -Name \"InprocServer32\" -force -value \"\"
|
New-Item -Path \"HKCU:\\Software\\Classes\\CLSID\\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\" -Name \"InprocServer32\" -force -value \"\"
|
||||||
@@ -2244,7 +2227,7 @@
|
|||||||
"WPFTweaksDVR": {
|
"WPFTweaksDVR": {
|
||||||
"Content": "Disable GameDVR",
|
"Content": "Disable GameDVR",
|
||||||
"Description": "GameDVR is a Windows App that is a dependency for some Store Games. I've never met someone that likes it, but it's there for the XBOX crowd.",
|
"Description": "GameDVR is a Windows App that is a dependency for some Store Games. I've never met someone that likes it, but it's there for the XBOX crowd.",
|
||||||
"category": "Essential Tweaks",
|
"category": "z__Advanced Tweaks - CAUTION",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a005_",
|
"Order": "a005_",
|
||||||
"registry": [
|
"registry": [
|
||||||
@@ -2284,14 +2267,14 @@
|
|||||||
"Type": "DWord"
|
"Type": "DWord"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/dvr"
|
"link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/gamedvr"
|
||||||
},
|
},
|
||||||
"WPFTweaksIPv46": {
|
"WPFTweaksIPv46": {
|
||||||
"Content": "Prefer IPv4 over IPv6",
|
"Content": "Prefer IPv4 over IPv6",
|
||||||
"Description": "To set the IPv4 preference can have latency and security benefits on private networks where IPv6 is not configured.",
|
"Description": "To set the IPv4 preference can have latency and security benefits on private networks where IPv6 is not configured.",
|
||||||
"category": "z__Advanced Tweaks - CAUTION",
|
"category": "z__Advanced Tweaks - CAUTION",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a024_",
|
"Order": "a027_",
|
||||||
"registry": [
|
"registry": [
|
||||||
{
|
{
|
||||||
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Services\\Tcpip6\\Parameters",
|
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Services\\Tcpip6\\Parameters",
|
||||||
@@ -2347,7 +2330,7 @@
|
|||||||
"UndoScript": [
|
"UndoScript": [
|
||||||
"Enable-NetAdapterBinding -Name * -ComponentID ms_tcpip6"
|
"Enable-NetAdapterBinding -Name * -ComponentID ms_tcpip6"
|
||||||
],
|
],
|
||||||
"link": "https://winutil.christitus.com/dev/tweaks/z--advanced-tweaks---caution/disableipsix"
|
"link": "https://winutil.christitus.com/dev/tweaks/z--advanced-tweaks---caution/disableipv6"
|
||||||
},
|
},
|
||||||
"WPFTweaksDisableBGapps": {
|
"WPFTweaksDisableBGapps": {
|
||||||
"Content": "Disable Background Apps",
|
"Content": "Disable Background Apps",
|
||||||
@@ -2554,83 +2537,6 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"WPFToggleSnapWindow": {
|
|
||||||
"Content": "Snap Window",
|
|
||||||
"Description": "If enabled you can align windows by dragging them. | Relogin Required",
|
|
||||||
"category": "Customize Preferences",
|
|
||||||
"panel": "2",
|
|
||||||
"Order": "a106_",
|
|
||||||
"Type": "Toggle",
|
|
||||||
"registry": [
|
|
||||||
{
|
|
||||||
"Path": "HKCU:\\Control Panel\\Desktop",
|
|
||||||
"Name": "WindowArrangementActive",
|
|
||||||
"Value": "1",
|
|
||||||
"OriginalValue": "0",
|
|
||||||
"DefaultState": "true",
|
|
||||||
"Type": "String"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"link": "https://winutil.christitus.com/dev/tweaks/customize-preferences/snapwindow"
|
|
||||||
},
|
|
||||||
"WPFToggleSnapFlyout": {
|
|
||||||
"Content": "Snap Assist Flyout",
|
|
||||||
"Description": "If disabled then Snap preview is disabled when maximize button is hovered.",
|
|
||||||
"category": "Customize Preferences",
|
|
||||||
"panel": "2",
|
|
||||||
"Order": "a107_",
|
|
||||||
"Type": "Toggle",
|
|
||||||
"registry": [
|
|
||||||
{
|
|
||||||
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
|
|
||||||
"Name": "EnableSnapAssistFlyout",
|
|
||||||
"Value": "1",
|
|
||||||
"OriginalValue": "0",
|
|
||||||
"DefaultState": "true",
|
|
||||||
"Type": "DWord"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"InvokeScript": [
|
|
||||||
"
|
|
||||||
Invoke-WinUtilExplorerUpdate -action \"restart\"
|
|
||||||
"
|
|
||||||
],
|
|
||||||
"UndoScript": [
|
|
||||||
"
|
|
||||||
Invoke-WinUtilExplorerUpdate -action \"restart\"
|
|
||||||
"
|
|
||||||
],
|
|
||||||
"link": "https://winutil.christitus.com/dev/tweaks/customize-preferences/snapflyout"
|
|
||||||
},
|
|
||||||
"WPFToggleSnapSuggestion": {
|
|
||||||
"Content": "Snap Assist Suggestion",
|
|
||||||
"Description": "If enabled then you will get suggestions to snap other applications in the left over spaces.",
|
|
||||||
"category": "Customize Preferences",
|
|
||||||
"panel": "2",
|
|
||||||
"Order": "a108_",
|
|
||||||
"Type": "Toggle",
|
|
||||||
"registry": [
|
|
||||||
{
|
|
||||||
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
|
|
||||||
"Name": "SnapAssist",
|
|
||||||
"Value": "1",
|
|
||||||
"OriginalValue": "0",
|
|
||||||
"DefaultState": "true",
|
|
||||||
"Type": "DWord"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"InvokeScript": [
|
|
||||||
"
|
|
||||||
Invoke-WinUtilExplorerUpdate -action \"restart\"
|
|
||||||
"
|
|
||||||
],
|
|
||||||
"UndoScript": [
|
|
||||||
"
|
|
||||||
Invoke-WinUtilExplorerUpdate -action \"restart\"
|
|
||||||
"
|
|
||||||
],
|
|
||||||
"link": "https://winutil.christitus.com/dev/tweaks/customize-preferences/snapsuggestion"
|
|
||||||
},
|
|
||||||
"WPFToggleMouseAcceleration": {
|
"WPFToggleMouseAcceleration": {
|
||||||
"Content": "Mouse Acceleration",
|
"Content": "Mouse Acceleration",
|
||||||
"Description": "If Enabled then Cursor movement is affected by the speed of your physical mouse movements.",
|
"Description": "If Enabled then Cursor movement is affected by the speed of your physical mouse movements.",
|
||||||
@@ -2844,25 +2750,6 @@
|
|||||||
],
|
],
|
||||||
"link": "https://winutil.christitus.com/dev/tweaks/customize-preferences/taskview"
|
"link": "https://winutil.christitus.com/dev/tweaks/customize-preferences/taskview"
|
||||||
},
|
},
|
||||||
"WPFToggleTaskbarWidgets": {
|
|
||||||
"Content": "Widgets Button in Taskbar",
|
|
||||||
"Description": "If Enabled then Widgets Button in Taskbar will be shown.",
|
|
||||||
"category": "Customize Preferences",
|
|
||||||
"panel": "2",
|
|
||||||
"Order": "a204_",
|
|
||||||
"Type": "Toggle",
|
|
||||||
"registry": [
|
|
||||||
{
|
|
||||||
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
|
|
||||||
"Name": "TaskbarDa",
|
|
||||||
"Value": "1",
|
|
||||||
"OriginalValue": "0",
|
|
||||||
"DefaultState": "true",
|
|
||||||
"Type": "DWord"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"link": "https://winutil.christitus.com/dev/tweaks/customize-preferences/taskbarwidgets"
|
|
||||||
},
|
|
||||||
"WPFToggleTaskbarAlignment": {
|
"WPFToggleTaskbarAlignment": {
|
||||||
"Content": "Center Taskbar Items",
|
"Content": "Center Taskbar Items",
|
||||||
"Description": "[Windows 11] If Enabled then the Taskbar Items will be shown on the Center, otherwise the Taskbar Items will be shown on the Left.",
|
"Description": "[Windows 11] If Enabled then the Taskbar Items will be shown on the Center, otherwise the Taskbar Items will be shown on the Left.",
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 17 KiB |
BIN
docs/assets/images/Complie.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 51 KiB |
BIN
docs/assets/images/microwin/Configure-Windows-ISO.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
docs/assets/images/microwin/Microwin.png
Normal file
|
After Width: | Height: | Size: 164 KiB |
|
Before Width: | Height: | Size: 60 KiB |
|
Before Width: | Height: | Size: 51 KiB |
|
Before Width: | Height: | Size: 48 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 4.5 KiB |
|
Before Width: | Height: | Size: 532 KiB |
|
Before Width: | Height: | Size: 570 KiB |
|
Before Width: | Height: | Size: 572 KiB |
|
Before Width: | Height: | Size: 535 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 121 KiB |
|
Before Width: | Height: | Size: 61 KiB |
@@ -3,14 +3,8 @@ title: Known Issues
|
|||||||
toc: true
|
toc: true
|
||||||
---
|
---
|
||||||
|
|
||||||
## Launch Issues
|
|
||||||
|
|
||||||
### Blocked by anti-virus
|
|
||||||
Windows Security (formerly Defender) and other anti-virus software are known to block the script. The script gets flagged due to the fact that it requires administrator privileges & makes drastic system changes.
|
|
||||||
|
|
||||||
To resolve this, allow/whitelist the script in your anti-virus software settings, or temporarily disable real-time protection. Since the project is open source, you may audit the code if security is a concern.
|
|
||||||
|
|
||||||
### Download not working
|
### Download not working
|
||||||
|
|
||||||
If `https://christitus.com/win` is not working, or you want to download the code from GitHub directly, you can use the direct download link:
|
If `https://christitus.com/win` is not working, or you want to download the code from GitHub directly, you can use the direct download link:
|
||||||
|
|
||||||
```
|
```
|
||||||
@@ -21,199 +15,215 @@ If you are seeing errors referencing TLS or security, you may be running an olde
|
|||||||
|
|
||||||
```
|
```
|
||||||
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
||||||
iex (New-Object Net.WebClient).DownloadString('https://github.com/ChrisTitusTech/Winutil/releases/latest/download/Winutil.ps1')
|
iex https://christitus.com/win | iex
|
||||||
```
|
```
|
||||||
|
|
||||||
If it still isn't working and you live in India, it might be due to India blocking GitHub's content domain and preventing downloads. See more on [Times of India](https://timesofindia.indiatimes.com/gadgets-news/github-content-domain-blocked-for-these-indian-users-reports/articleshow/96687992.cms).
|
If it still isn't working and you live in India, it might be due to India blocking GitHub's content domain and preventing downloads. See more on [Times of India](https://timesofindia.indiatimes.com/gadgets-news/github-content-domain-blocked-for-these-indian-users-reports/articleshow/96687992.cms).
|
||||||
|
|
||||||
If you are still having issues, try using a **VPN**, or changing your **DNS provider** to one of following two providers:
|
If you are still having issues, try using a **VPN**, or changing your **DNS provider** to one of following two providers:
|
||||||
|
|
||||||
| Provider | Primary DNS | Secondary DNS |
|
| Provider | Primary DNS | Secondary DNS |
|
||||||
|:------------:|:------------:|:-------------:|
|
| :--------: | :---------: | :-----------: |
|
||||||
| Cloudflare | `1.1.1.1` | `1.0.0.1` |
|
| Cloudflare | `1.1.1.1` | `1.0.0.1` |
|
||||||
| Google | `8.8.8.8` | `8.8.4.4` |
|
| Google | `8.8.8.8` | `8.8.4.4` |
|
||||||
|
|
||||||
|
|
||||||
### Script blocked by Execution Policy
|
### Script blocked by Execution Policy
|
||||||
1. Ensure you are running PowerShell as admin: Press `Windows Key`+`X` and select *PowerShell (Admin)* in Windows 10, or `Windows Terminal (Admin)` in Windows 11.
|
|
||||||
|
1. Ensure you are running PowerShell as admin: Press `Windows Key`+`X` and select _PowerShell (Admin)_ in Windows 10, or `Windows Terminal (Admin)` in Windows 11.
|
||||||
2. In the PowerShell window, type this to allow unsigned code to execute and run the installation script:
|
2. In the PowerShell window, type this to allow unsigned code to execute and run the installation script:
|
||||||
|
|
||||||
```
|
```
|
||||||
Set-ExecutionPolicy Unrestricted -Scope Process -Force
|
Set-ExecutionPolicy Unrestricted -Scope Process -Force
|
||||||
irm https://christitus.com/win | iex
|
irm https://christitus.com/win | iex
|
||||||
```
|
```
|
||||||
|
|
||||||
## Runtime Issues
|
## Runtime Issues
|
||||||
|
|
||||||
### WinGet configuration
|
### WinGet configuration
|
||||||
|
|
||||||
If you have not installed anything using PowerShell before, you may be prompted to configure WinGet. This requires user interaction on first run. You will need to manually type `y` into the PowerShell console and press enter to continue. Once you do it the first time, you will not be prompted again.
|
If you have not installed anything using PowerShell before, you may be prompted to configure WinGet. This requires user interaction on first run. You will need to manually type `y` into the PowerShell console and press enter to continue. Once you do it the first time, you will not be prompted again.
|
||||||
|
|
||||||
### MicroWin: Error `0x80041031`
|
### MicroWin: Error `0x80041031`
|
||||||
|
|
||||||
This error code typically indicates an issue related to Windows Management Instrumentation (WMI). Here are a few steps you can try to resolve the issue:
|
This error code typically indicates an issue related to Windows Management Instrumentation (WMI). Here are a few steps you can try to resolve the issue:
|
||||||
|
|
||||||
1. **Reboot Your Computer:**
|
1. **Reboot Your Computer:**
|
||||||
|
|
||||||
Sometimes, a simple reboot can resolve temporary issues. Restart your computer and try mounting the ISO again.
|
Sometimes, a simple reboot can resolve temporary issues. Restart your computer and try mounting the ISO again.
|
||||||
|
|
||||||
3. **Check for System Corruption:**
|
2. **Check for System Corruption:**
|
||||||
|
|
||||||
Run the System File Checker (SFC) utility to scan and repair system files that may be corrupted.
|
Run the System File Checker (SFC) utility to scan and repair system files that may be corrupted.
|
||||||
```powershell
|
|
||||||
sfc /scannow
|
|
||||||
```
|
|
||||||
|
|
||||||
4. **Update Your System:**
|
```powershell
|
||||||
|
sfc /scannow
|
||||||
|
```
|
||||||
|
|
||||||
Make sure your operating system is up-to-date. Check for Windows updates and install any pending updates.
|
3. **Update Your System:**
|
||||||
|
|
||||||
5. **Check WMI Service:**
|
Make sure your operating system is up-to-date. Check for Windows updates and install any pending updates.
|
||||||
|
|
||||||
Ensure that the Windows Management Instrumentation (WMI) service is running. You can do this through the Services application:
|
4. **Check WMI Service:**
|
||||||
- Press `Win`+`R` to open the Run dialog.
|
|
||||||
- Type `services.msc` and press Enter.
|
|
||||||
- Locate *Windows Management Instrumentation* in the list.
|
|
||||||
- Make sure to set its status to "Running" and the startup type to "Automatic".
|
|
||||||
|
|
||||||
6. **Check for Security Software Interference:**
|
Ensure that the Windows Management Instrumentation (WMI) service is running. You can do this through the Services application:
|
||||||
|
- Press `Win`+`R` to open the Run dialog.
|
||||||
|
- Type `services.msc` and press Enter.
|
||||||
|
- Locate _Windows Management Instrumentation_ in the list.
|
||||||
|
- Make sure to set its status to "Running" and the startup type to "Automatic".
|
||||||
|
|
||||||
Security software can sometimes interfere with WMI operations. Temporarily disable your anti-virus or security software and check if the issue persists. WMI is a common attack/infection vector, so many anti-virus programs will limit its usage.
|
5. **Check for Security Software Interference:**
|
||||||
|
|
||||||
7. **Event Viewer:**
|
Security software can sometimes interfere with WMI operations. Temporarily disable your anti-virus or security software and check if the issue persists. WMI is a common attack/infection vector, so many anti-virus programs will limit its usage.
|
||||||
|
|
||||||
Check the Event Viewer for more detailed error information. Look for entries related to the `80041031` error and check if there are any additional details that can help identify the cause.
|
6. **Event Viewer:**
|
||||||
|
|
||||||
- Press `Win`+`X` and select *Event Viewer*.
|
Check the Event Viewer for more detailed error information. Look for entries related to the `80041031` error and check if there are any additional details that can help identify the cause.
|
||||||
- Navigate to *Windows Logs* > *Application* or *System*.
|
- Press `Win`+`X` and select _Event Viewer_.
|
||||||
- Look for entries with the source related to WMI or the application use to mount the ISO.
|
- Navigate to _Windows Logs_ > _Application_ or _System_.
|
||||||
|
- Look for entries with the source related to WMI or the application use to mount the ISO.
|
||||||
|
|
||||||
8. **ISO File Integrity:**
|
7. **ISO File Integrity:**
|
||||||
|
|
||||||
Ensure that the ISO file you are trying to mount is uncorrupted. Try mounting a different ISO file to see if the issue persists.
|
Ensure that the ISO file you are trying to mount is uncorrupted. Try mounting a different ISO file to see if the issue persists.
|
||||||
|
|
||||||
If the problem persists after trying these steps, additional troubleshooting is required. Consider seeking assistance from Microsoft support or community forums for more specific guidance based on your system configuration and the software you use to mount the ISO.
|
If the problem persists after trying these steps, additional troubleshooting is required. Consider seeking assistance from Microsoft support or community forums for more specific guidance based on your system configuration and the software you use to mount the ISO.
|
||||||
|
|
||||||
## Windows Issues
|
## Windows Issues
|
||||||
|
|
||||||
### Windows takes longer to shut down
|
### Windows takes longer to shut down
|
||||||
|
|
||||||
This could be for a number of reasons:
|
This could be for a number of reasons:
|
||||||
|
|
||||||
- Turn on fast startup: Press `Windows key`+`R`, then type:
|
- Turn on fast startup: Press `Windows key`+`R`, then type:
|
||||||
```bat
|
|
||||||
control /name Microsoft.PowerOptions /page pageGlobalSettings
|
```bat
|
||||||
```
|
control /name Microsoft.PowerOptions /page pageGlobalSettings
|
||||||
- If that doesn't work, disable Hibernation:
|
```
|
||||||
- Press `Windows Key`+`X` and select *PowerShell (Admin)* in Windows 10, or `Windows Terminal (Admin)` in Windows 11.
|
|
||||||
- In the PowerShell window, type:
|
If that doesn't work, disable Hibernation:
|
||||||
```bat
|
|
||||||
powercfg /H off
|
- Press `Windows Key`+`X` and select _PowerShell (Admin)_ in Windows 10, or `Windows Terminal (Admin)` in Windows 11. then type:
|
||||||
```
|
|
||||||
|
```bat
|
||||||
|
powercfg /H off
|
||||||
|
```
|
||||||
|
|
||||||
Related issue: [#69](https://github.com/ChrisTitusTech/Winutil/issues/69)
|
Related issue: [#69](https://github.com/ChrisTitusTech/Winutil/issues/69)
|
||||||
|
|
||||||
### Windows Search does not work
|
### Windows Search does not work
|
||||||
Enable Background Apps. Related issues: [#69](https://github.com/ChrisTitusTech/Winutil/issues/69) [95](https://github.com/ChrisTitusTech/Winutil/issues/95) [#232](https://github.com/ChrisTitusTech/Winutil/issues/232)
|
|
||||||
|
Enable Background Apps. Related issues: [#69](https://github.com/ChrisTitusTech/Winutil/issues/69) [#95](https://github.com/ChrisTitusTech/Winutil/issues/95) [#232](https://github.com/ChrisTitusTech/Winutil/issues/232)
|
||||||
|
|
||||||
### Xbox Game Bar Activation Broken
|
### Xbox Game Bar Activation Broken
|
||||||
|
|
||||||
Set the Xbox Accessory Management Service to Automatic:
|
Set the Xbox Accessory Management Service to Automatic:
|
||||||
|
|
||||||
```
|
```powershell
|
||||||
Get-Service -Name "XboxGipSvc" | Set-Service -StartupType Automatic
|
Get-Service -Name "XboxGipSvc" | Set-Service -StartupType Automatic
|
||||||
```
|
```
|
||||||
|
|
||||||
Related issue: [#198](https://github.com/ChrisTitusTech/Winutil/issues/198)
|
Related issue: [#198](https://github.com/ChrisTitusTech/Winutil/issues/198)
|
||||||
|
|
||||||
### Windows 11: Quick Settings no longer works
|
### Windows 11: Quick Settings no longer works
|
||||||
Launch the Script and click *Enable Action Center*.
|
|
||||||
|
Launch the Script and click _Enable Action Center_.
|
||||||
|
|
||||||
### Explorer (file browser) no longer launches
|
### Explorer (file browser) no longer launches
|
||||||
- Press `Windows key`+`R` then type:
|
|
||||||
```bat
|
- Press `Windows key`+`R` then type:
|
||||||
control /name Microsoft.FolderOptions
|
|
||||||
```
|
```bat
|
||||||
- Change the *Open File Explorer to* option to *This PC*.
|
control /name Microsoft.FolderOptions
|
||||||
|
```
|
||||||
|
|
||||||
|
- Change the _Open File Explorer to_ option to _This PC_.
|
||||||
|
|
||||||
### Battery drains too fast
|
### Battery drains too fast
|
||||||
|
|
||||||
If you're using a laptop or tablet and find your battery drains too fast, please try the below troubleshooting steps, and report the results back to the Winutil community.
|
If you're using a laptop or tablet and find your battery drains too fast, please try the below troubleshooting steps, and report the results back to the Winutil community.
|
||||||
|
|
||||||
1. **Check Battery Health:**
|
1. **Check Battery Health:**
|
||||||
- Press `Windows Key`+`X` and select *PowerShell (Admin)* in Windows 10, or `Windows Terminal (Admin)` in Windows 11.
|
- Press `Windows Key`+`X` and select _PowerShell (Admin)_ in Windows 10, or `Windows Terminal (Admin)` in Windows 11.
|
||||||
- Run the following command to generate a battery report:
|
- Run the following command to generate a battery report:
|
||||||
```powershell
|
```powershell
|
||||||
powercfg /batteryreport /output "C:\battery_report.html"
|
powercfg /batteryreport /output "C:\battery_report.html"
|
||||||
```
|
```
|
||||||
- Open the generated HTML report to review information about battery health and usage. A battery with poor health may hold less charge, discharge faster, or cause other issues.
|
- Open the generated HTML report to review information about battery health and usage. A battery with poor health may hold less charge, discharge faster, or cause other issues.
|
||||||
|
|
||||||
2. **Review Power Settings:**
|
2. **Review Power Settings:**
|
||||||
- Open the Settings app, and go to *System* > *Power & sleep*.
|
- Open the Settings app, and go to _System_ > _Power & sleep_.
|
||||||
- Adjust power plan settings based on your preferences and usage patterns.
|
- Adjust power plan settings based on your preferences and usage patterns.
|
||||||
- Click on *Additional power settings* to access advanced power settings that may help.
|
- Click on _Additional power settings_ to access advanced power settings that may help.
|
||||||
|
|
||||||
3. **Identify Power-Hungry Apps:**
|
3. **Identify Power-Hungry Apps:**
|
||||||
- Right-click on the taskbar and select *Task Manager*.
|
- Right-click on the taskbar and select _Task Manager_.
|
||||||
- Navigate to the *Processes* tab to identify applications with high CPU or memory usage.
|
- Navigate to the _Processes_ tab to identify applications with high CPU or memory usage.
|
||||||
- Consider reconfiguring, closing, disabling, or uninstalling applications that use a lot of resources.
|
- Consider reconfiguring, closing, disabling, or uninstalling applications that use a lot of resources.
|
||||||
|
|
||||||
4. **Update Drivers:**
|
4. **Update Drivers:**
|
||||||
- Visit your device manufacturer's website or use Windows Update to check for driver updates.
|
- Visit your device manufacturer's website or use Windows Update to check for driver updates.
|
||||||
- Ensure graphics, chipset, and other essential drivers are up to date.
|
- Ensure graphics, chipset, and other essential drivers are up to date.
|
||||||
|
|
||||||
5. **Check for Windows Updates:**
|
5. **Check for Windows Updates:**
|
||||||
- Open the Settings app, and go to *Update & Security* > *Windows Update*.
|
- Open the Settings app, and go to _Update & Security_ > _Windows Update_.
|
||||||
- Check for and install any available updates for your operating system.
|
- Check for and install any available updates for your operating system.
|
||||||
|
|
||||||
6. **Reduce Screen Brightness:**
|
6. **Reduce Screen Brightness:**
|
||||||
- Open the Settings app, and go to *System* > *Display*.
|
- Open the Settings app, and go to _System_ > _Display_.
|
||||||
- Adjust screen brightness based on your preferences and lighting conditions.
|
- Adjust screen brightness based on your preferences and lighting conditions.
|
||||||
|
|
||||||
7. **Enable Battery Saver:**
|
7. **Enable Battery Saver:**
|
||||||
- Open the Settings app, and go to *System* > *Battery*.
|
- Open the Settings app, and go to _System_ > _Battery_.
|
||||||
- Turn on *Battery saver* to limit background activity and conserve power.
|
- Turn on _Battery saver_ to limit background activity and conserve power.
|
||||||
|
|
||||||
8. **Check Power Usage in Settings:**
|
8. **Check Power Usage in Settings:**
|
||||||
- Open the Settings app, and go to *System* > *Battery* > *Battery usage by app*.
|
- Open the Settings app, and go to _System_ > _Battery_ > _Battery usage by app_.
|
||||||
- Review the list of apps and their power usage. Disable or uninstall any you don't need.
|
- Review the list of apps and their power usage. Disable or uninstall any you don't need.
|
||||||
|
|
||||||
9. **Check Background Apps:**
|
9. **Check Background Apps:**
|
||||||
- Open the Settings app, and go to *Privacy* > *Background apps*.
|
- Open the Settings app, and go to _Privacy_ > _Background apps_.
|
||||||
- Disable or uninstall unnecessary apps running in the background.
|
- Disable or uninstall unnecessary apps running in the background.
|
||||||
|
|
||||||
10. **Use `powercfg` for Analysis:**
|
10. **Use `powercfg` for Analysis:**
|
||||||
- Press `Windows Key`+`X` and select *PowerShell (Admin)* in Windows 10, or `Windows Terminal (Admin)` in Windows 11.
|
- Press `Windows Key`+`X` and select _PowerShell (Admin)_ in Windows 10, or `Windows Terminal (Admin)` in Windows 11.
|
||||||
- Run the following command to analyze energy usage and generate a report:
|
- Run the following command to analyze energy usage and generate a report:
|
||||||
```powershell
|
```powershell
|
||||||
powercfg /energy /output "C:\energy_report.html"
|
powercfg /energy /output "C:\energy_report.html"
|
||||||
```
|
```
|
||||||
- Open the generated HTML report to identify energy consumption patterns.
|
- Open the generated HTML report to identify energy consumption patterns.
|
||||||
|
|
||||||
11. **Review Event Logs:**
|
11. **Review Event Logs:**
|
||||||
- Open Event Viewer by searching for it in the Start menu.
|
- Open Event Viewer by searching for it in the Start menu.
|
||||||
- Navigate to *Windows Logs* > *System*.
|
- Navigate to _Windows Logs_ > _System_.
|
||||||
- Look for events with the source *Power-Troubleshooter* to identify power-related events. These may highlight battery, input power, and other issues.
|
- Look for events with the source _Power-Troubleshooter_ to identify power-related events. These may highlight battery, input power, and other issues.
|
||||||
|
|
||||||
12. **Check Wake-up Sources:**
|
12. **Check Wake-up Sources:**
|
||||||
- Press `Windows Key`+`X` and select *PowerShell (Admin)* in Windows 10, or `Windows Terminal (Admin)` in Windows 11.
|
- Press `Windows Key`+`X` and select _PowerShell (Admin)_ in Windows 10, or `Windows Terminal (Admin)` in Windows 11.
|
||||||
- Use the command `powercfg /requests` to identify processes preventing sleep.
|
- Use the command `powercfg /requests` to identify processes preventing sleep.
|
||||||
- Use the command `powercfg /waketimers` to view active wake timers.
|
- Use the command `powercfg /waketimers` to view active wake timers.
|
||||||
- Check Task Scheduler to see if any of the discovered processes are scheduled to start on boot or at regular intervals.
|
- Check Task Scheduler to see if any of the discovered processes are scheduled to start on boot or at regular intervals.
|
||||||
|
|
||||||
13. **Advanced Identification of Power-Hungry Apps:**
|
13. **Advanced Identification of Power-Hungry Apps:**
|
||||||
- Open Resource Monitor from the Start menu.
|
- Open Resource Monitor from the Start menu.
|
||||||
- Navigate to the *CPU*, *Memory*, *Network*, and other tabs to identify processes with high resource usage.
|
- Navigate to the _CPU_, _Memory_, _Network_, and other tabs to identify processes with high resource usage.
|
||||||
- Consider reconfiguring, closing, disabling, or uninstalling applications that use a lot of resources.
|
- Consider reconfiguring, closing, disabling, or uninstalling applications that use a lot of resources.
|
||||||
|
|
||||||
14. **Disable Activity History:**
|
14. **Disable Activity History:**
|
||||||
- Open the Settings app, and go to *Privacy* > *Activity history*.
|
- Open the Settings app, and go to _Privacy_ > _Activity history_.
|
||||||
- Turn off *Let Windows collect my activities from this PC*.
|
- Turn off _Let Windows collect my activities from this PC_.
|
||||||
|
|
||||||
15. **Prevent Network Adapters From Waking PC:**
|
15. **Prevent Network Adapters From Waking PC:**
|
||||||
- Open Device Manager by searching for it in the Start menu.
|
- Open Device Manager by searching for it in the Start menu.
|
||||||
- Locate your network adapter, right-click, and go to *Properties*.
|
- Locate your network adapter, right-click, and go to _Properties_.
|
||||||
- Under the *Power Management* tab, uncheck the option that allows the device to wake the computer.
|
- Under the _Power Management_ tab, uncheck the option that allows the device to wake the computer.
|
||||||
|
|
||||||
16. **Review Installed Applications:**
|
16. **Review Installed Applications:**
|
||||||
- Manually review installed applications by searching for *Add or remove programs* in the Start menu.
|
- Manually review installed applications by searching for _Add or remove programs_ in the Start menu.
|
||||||
- Check settings/preferences of individual applications for power-related options.
|
- Check settings/preferences of individual applications for power-related options.
|
||||||
- Uninstall unnecessary or problematic software.
|
- Uninstall unnecessary or problematic software.
|
||||||
|
|
||||||
These troubleshooting steps are generic, but should help in most situations. You should have these key takeaways:
|
These troubleshooting steps are generic, but should help in most situations. You should have these key takeaways:
|
||||||
|
|
||||||
- Battery health is the most significant limiter on your device's runtime. A battery in poor health usually cannot be made to last like it used to, simply by closing some applications. Consider replacing your battery.
|
- Battery health is the most significant limiter on your device's runtime. A battery in poor health usually cannot be made to last like it used to, simply by closing some applications. Consider replacing your battery.
|
||||||
- Background applications that use CPU and memory, make lots of or large network requests, read/write to disk frequently, or that keep your PC awake when it could be conserving energy are the next major concern. Avoid installing programs you don't need, only use programs you trust, and configure applications to use as little power and run as infrequently as possible.
|
- Background applications that use CPU and memory, make lots of or large network requests, read/write to disk frequently, or that keep your PC awake when it could be conserving energy are the next major concern. Avoid installing programs you don't need, only use programs you trust, and configure applications to use as little power and run as infrequently as possible.
|
||||||
- Windows performs a lot of tasks that may affect battery life by default. Changing settings, stopping scheduled tasks, and disabling features can help the system stay in lower power states to conserve battery.
|
- Windows performs a lot of tasks that may affect battery life by default. Changing settings, stopping scheduled tasks, and disabling features can help the system stay in lower power states to conserve battery.
|
||||||
|
|||||||
@@ -1,108 +1,43 @@
|
|||||||
# Table of Contents
|
---
|
||||||
|
title: Developer Reference
|
||||||
|
weight: 3
|
||||||
|
---
|
||||||
|
|
||||||
|
> [!NOTE]
|
||||||
|
> This section contains technical documentation for developers. For end-user documentation, see the [User Guide](../userguide/).
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
- [Architecture & Design](architecture/) - Code structure, data flow, and how Winutil works internally
|
||||||
|
|
||||||
## Tweaks
|
## Tweaks
|
||||||
|
|
||||||
### Essential Tweaks
|
### Essential Tweaks
|
||||||
|
|
||||||
- [Change Windows Terminal default: PowerShell 5 -> PowerShell 7](tweaks/essential-tweaks/powershell7/)
|
{{< autolinks section="dev/tweaks/essential-tweaks" >}}
|
||||||
- [Create Restore Point](tweaks/essential-tweaks/restorepoint/)
|
|
||||||
- [Debloat Edge](tweaks/essential-tweaks/edgedebloat/)
|
|
||||||
- [Delete Temporary Files](tweaks/essential-tweaks/deletetempfiles/)
|
|
||||||
- [Disable Activity History](tweaks/essential-tweaks/ah/)
|
|
||||||
- [Disable ConsumerFeatures](tweaks/essential-tweaks/consumerfeatures/)
|
|
||||||
- [Disable GameDVR](tweaks/essential-tweaks/dvr/)
|
|
||||||
- [Disable Hibernation](tweaks/essential-tweaks/hiber/)
|
|
||||||
- [Disable Homegroup](tweaks/essential-tweaks/home/)
|
|
||||||
- [Disable Location Tracking](tweaks/essential-tweaks/loc/)
|
|
||||||
- [Disable Powershell 7 Telemetry](tweaks/essential-tweaks/powershell7tele/)
|
|
||||||
- [Disable Storage Sense](tweaks/essential-tweaks/storage/)
|
|
||||||
- [Disable Telemetry](tweaks/essential-tweaks/tele/)
|
|
||||||
- [Disable Wifi-Sense](tweaks/essential-tweaks/wifi/)
|
|
||||||
- [Enable End Task With Right Click](tweaks/essential-tweaks/endtaskontaskbar/)
|
|
||||||
- [Prefer IPv4 over IPv6](tweaks/essential-tweaks/ipv46/)
|
|
||||||
- [Run Disk Cleanup](tweaks/essential-tweaks/diskcleanup/)
|
|
||||||
- [Set Hibernation as default (good for laptops)](tweaks/essential-tweaks/laptophibernation/)
|
|
||||||
- [Set Services to Manual](tweaks/essential-tweaks/services/)
|
|
||||||
### Shortcuts
|
|
||||||
|
|
||||||
- [Create Winutil Shortcut](tweaks/shortcuts/shortcut/)
|
|
||||||
### Advanced Tweaks (CAUTION)
|
### Advanced Tweaks (CAUTION)
|
||||||
|
|
||||||
- [Adobe Debloat](tweaks/z--advanced-tweaks---caution/debloatadobe/)
|
{{< autolinks section="dev/tweaks/z--advanced-tweaks---caution" >}}
|
||||||
- [Adobe Network Block](tweaks/z--advanced-tweaks---caution/blockadobenet/)
|
|
||||||
- [Disable Background Apps](tweaks/z--advanced-tweaks---caution/disablebgapps/)
|
|
||||||
- [Disable Fullscreen Optimizations](tweaks/z--advanced-tweaks---caution/disablefso/)
|
|
||||||
- [Disable Intel MM (vPro LMS)](tweaks/z--advanced-tweaks---caution/disablelms1/)
|
|
||||||
- [Disable IPv6](tweaks/z--advanced-tweaks---caution/disableipsix/)
|
|
||||||
- [Disable Microsoft Copilot](tweaks/z--advanced-tweaks---caution/removecopilot/)
|
|
||||||
- [Disable Notification Tray/Calendar](tweaks/z--advanced-tweaks---caution/disablenotifications/)
|
|
||||||
- [Disable Teredo](tweaks/z--advanced-tweaks---caution/teredo/)
|
|
||||||
- [DNS](tweaks/z--advanced-tweaks---caution/changedns/)
|
|
||||||
- [Remove ALL MS Store Apps - NOT RECOMMENDED](tweaks/z--advanced-tweaks---caution/debloat/)
|
|
||||||
- [Remove Home and Gallery from explorer](tweaks/z--advanced-tweaks---caution/removehomegallery/)
|
|
||||||
- [Remove Microsoft Edge](tweaks/z--advanced-tweaks---caution/removeedge/)
|
|
||||||
- [Remove OneDrive](tweaks/z--advanced-tweaks---caution/removeonedrive/)
|
|
||||||
- [Run OO Shutup 10](tweaks/z--advanced-tweaks---caution/oosubutton/)
|
|
||||||
- [Set Classic Right-Click Menu ](tweaks/z--advanced-tweaks---caution/rightclickmenu/)
|
|
||||||
- [Set Display for Performance](tweaks/z--advanced-tweaks---caution/display/)
|
|
||||||
- [Set Time to UTC (Dual Boot)](tweaks/z--advanced-tweaks---caution/utc/)
|
|
||||||
### Customize Preferences
|
### Customize Preferences
|
||||||
|
|
||||||
- [Bing Search in Start Menu](tweaks/customize-preferences/bingsearch/)
|
{{< autolinks section="dev/tweaks/customize-preferences" >}}
|
||||||
- [Center Taskbar Items](tweaks/customize-preferences/taskbaralignment/)
|
|
||||||
- [Dark Theme for Windows](tweaks/customize-preferences/darkmode/)
|
|
||||||
- [Detailed BSoD](tweaks/customize-preferences/detailedbsod/)
|
|
||||||
- [Mouse Acceleration](tweaks/customize-preferences/mouseacceleration/)
|
|
||||||
- [NumLock on Startup](tweaks/customize-preferences/numlock/)
|
|
||||||
- [Search Button in Taskbar](tweaks/customize-preferences/taskbarsearch/)
|
|
||||||
- [Show File Extensions](tweaks/customize-preferences/showext/)
|
|
||||||
- [Show Hidden Files](tweaks/customize-preferences/hiddenfiles/)
|
|
||||||
- [Snap Assist Flyout](tweaks/customize-preferences/snapflyout/)
|
|
||||||
- [Snap Assist Suggestion](tweaks/customize-preferences/snapsuggestion/)
|
|
||||||
- [Snap Window](tweaks/customize-preferences/snapwindow/)
|
|
||||||
- [Sticky Keys](tweaks/customize-preferences/stickykeys/)
|
|
||||||
- [Task View Button in Taskbar](tweaks/customize-preferences/taskview/)
|
|
||||||
- [Verbose Messages During Logon](tweaks/customize-preferences/verboselogon/)
|
|
||||||
- [Widgets Button in Taskbar](tweaks/customize-preferences/taskbarwidgets/)
|
|
||||||
### Performance Plans
|
### Performance Plans
|
||||||
|
|
||||||
- [Add and Activate Ultimate Performance Profile](tweaks/performance-plans/addultperf/)
|
{{< autolinks section="dev/tweaks/performance-plans" >}}
|
||||||
- [Remove Ultimate Performance Profile](tweaks/performance-plans/removeultperf/)
|
|
||||||
|
|
||||||
## Features
|
## Features
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
||||||
- [Remove Adobe Creative Cloud](features/fixes/runadobecccleanertool/)
|
{{< autolinks section="dev/features/fixes" >}}
|
||||||
- [Reset Network](features/fixes/network/)
|
|
||||||
- [Reset Windows Update](features/fixes/update/)
|
|
||||||
- [Set Up Autologin](features/fixes/autologin/)
|
|
||||||
- [System Corruption Scan](features/fixes/dism/)
|
|
||||||
- [WinGet Reinstall](features/fixes/winget/)
|
|
||||||
### Legacy Windows Panels
|
### Legacy Windows Panels
|
||||||
|
|
||||||
- [Control Panel](features/legacy-windows-panels/control/)
|
{{< autolinks section="dev/features/legacy-windows-panels" >}}
|
||||||
- [Network Connections](features/legacy-windows-panels/network/)
|
|
||||||
- [Power Panel](features/legacy-windows-panels/power/)
|
|
||||||
- [Printer Settings](features/legacy-windows-panels/printer/)
|
|
||||||
- [Region](features/legacy-windows-panels/region/)
|
|
||||||
- [Sound Settings](features/legacy-windows-panels/sound/)
|
|
||||||
- [System Properties](features/legacy-windows-panels/system/)
|
|
||||||
- [User Accounts](features/legacy-windows-panels/user/)
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
- [All .Net Framework (2,3,4)](features/features/dotnet/)
|
{{< autolinks section="dev/features/features" >}}
|
||||||
- [Disable Legacy F8 Boot Recovery](features/features/disablelegacyrecovery/)
|
|
||||||
- [Disable Search Box Web Suggestions in Registry(explorer restart)](features/features/disablesearchsuggestions/)
|
|
||||||
- [Enable Daily Registry Backup Task 12.30am](features/features/regbackup/)
|
|
||||||
- [Enable Legacy F8 Boot Recovery](features/features/enablelegacyrecovery/)
|
|
||||||
- [Enable Search Box Web Suggestions in Registry(explorer restart)](features/features/enablesearchsuggestions/)
|
|
||||||
- [HyperV Virtualization](features/features/hyperv/)
|
|
||||||
- [Install Features](features/features/install/)
|
|
||||||
- [Legacy Media (wmp, directplay)](features/features/legacymedia/)
|
|
||||||
- [NFS - Network File System](features/features/nfs/)
|
|
||||||
- [Windows Sandbox](features/features/sandbox/)
|
|
||||||
- [Windows Subsystem for Linux](features/features/wsl/)
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
550
docs/content/dev/architecture.md
Normal file
@@ -0,0 +1,550 @@
|
|||||||
|
---
|
||||||
|
title: Architecture & Design
|
||||||
|
weight: 1
|
||||||
|
toc: true
|
||||||
|
---
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
Winutil is a PowerShell-based Windows utility with a WPF (Windows Presentation Foundation) GUI. This document explains the architecture, code structure, and how different components work together.
|
||||||
|
|
||||||
|
## High-Level Architecture
|
||||||
|
|
||||||
|
```
|
||||||
|
┌─────────────────────────────────────────────────────┐
|
||||||
|
│ Winutil GUI │
|
||||||
|
│ (WPF XAML Interface) │
|
||||||
|
└──────────────────┬──────────────────────────────────┘
|
||||||
|
│
|
||||||
|
┌─────────┴─────────┐
|
||||||
|
│ │
|
||||||
|
┌────────▼──────┐ ┌───────▼────────┐
|
||||||
|
│ Public APIs │ │ Private APIs │
|
||||||
|
│ (User-facing)│ │ (Internal) │
|
||||||
|
└───────┬───────┘ └───────┬────────┘
|
||||||
|
│ │
|
||||||
|
└────────┬──────────┘
|
||||||
|
│
|
||||||
|
┌────────────▼────────────┐
|
||||||
|
│ Configuration Files │
|
||||||
|
│ (JSON definitions) │
|
||||||
|
└────────────┬────────────┘
|
||||||
|
│
|
||||||
|
┌────────────▼────────────┐
|
||||||
|
│ External Tools │
|
||||||
|
│ (WinGet, Chocolatey) │
|
||||||
|
└─────────────────────────┘
|
||||||
|
```
|
||||||
|
|
||||||
|
## Project Structure
|
||||||
|
|
||||||
|
### Directory Layout
|
||||||
|
|
||||||
|
```
|
||||||
|
winutil/
|
||||||
|
├── Compile.ps1 # Build script that combines all files
|
||||||
|
├── winutil.ps1 # Compiled output (generated)
|
||||||
|
├── scripts/
|
||||||
|
│ ├── main.ps1 # Entry point and GUI initialization
|
||||||
|
│ └── start.ps1 # Startup logic
|
||||||
|
├── functions/
|
||||||
|
│ ├── private/ # Internal helper functions
|
||||||
|
│ │ ├── Get-WinUtilVariables.ps1
|
||||||
|
│ │ ├── Install-WinUtilWinget.ps1
|
||||||
|
│ │ └── ...
|
||||||
|
│ ├── public/ # User-facing functions
|
||||||
|
│ │ ├── Initialize-WPFUI.ps1
|
||||||
|
│ │ └── ...
|
||||||
|
│ └── microwin/ # MicroWin specific functions
|
||||||
|
│ ├── Invoke-Microwin.ps1
|
||||||
|
│ └── ...
|
||||||
|
├── config/ # JSON configuration files
|
||||||
|
│ ├── applications.json # Application definitions
|
||||||
|
│ ├── tweaks.json # Tweak definitions
|
||||||
|
│ ├── feature.json # Windows feature definitions
|
||||||
|
│ └── preset.json # Preset configurations
|
||||||
|
├── xaml/
|
||||||
|
│ └── inputXML.xaml # GUI layout definition
|
||||||
|
└── docs/ # Documentation
|
||||||
|
```
|
||||||
|
|
||||||
|
### Key Components
|
||||||
|
|
||||||
|
#### 1. Compile.ps1
|
||||||
|
**Purpose**: Combines all separate script files into a single `winutil.ps1` for distribution.
|
||||||
|
|
||||||
|
**Process**:
|
||||||
|
1. Reads all function files from `/functions/`
|
||||||
|
2. Includes configuration JSON files
|
||||||
|
3. Embeds XAML GUI definition
|
||||||
|
4. Combines into single script
|
||||||
|
5. Outputs `winutil.ps1`
|
||||||
|
|
||||||
|
**Why**: Makes distribution easier (single file) and improves load time.
|
||||||
|
|
||||||
|
#### 2. scripts/main.ps1
|
||||||
|
**Purpose**: Entry point that initializes the GUI and event system.
|
||||||
|
|
||||||
|
**Responsibilities**:
|
||||||
|
- Load XAML and create WPF window
|
||||||
|
- Initialize form elements
|
||||||
|
- Set up event handlers
|
||||||
|
- Load configurations
|
||||||
|
- Display the GUI
|
||||||
|
|
||||||
|
#### 3. functions/public/
|
||||||
|
**Purpose**: User-facing functions that implement main features.
|
||||||
|
|
||||||
|
**Key Functions**:
|
||||||
|
- `Initialize-WPFUI.ps1`: Sets up the GUI
|
||||||
|
- `Invoke-WPFTweak*`: Applies system tweaks
|
||||||
|
- `Invoke-WPFFeature*`: Enables Windows features
|
||||||
|
- `Install-WinUtilProgram*`: Installs applications
|
||||||
|
|
||||||
|
**Naming Convention**: Functions start with `WPF` or `Winutil` to be loaded into the runspace.
|
||||||
|
|
||||||
|
#### 4. functions/private/
|
||||||
|
**Purpose**: Internal helper functions not directly called by users.
|
||||||
|
|
||||||
|
**Key Functions**:
|
||||||
|
- `Get-WinUtilVariables.ps1`: Retrieves UI element references
|
||||||
|
- `Install-WinUtilWinget.ps1`: Ensures WinGet is installed
|
||||||
|
- `Get-WinUtilCheckBoxes.ps1`: Gets checkbox states
|
||||||
|
- `Invoke-WinUtilCurrentSystem.ps1`: Gets system information
|
||||||
|
|
||||||
|
#### 5. config/*.json
|
||||||
|
**Purpose**: Define available applications, tweaks, and features declaratively.
|
||||||
|
|
||||||
|
**Files**:
|
||||||
|
- `applications.json`: Application definitions with WinGet/Choco IDs
|
||||||
|
- `tweaks.json`: Registry tweaks and their undo actions
|
||||||
|
- `feature.json`: Windows features that can be enabled/disabled
|
||||||
|
- `preset.json`: Predefined tweak combinations
|
||||||
|
- `dns.json`: DNS provider configurations
|
||||||
|
|
||||||
|
#### 6. xaml/inputXML.xaml
|
||||||
|
**Purpose**: WPF GUI layout and design.
|
||||||
|
|
||||||
|
**Structure**:
|
||||||
|
- TabControl for main tabs (Install, Tweaks, Config, MicroWin)
|
||||||
|
- Buttons with event handlers
|
||||||
|
- TextBoxes for input
|
||||||
|
- CheckBoxes for options
|
||||||
|
- ListBoxes for selections
|
||||||
|
|
||||||
|
## Data Flow
|
||||||
|
|
||||||
|
### Application Installation Flow
|
||||||
|
|
||||||
|
```
|
||||||
|
User clicks "Install"
|
||||||
|
↓
|
||||||
|
Get-WinUtilCheckBoxes → Retrieves selected apps
|
||||||
|
↓
|
||||||
|
For each selected app:
|
||||||
|
↓
|
||||||
|
Check if WinGet/Choco installed
|
||||||
|
↓
|
||||||
|
Install-WinUtilWinget/Choco (if needed)
|
||||||
|
↓
|
||||||
|
Install-WinUtilProgramWinget/Choco → Install app
|
||||||
|
↓
|
||||||
|
Update UI with progress
|
||||||
|
↓
|
||||||
|
Display completion message
|
||||||
|
```
|
||||||
|
|
||||||
|
### Tweak Application Flow
|
||||||
|
|
||||||
|
```
|
||||||
|
User selects tweaks and clicks "Run Tweaks"
|
||||||
|
↓
|
||||||
|
Get-WinUtilCheckBoxes → Get selected tweaks
|
||||||
|
↓
|
||||||
|
For each selected tweak:
|
||||||
|
↓
|
||||||
|
Load tweak definition from tweaks.json
|
||||||
|
↓
|
||||||
|
Invoke-WPFTweak → Apply registry/service changes
|
||||||
|
↓
|
||||||
|
Log changes
|
||||||
|
↓
|
||||||
|
Store original values (for undo)
|
||||||
|
↓
|
||||||
|
Update UI
|
||||||
|
↓
|
||||||
|
Display completion
|
||||||
|
```
|
||||||
|
|
||||||
|
### Undo Tweak Flow
|
||||||
|
|
||||||
|
```
|
||||||
|
User selects tweaks and clicks "Undo"
|
||||||
|
↓
|
||||||
|
Get-WinUtilCheckBoxes → Get selected tweaks
|
||||||
|
↓
|
||||||
|
For each tweak:
|
||||||
|
↓
|
||||||
|
Retrieve "OriginalState" from tweak definition
|
||||||
|
↓
|
||||||
|
Invoke-WPFUndoTweak → Restore original values
|
||||||
|
↓
|
||||||
|
Remove from applied tweaks log
|
||||||
|
↓
|
||||||
|
Update UI
|
||||||
|
```
|
||||||
|
|
||||||
|
## Configuration File Format
|
||||||
|
|
||||||
|
### applications.json Structure
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"WPFInstall<AppName>": {
|
||||||
|
"category": "Browsers",
|
||||||
|
"choco": "googlechrome",
|
||||||
|
"content": "Google Chrome",
|
||||||
|
"description": "Google Chrome browser",
|
||||||
|
"link": "https://chrome.google.com",
|
||||||
|
"winget": "Google.Chrome"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Fields**:
|
||||||
|
- `category`: Which section in the Install tab
|
||||||
|
- `content`: Display name in GUI
|
||||||
|
- `description`: Tooltip/description text
|
||||||
|
- `winget`: WinGet package ID
|
||||||
|
- `choco`: Chocolatey package name
|
||||||
|
- `link`: Official website
|
||||||
|
|
||||||
|
### tweaks.json Structure
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"WPFTweaksTelemetry": {
|
||||||
|
"Content": "Disable Telemetry",
|
||||||
|
"Description": "Disables Microsoft Telemetry",
|
||||||
|
"category": "Essential Tweaks",
|
||||||
|
"panel": "1",
|
||||||
|
"Order": "a003_",
|
||||||
|
"registry": [
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\DataCollection",
|
||||||
|
"Name": "AllowTelemetry",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"ScheduledTask": [
|
||||||
|
{
|
||||||
|
"Name": "Microsoft\\Windows\\Autochk\\Proxy",
|
||||||
|
"State": "Disabled",
|
||||||
|
"OriginalState": "Enabled"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Fields**:
|
||||||
|
- `Content`: Display name
|
||||||
|
- `Description`: What it does
|
||||||
|
- `category`: Essential/Advanced/Customize
|
||||||
|
- `registry`: Registry changes to make
|
||||||
|
- `ScheduledTask`: Scheduled tasks to modify
|
||||||
|
- `service`: Services to change
|
||||||
|
- `OriginalValue/State`: For undo functionality
|
||||||
|
|
||||||
|
## PowerShell Runspace
|
||||||
|
|
||||||
|
Winutil uses PowerShell runspaces for the GUI to remain responsive:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
# Create runspace
|
||||||
|
$sync.runspace = [runspacefactory]::CreateRunspace()
|
||||||
|
$sync.runspace.Open()
|
||||||
|
$sync.runspace.SessionStateProxy.SetVariable("sync", $sync)
|
||||||
|
|
||||||
|
# Run code in background
|
||||||
|
$powershell = [powershell]::Create().AddScript($scriptblock)
|
||||||
|
$powershell.Runspace = $sync.runspace
|
||||||
|
$handle = $powershell.BeginInvoke()
|
||||||
|
```
|
||||||
|
|
||||||
|
**Why**: Prevents UI freezing during long-running operations.
|
||||||
|
|
||||||
|
## WPF Event Handling
|
||||||
|
|
||||||
|
Events are wired up via XAML element names:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
# Get all named elements
|
||||||
|
$sync.keys | ForEach-Object {
|
||||||
|
if($sync.$_.GetType().Name -eq "Button") {
|
||||||
|
$sync.$_.Add_Click({
|
||||||
|
$button = $sync.$($args[0].Name)
|
||||||
|
& "Invoke-$($args[0].Name)"
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Convention**: Button named `WPFInstallButton` calls function `Invoke-WPFInstallButton`.
|
||||||
|
|
||||||
|
## Package Manager Integration
|
||||||
|
|
||||||
|
### WinGet Integration
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
# Check if installed
|
||||||
|
if (!(Get-Command winget -ErrorAction SilentlyContinue)) {
|
||||||
|
Install-WinUtilWinget
|
||||||
|
}
|
||||||
|
|
||||||
|
# Install package
|
||||||
|
winget install --id $app.winget --silent --accept-source-agreements
|
||||||
|
```
|
||||||
|
|
||||||
|
### Chocolatey Integration
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
# Check if installed
|
||||||
|
if (!(Get-Command choco -ErrorAction SilentlyContinue)) {
|
||||||
|
Install-WinUtilChoco
|
||||||
|
}
|
||||||
|
|
||||||
|
# Install package
|
||||||
|
choco install $app.choco -y
|
||||||
|
```
|
||||||
|
|
||||||
|
## MicroWin Architecture
|
||||||
|
|
||||||
|
MicroWin operates in phases:
|
||||||
|
|
||||||
|
1. **Mount ISO**: Extract Windows image
|
||||||
|
2. **Modify Image**: Remove components, apply tweaks
|
||||||
|
3. **Inject Drivers**: Add custom drivers (optional)
|
||||||
|
4. **Create Unattend**: Generate automated install configuration
|
||||||
|
5. **Rebuild ISO**: Package modified image into new ISO
|
||||||
|
|
||||||
|
**Key Files**:
|
||||||
|
- `Invoke-Microwin.ps1`: Main orchestration
|
||||||
|
- `Microwin-RemovePackages.ps1`: Remove Windows packages
|
||||||
|
- `Microwin-RemoveFeatures.ps1`: Disable features
|
||||||
|
- `Microwin-NewUnattend.ps1`: Create unattend.xml
|
||||||
|
|
||||||
|
## Error Handling
|
||||||
|
|
||||||
|
Winutil uses PowerShell error handling:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
try {
|
||||||
|
# Attempt operation
|
||||||
|
Invoke-SomeOperation
|
||||||
|
}
|
||||||
|
catch {
|
||||||
|
Write-Host "Error: $_" -ForegroundColor Red
|
||||||
|
# Log error
|
||||||
|
Add-Content -Path $logfile -Value "ERROR: $_"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
**Logging**: Errors and operations are logged for debugging.
|
||||||
|
|
||||||
|
## Configuration Loading
|
||||||
|
|
||||||
|
At startup, Winutil loads all configurations:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
# Load JSON configs
|
||||||
|
$sync.configs = @{}
|
||||||
|
$sync.configs.applications = Get-Content "config/applications.json" | ConvertFrom-Json
|
||||||
|
$sync.configs.tweaks = Get-Content "config/tweaks.json" | ConvertFrom-Json
|
||||||
|
$sync.configs.features = Get-Content "config/feature.json" | ConvertFrom-Json
|
||||||
|
```
|
||||||
|
|
||||||
|
**Sync Hash**: `$sync` hashtable shares state across runspaces.
|
||||||
|
|
||||||
|
## UI Update Pattern
|
||||||
|
|
||||||
|
UI updates must happen on the UI thread:
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
$sync.form.Dispatcher.Invoke([action]{
|
||||||
|
$sync.WPFStatusLabel.Content = "Installing..."
|
||||||
|
}, "Normal")
|
||||||
|
```
|
||||||
|
|
||||||
|
**Why**: WPF requires UI updates on the main thread.
|
||||||
|
|
||||||
|
## Adding New Features
|
||||||
|
|
||||||
|
### Adding a New Application
|
||||||
|
|
||||||
|
1. Edit `config/applications.json`:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"WPFInstallNewApp": {
|
||||||
|
"category": "Utilities",
|
||||||
|
"content": "New App",
|
||||||
|
"description": "Description of new app",
|
||||||
|
"winget": "Publisher.AppName",
|
||||||
|
"choco": "appname"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Recompile: `.\Compile.ps1`
|
||||||
|
3. The app appears automatically in Install tab
|
||||||
|
|
||||||
|
### Adding a New Tweak
|
||||||
|
|
||||||
|
1. Edit `config/tweaks.json`:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"WPFTweaksNewTweak": {
|
||||||
|
"Content": "New Tweak",
|
||||||
|
"Description": "What it does",
|
||||||
|
"category": "Essential Tweaks",
|
||||||
|
"registry": [
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\Path\\To\\Key",
|
||||||
|
"Name": "ValueName",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "1",
|
||||||
|
"OriginalValue": "0"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Recompile: `.\Compile.ps1`
|
||||||
|
3. Tweak appears in Tweaks tab
|
||||||
|
|
||||||
|
### Adding a New Function
|
||||||
|
|
||||||
|
1. Create file in `functions/public/` or `functions/private/`:
|
||||||
|
```powershell
|
||||||
|
# functions/public/Invoke-WPFNewFeature.ps1
|
||||||
|
function Invoke-WPFNewFeature {
|
||||||
|
<#
|
||||||
|
.SYNOPSIS
|
||||||
|
Does something new
|
||||||
|
#>
|
||||||
|
# Implementation
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
2. File naming must include "WPF" or "Winutil" to load
|
||||||
|
3. Recompile: `.\Compile.ps1`
|
||||||
|
|
||||||
|
## Testing
|
||||||
|
|
||||||
|
### Manual Testing
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
# Compile and run with -run flag
|
||||||
|
.\Compile.ps1 -run
|
||||||
|
```
|
||||||
|
|
||||||
|
### Automated Tests
|
||||||
|
|
||||||
|
Tests are in `/pester/`:
|
||||||
|
- `configs.Tests.ps1`: Validates JSON configurations
|
||||||
|
- `functions.Tests.ps1`: Tests PowerShell functions
|
||||||
|
|
||||||
|
Run tests:
|
||||||
|
```powershell
|
||||||
|
Invoke-Pester
|
||||||
|
```
|
||||||
|
|
||||||
|
## Build Process
|
||||||
|
|
||||||
|
### Development Build
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
.\Compile.ps1
|
||||||
|
```
|
||||||
|
|
||||||
|
Outputs `winutil.ps1` in the root directory.
|
||||||
|
|
||||||
|
### Production Release
|
||||||
|
|
||||||
|
1. Tag release in Git
|
||||||
|
2. GitHub Actions builds and uploads `winutil.ps1`
|
||||||
|
3. Release appears on GitHub Releases
|
||||||
|
4. Users download via `irm christitus.com/win`
|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
|
||||||
|
**Required**:
|
||||||
|
- PowerShell 5.1+
|
||||||
|
- .NET Framework 4.5+
|
||||||
|
- Windows 10 1809+
|
||||||
|
|
||||||
|
**Optional (auto-installed)**:
|
||||||
|
- WinGet (Windows Package Manager)
|
||||||
|
- Chocolatey
|
||||||
|
- oscdimg.exe (for MicroWin)
|
||||||
|
|
||||||
|
## Performance Considerations
|
||||||
|
|
||||||
|
**Optimization Strategies**:
|
||||||
|
- Lazy-load configurations (only when needed)
|
||||||
|
- Use runspaces for long operations
|
||||||
|
- Cache expensive lookups
|
||||||
|
- Minimize registry reads/writes
|
||||||
|
- Batch operations when possible
|
||||||
|
|
||||||
|
## Security Considerations
|
||||||
|
|
||||||
|
**Safety Measures**:
|
||||||
|
- All operations logged
|
||||||
|
- Registry backups for undo
|
||||||
|
- No credential storage
|
||||||
|
- Open source (auditable)
|
||||||
|
- Digitally signed (future)
|
||||||
|
|
||||||
|
## Contributing Guidelines
|
||||||
|
|
||||||
|
**Code Standards**:
|
||||||
|
- Use proper PowerShell cmdlet naming (Verb-Noun)
|
||||||
|
- Include comment-based help
|
||||||
|
- Follow existing code style
|
||||||
|
- Test thoroughly before PR
|
||||||
|
- Document significant changes
|
||||||
|
|
||||||
|
**File Naming**:
|
||||||
|
- Public functions: `Invoke-WPF*.ps1` or `Invoke-Winutil*.ps1`
|
||||||
|
- Private functions: `Get-WinUtil*.ps1` or verb-WinUtil*.ps1`
|
||||||
|
- Must include "WPF" or "Winutil" to load
|
||||||
|
|
||||||
|
## Future Architecture Plans
|
||||||
|
|
||||||
|
**Roadmap Considerations**:
|
||||||
|
- Plugin system for community extensions
|
||||||
|
- Config import/export
|
||||||
|
- Cloud sync for configurations
|
||||||
|
- Enhanced logging dashboard
|
||||||
|
- Modular compilation (choose features)
|
||||||
|
|
||||||
|
## Related Documentation
|
||||||
|
|
||||||
|
- [Contributing Guide](../../contributing/) - How to contribute code
|
||||||
|
- [User Guide](../../userguide/) - End-user documentation
|
||||||
|
- [FAQ](../../faq/) - Common questions
|
||||||
|
|
||||||
|
## Additional Resources
|
||||||
|
|
||||||
|
- **GitHub Repository**: [ChrisTitusTech/winutil](https://github.com/ChrisTitusTech/winutil)
|
||||||
|
- **PowerShell Docs**: [Microsoft Docs](https://docs.microsoft.com/powershell/)
|
||||||
|
- **WPF Guide**: [WPF Documentation](https://docs.microsoft.com/dotnet/desktop/wpf/)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
**Last Updated**: January 2026
|
||||||
|
**Maintainers**: Chris Titus Tech and contributors
|
||||||
@@ -1,61 +1,14 @@
|
|||||||
# Disable Legacy F8 Boot Recovery
|
# Disable Legacy F8 Boot Recovery
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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 Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
"WPFFeatureEnableLegacyRecovery": {
|
||||||
"Content": "Disable Legacy F8 Boot Recovery",
|
"Content": "Enable Legacy F8 Boot Recovery",
|
||||||
"Description": "Disables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.",
|
"Description": "Enables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.",
|
||||||
"category": "Features",
|
"category": "Features",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a019_",
|
"Order": "a018_",
|
||||||
"feature": [],
|
"feature": [],
|
||||||
"InvokeScript": [
|
"InvokeScript": [
|
||||||
"
|
"bcdedit /set bootmenupolicy standard"
|
||||||
If (!(Test-Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood')) {
|
],
|
||||||
New-Item -Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood' -Force | Out-Null
|
|
||||||
}
|
|
||||||
New-ItemProperty -Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood' -Name 'Enabled' -Type DWord -Value 0 -Force
|
|
||||||
Start-Process -FilePath cmd.exe -ArgumentList '/c bcdedit /Set {Current} BootMenuPolicy Standard' -Wait
|
|
||||||
"
|
|
||||||
],
|
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/features/Features/DisableLegacyRecovery"
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Invoke Script
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
|
|
||||||
If (!(Test-Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager\LastKnownGood')) {
|
|
||||||
New-Item -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager\LastKnownGood' -Force | Out-Null
|
|
||||||
}
|
|
||||||
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager\LastKnownGood' -Name 'Enabled' -Type DWord -Value 0 -Force
|
|
||||||
Start-Process -FilePath cmd.exe -ArgumentList '/c bcdedit /Set {Current} BootMenuPolicy Standard' -Wait
|
|
||||||
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,61 +0,0 @@
|
|||||||
# Disable Search Box Web Suggestions in Registry(explorer restart)
|
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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 web suggestions when searching using Windows Search.
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"Content": "Disable Search Box Web Suggestions in Registry(explorer restart)",
|
|
||||||
"Description": "Disables web suggestions when searching using Windows Search.",
|
|
||||||
"category": "Features",
|
|
||||||
"panel": "1",
|
|
||||||
"Order": "a016_",
|
|
||||||
"feature": [],
|
|
||||||
"InvokeScript": [
|
|
||||||
"
|
|
||||||
If (!(Test-Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer')) {
|
|
||||||
New-Item -Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer' -Force | Out-Null
|
|
||||||
}
|
|
||||||
New-ItemProperty -Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer' -Name 'DisableSearchBoxSuggestions' -Type DWord -Value 1 -Force
|
|
||||||
Stop-Process -name explorer -force
|
|
||||||
"
|
|
||||||
],
|
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/features/Features/DisableSearchSuggestions"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Invoke Script
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
|
|
||||||
If (!(Test-Path 'HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer')) {
|
|
||||||
New-Item -Path 'HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer' -Force | Out-Null
|
|
||||||
}
|
|
||||||
New-ItemProperty -Path 'HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer' -Name 'DisableSearchBoxSuggestions' -Type DWord -Value 1 -Force
|
|
||||||
Stop-Process -name explorer -force
|
|
||||||
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)
|
|
||||||
|
|
||||||
@@ -1,61 +1,14 @@
|
|||||||
# Enable Legacy F8 Boot Recovery
|
# Enable Legacy F8 Boot Recovery
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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
|
|
||||||
|
|
||||||
Enables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
"WPFFeatureEnableLegacyRecovery": {
|
||||||
"Content": "Enable Legacy F8 Boot Recovery",
|
"Content": "Enable Legacy F8 Boot Recovery",
|
||||||
"Description": "Enables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.",
|
"Description": "Enables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.",
|
||||||
"category": "Features",
|
"category": "Features",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a018_",
|
"Order": "a018_",
|
||||||
"feature": [],
|
"feature": [],
|
||||||
"InvokeScript": [
|
"InvokeScript": [
|
||||||
"
|
"bcdedit /set bootmenupolicy legacy"
|
||||||
If (!(Test-Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood')) {
|
],
|
||||||
New-Item -Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood' -Force | Out-Null
|
|
||||||
}
|
|
||||||
New-ItemProperty -Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood' -Name 'Enabled' -Type DWord -Value 1 -Force
|
|
||||||
Start-Process -FilePath cmd.exe -ArgumentList '/c bcdedit /Set {Current} BootMenuPolicy Legacy' -Wait
|
|
||||||
"
|
|
||||||
],
|
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/features/Features/EnableLegacyRecovery"
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Invoke Script
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
|
|
||||||
If (!(Test-Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager\LastKnownGood')) {
|
|
||||||
New-Item -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager\LastKnownGood' -Force | Out-Null
|
|
||||||
}
|
|
||||||
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager\LastKnownGood' -Name 'Enabled' -Type DWord -Value 1 -Force
|
|
||||||
Start-Process -FilePath cmd.exe -ArgumentList '/c bcdedit /Set {Current} BootMenuPolicy Legacy' -Wait
|
|
||||||
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,61 +0,0 @@
|
|||||||
# Enable Search Box Web Suggestions in Registry(explorer restart)
|
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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
|
|
||||||
|
|
||||||
Enables web suggestions when searching using Windows Search.
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"Content": "Enable Search Box Web Suggestions in Registry(explorer restart)",
|
|
||||||
"Description": "Enables web suggestions when searching using Windows Search.",
|
|
||||||
"category": "Features",
|
|
||||||
"panel": "1",
|
|
||||||
"Order": "a015_",
|
|
||||||
"feature": [],
|
|
||||||
"InvokeScript": [
|
|
||||||
"
|
|
||||||
If (!(Test-Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer')) {
|
|
||||||
New-Item -Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer' -Force | Out-Null
|
|
||||||
}
|
|
||||||
New-ItemProperty -Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer' -Name 'DisableSearchBoxSuggestions' -Type DWord -Value 0 -Force
|
|
||||||
Stop-Process -name explorer -force
|
|
||||||
"
|
|
||||||
],
|
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/features/Features/EnableSearchSuggestions"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Invoke Script
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
|
|
||||||
If (!(Test-Path 'HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer')) {
|
|
||||||
New-Item -Path 'HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer' -Force | Out-Null
|
|
||||||
}
|
|
||||||
New-ItemProperty -Path 'HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer' -Name 'DisableSearchBoxSuggestions' -Type DWord -Value 0 -Force
|
|
||||||
Stop-Process -name explorer -force
|
|
||||||
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)
|
|
||||||
|
|
||||||
@@ -1,80 +0,0 @@
|
|||||||
# Install Features
|
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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": "Install Features",
|
|
||||||
"category": "Features",
|
|
||||||
"panel": "1",
|
|
||||||
"Order": "a060_",
|
|
||||||
"Type": "Button",
|
|
||||||
"ButtonWidth": "300",
|
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/features/Features/Install"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Function: Invoke-WPFFeatureInstall
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
function Invoke-WPFFeatureInstall {
|
|
||||||
<#
|
|
||||||
|
|
||||||
.SYNOPSIS
|
|
||||||
Installs selected Windows Features
|
|
||||||
|
|
||||||
#>
|
|
||||||
|
|
||||||
if($sync.ProcessRunning) {
|
|
||||||
$msg = "[Invoke-WPFFeatureInstall] Install process is currently running."
|
|
||||||
[System.Windows.MessageBox]::Show($msg, "Winutil", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Warning)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
$Features = (Get-WinutilCheckBoxes)["WPFFeature"]
|
|
||||||
|
|
||||||
Invoke-WPFRunspace -ArgumentList $Features -DebugPreference $DebugPreference -ScriptBlock {
|
|
||||||
param($Features, $DebugPreference)
|
|
||||||
$sync.ProcessRunning = $true
|
|
||||||
if ($Features.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" })
|
|
||||||
}
|
|
||||||
|
|
||||||
Invoke-WinutilFeatureInstall $Features
|
|
||||||
|
|
||||||
$sync.ProcessRunning = $false
|
|
||||||
$sync.form.Dispatcher.Invoke([action]{ Set-WinutilTaskbaritem -state "None" -overlay "checkmark" })
|
|
||||||
|
|
||||||
Write-Host "==================================="
|
|
||||||
Write-Host "--- Features are Installed ---"
|
|
||||||
Write-Host "--- A Reboot may be required ---"
|
|
||||||
Write-Host "==================================="
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)
|
|
||||||
|
|
||||||
@@ -1,61 +1,20 @@
|
|||||||
# Enable Daily Registry Backup Task 12.30am
|
# Enable Daily Registry Backup Task 12.30am
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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
|
|
||||||
|
|
||||||
Enables daily registry backup, previously disabled by Microsoft in Windows 10 1803.
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
"WPFFeatureRegBackup": {
|
||||||
"Content": "Enable Daily Registry Backup Task 12.30am",
|
"Content": "Enable Daily Registry Backup Task 12.30am",
|
||||||
"Description": "Enables daily registry backup, previously disabled by Microsoft in Windows 10 1803.",
|
"Description": "Enables daily registry backup, previously disabled by Microsoft in Windows 10 1803.",
|
||||||
"category": "Features",
|
"category": "Features",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a017_",
|
"Order": "a017_",
|
||||||
"feature": [],
|
"feature": [],
|
||||||
"InvokeScript": [
|
"InvokeScript": [
|
||||||
"
|
"
|
||||||
New-ItemProperty -Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager' -Name 'EnablePeriodicBackup' -Type DWord -Value 1 -Force
|
New-ItemProperty -Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager' -Name 'EnablePeriodicBackup' -Type DWord -Value 1 -Force
|
||||||
New-ItemProperty -Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager' -Name 'BackupCount' -Type DWord -Value 2 -Force
|
New-ItemProperty -Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager' -Name 'BackupCount' -Type DWord -Value 2 -Force
|
||||||
$action = New-ScheduledTaskAction -Execute 'schtasks' -Argument '/run /i /tn \"\\Microsoft\\Windows\\Registry\\RegIdleBackup\"'
|
$action = New-ScheduledTaskAction -Execute 'schtasks' -Argument '/run /i /tn \"\\Microsoft\\Windows\\Registry\\RegIdleBackup\"'
|
||||||
$trigger = New-ScheduledTaskTrigger -Daily -At 00:30
|
$trigger = New-ScheduledTaskTrigger -Daily -At 00:30
|
||||||
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName 'AutoRegBackup' -Description 'Create System Registry Backups' -User 'System'
|
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName 'AutoRegBackup' -Description 'Create System Registry Backups' -User 'System'
|
||||||
"
|
"
|
||||||
],
|
],
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/features/Features/RegBackup"
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Invoke Script
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
|
|
||||||
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager' -Name 'EnablePeriodicBackup' -Type DWord -Value 1 -Force
|
|
||||||
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager' -Name 'BackupCount' -Type DWord -Value 2 -Force
|
|
||||||
$action = New-ScheduledTaskAction -Execute 'schtasks' -Argument '/run /i /tn "\Microsoft\Windows\Registry\RegIdleBackup"'
|
|
||||||
$trigger = New-ScheduledTaskTrigger -Daily -At 00:30
|
|
||||||
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName 'AutoRegBackup' -Description 'Create System Registry Backups' -User 'System'
|
|
||||||
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,39 +1,13 @@
|
|||||||
# Windows Sandbox
|
# Windows Sandbox
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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
|
|
||||||
|
|
||||||
Windows Sandbox is a lightweight virtual machine that provides a temporary desktop environment to safely run applications and programs in isolation.
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
"WPFFeaturesSandbox": {
|
||||||
"Content": "Windows Sandbox",
|
"Content": "Windows Sandbox",
|
||||||
"category": "Features",
|
"Description": "Windows Sandbox is a lightweight virtual machine that provides a temporary desktop environment to safely run applications and programs in isolation.",
|
||||||
"panel": "1",
|
"category": "Features",
|
||||||
"Order": "a021_",
|
"panel": "1",
|
||||||
"Description": "Windows Sandbox is a lightweight virtual machine that provides a temporary desktop environment to safely run applications and programs in isolation.",
|
"Order": "a021_",
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/features/Features/Sandbox"
|
"feature": [
|
||||||
}
|
"Containers-DisposableClientVM"
|
||||||
|
],
|
||||||
```
|
```
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,20 +1,6 @@
|
|||||||
---
|
---
|
||||||
weight: 3
|
weight: 1
|
||||||
|
title: "Features"
|
||||||
---
|
---
|
||||||
|
|
||||||
## Features
|
{{< autolinks section="dev/features/features" >}}
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
- [All .Net Framework (2,3,4)](dotnet/)
|
|
||||||
- [Disable Legacy F8 Boot Recovery](disablelegacyrecovery/)
|
|
||||||
- [Disable Search Box Web Suggestions in Registry(explorer restart)](disablesearchsuggestions/)
|
|
||||||
- [Enable Daily Registry Backup Task 12.30am](regbackup/)
|
|
||||||
- [Enable Legacy F8 Boot Recovery](enablelegacyrecovery/)
|
|
||||||
- [Enable Search Box Web Suggestions in Registry(explorer restart)](enablesearchsuggestions/)
|
|
||||||
- [HyperV Virtualization](hyperv/)
|
|
||||||
- [Install Features](install/)
|
|
||||||
- [Legacy Media (WMP, DirectPlay)](legacymedia/)
|
|
||||||
- [NFS - Network File System](nfs/)
|
|
||||||
- [Windows Sandbox](sandbox/)
|
|
||||||
- [Windows Subsystem for Linux](wsl/)
|
|
||||||
|
|||||||
@@ -1,56 +1,14 @@
|
|||||||
# All .Net Framework (2,3,4)
|
# All .Net Framework (2,3,4)
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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
|
|
||||||
|
|
||||||
.NET and .NET Framework is a developer platform made up of tools, programming languages, and libraries for building many different types of applications.
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
"WPFFeaturesdotnet": {
|
||||||
"Content": "All .Net Framework (2,3,4)",
|
"Content": "All .Net Framework (2,3,4)",
|
||||||
"Description": ".NET and .NET Framework is a developer platform made up of tools, programming languages, and libraries for building many different types of applications.",
|
"Description": ".NET and .NET Framework is a developer platform made up of tools, programming languages, and libraries for building many different types of applications.",
|
||||||
"category": "Features",
|
"category": "Features",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a010_",
|
"Order": "a010_",
|
||||||
"feature": [
|
"feature": [
|
||||||
"NetFx4-AdvSrvs",
|
"NetFx4-AdvSrvs",
|
||||||
"NetFx3"
|
"NetFx3"
|
||||||
],
|
],
|
||||||
"InvokeScript": [],
|
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/features/Features/dotnet"
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Features
|
|
||||||
|
|
||||||
|
|
||||||
Optional Windows Features are additional functionalities or components in the Windows operating system that users can choose to enable or disable based on their specific needs and preferences.
|
|
||||||
|
|
||||||
|
|
||||||
You can find information about Optional Windows Features on [Microsoft's Website for Optional Features](https://learn.microsoft.com/en-us/windows/client-management/client-tools/add-remove-hide-features?pivots=windows-11).
|
|
||||||
|
|
||||||
### Features to install
|
|
||||||
- NetFx4-AdvSrvs
|
|
||||||
- NetFx3
|
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,76 +1,16 @@
|
|||||||
# HyperV Virtualization
|
# HyperV Virtualization
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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
|
|
||||||
|
|
||||||
Hyper-V is a hardware virtualization product developed by Microsoft that allows users to create and manage virtual machines.
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
"WPFFeatureshyperv": {
|
||||||
"Content": "HyperV Virtualization",
|
"Content": "HyperV Virtualization",
|
||||||
"Description": "Hyper-V is a hardware virtualization product developed by Microsoft that allows users to create and manage virtual machines.",
|
"Description": "Hyper-V is a hardware virtualization product developed by Microsoft that allows users to create and manage virtual machines.",
|
||||||
"category": "Features",
|
"category": "Features",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a011_",
|
"Order": "a011_",
|
||||||
"feature": [
|
"feature": [
|
||||||
"HypervisorPlatform",
|
"Microsoft-Hyper-V-All"
|
||||||
"Microsoft-Hyper-V-All",
|
],
|
||||||
"Microsoft-Hyper-V",
|
"InvokeScript": [
|
||||||
"Microsoft-Hyper-V-Tools-All",
|
"bcdedit /set hypervisorschedulertype classic"
|
||||||
"Microsoft-Hyper-V-Management-PowerShell",
|
],
|
||||||
"Microsoft-Hyper-V-Hypervisor",
|
|
||||||
"Microsoft-Hyper-V-Services",
|
|
||||||
"Microsoft-Hyper-V-Management-Clients"
|
|
||||||
],
|
|
||||||
"InvokeScript": [
|
|
||||||
"Start-Process -FilePath cmd.exe -ArgumentList '/c bcdedit /set hypervisorschedulertype classic' -Wait"
|
|
||||||
],
|
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/features/Features/hyperv"
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Features
|
|
||||||
|
|
||||||
|
|
||||||
Optional Windows Features are additional functionalities or components in the Windows operating system that users can choose to enable or disable based on their specific needs and preferences.
|
|
||||||
|
|
||||||
|
|
||||||
You can find information about Optional Windows Features on [Microsoft's Website for Optional Features](https://learn.microsoft.com/en-us/windows/client-management/client-tools/add-remove-hide-features?pivots=windows-11).
|
|
||||||
|
|
||||||
### Features to install
|
|
||||||
- HypervisorPlatform
|
|
||||||
- Microsoft-Hyper-V-All
|
|
||||||
- Microsoft-Hyper-V
|
|
||||||
- Microsoft-Hyper-V-Tools-All
|
|
||||||
- Microsoft-Hyper-V-Management-PowerShell
|
|
||||||
- Microsoft-Hyper-V-Hypervisor
|
|
||||||
- Microsoft-Hyper-V-Services
|
|
||||||
- Microsoft-Hyper-V-Management-Clients
|
|
||||||
|
|
||||||
## Invoke Script
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
Start-Process -FilePath cmd.exe -ArgumentList '/c bcdedit /set hypervisorschedulertype classic' -Wait
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,60 +1,16 @@
|
|||||||
# Legacy Media (WMP, DirectPlay)
|
# Legacy Media (WMP, DirectPlay)
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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
|
|
||||||
|
|
||||||
Enables legacy programs from previous versions of windows
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
"WPFFeatureslegacymedia": {
|
||||||
"Content": "Legacy Media (WMP, DirectPlay)",
|
"Content": "Legacy Media (WMP, DirectPlay)",
|
||||||
"Description": "Enables legacy programs from previous versions of windows",
|
"Description": "Enables legacy programs from previous versions of windows",
|
||||||
"category": "Features",
|
"category": "Features",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a012_",
|
"Order": "a012_",
|
||||||
"feature": [
|
"feature": [
|
||||||
"WindowsMediaPlayer",
|
"WindowsMediaPlayer",
|
||||||
"MediaPlayback",
|
"MediaPlayback",
|
||||||
"DirectPlay",
|
"DirectPlay",
|
||||||
"LegacyComponents"
|
"LegacyComponents"
|
||||||
],
|
],
|
||||||
"InvokeScript": [],
|
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/features/Features/legacymedia"
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Features
|
|
||||||
|
|
||||||
|
|
||||||
Optional Windows Features are additional functionalities or components in the Windows operating system that users can choose to enable or disable based on their specific needs and preferences.
|
|
||||||
|
|
||||||
|
|
||||||
You can find information about Optional Windows Features on [Microsoft's Website for Optional Features](https://learn.microsoft.com/en-us/windows/client-management/client-tools/add-remove-hide-features?pivots=windows-11).
|
|
||||||
|
|
||||||
### Features to install
|
|
||||||
- WindowsMediaPlayer
|
|
||||||
- MediaPlayback
|
|
||||||
- DirectPlay
|
|
||||||
- LegacyComponents
|
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,74 +1,22 @@
|
|||||||
# NFS - Network File System
|
# NFS - Network File System
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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
|
|
||||||
|
|
||||||
Network File System (NFS) is a mechanism for storing files on a network.
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
"WPFFeaturenfs": {
|
||||||
"Content": "NFS - Network File System",
|
"Content": "NFS - Network File System",
|
||||||
"Description": "Network File System (NFS) is a mechanism for storing files on a network.",
|
"Description": "Network File System (NFS) is a mechanism for storing files on a network.",
|
||||||
"category": "Features",
|
"category": "Features",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a014_",
|
"Order": "a014_",
|
||||||
"feature": [
|
"feature": [
|
||||||
"ServicesForNFS-ClientOnly",
|
"ServicesForNFS-ClientOnly",
|
||||||
"ClientForNFS-Infrastructure",
|
"ClientForNFS-Infrastructure",
|
||||||
"NFS-Administration"
|
"NFS-Administration"
|
||||||
],
|
],
|
||||||
"InvokeScript": [
|
"InvokeScript": [
|
||||||
"nfsadmin client stop",
|
"nfsadmin client stop",
|
||||||
"Set-ItemProperty -Path 'HKLM:\\SOFTWARE\\Microsoft\\ClientForNFS\\CurrentVersion\\Default' -Name 'AnonymousUID' -Type DWord -Value 0",
|
"Set-ItemProperty -Path 'HKLM:\\SOFTWARE\\Microsoft\\ClientForNFS\\CurrentVersion\\Default' -Name 'AnonymousUID' -Type DWord -Value 0",
|
||||||
"Set-ItemProperty -Path 'HKLM:\\SOFTWARE\\Microsoft\\ClientForNFS\\CurrentVersion\\Default' -Name 'AnonymousGID' -Type DWord -Value 0",
|
"Set-ItemProperty -Path 'HKLM:\\SOFTWARE\\Microsoft\\ClientForNFS\\CurrentVersion\\Default' -Name 'AnonymousGID' -Type DWord -Value 0",
|
||||||
"nfsadmin client start",
|
"nfsadmin client start",
|
||||||
"nfsadmin client localhost config fileaccess=755 SecFlavors=+sys -krb5 -krb5i"
|
"nfsadmin client localhost config fileaccess=755 SecFlavors=+sys -krb5 -krb5i"
|
||||||
],
|
],
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/features/Features/nfs"
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Features
|
|
||||||
|
|
||||||
|
|
||||||
Optional Windows Features are additional functionalities or components in the Windows operating system that users can choose to enable or disable based on their specific needs and preferences.
|
|
||||||
|
|
||||||
|
|
||||||
You can find information about Optional Windows Features on [Microsoft's Website for Optional Features](https://learn.microsoft.com/en-us/windows/client-management/client-tools/add-remove-hide-features?pivots=windows-11).
|
|
||||||
|
|
||||||
### Features to install
|
|
||||||
- ServicesForNFS-ClientOnly
|
|
||||||
- ClientForNFS-Infrastructure
|
|
||||||
- NFS-Administration
|
|
||||||
|
|
||||||
## Invoke Script
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
nfsadmin client stop
|
|
||||||
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default' -Name 'AnonymousUID' -Type DWord -Value 0
|
|
||||||
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default' -Name 'AnonymousGID' -Type DWord -Value 0
|
|
||||||
nfsadmin client start
|
|
||||||
nfsadmin client localhost config fileaccess=755 SecFlavors=+sys -krb5 -krb5i
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,56 +1,14 @@
|
|||||||
# Windows Subsystem for Linux
|
# Windows Subsystem for Linux
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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
|
|
||||||
|
|
||||||
Windows Subsystem for Linux is an optional feature of Windows that allows Linux programs to run natively on Windows without the need for a separate virtual machine or dual booting.
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
"WPFFeaturewsl": {
|
||||||
"Content": "Windows Subsystem for Linux",
|
"Content": "Windows Subsystem for Linux",
|
||||||
"Description": "Windows Subsystem for Linux is an optional feature of Windows that allows Linux programs to run natively on Windows without the need for a separate virtual machine or dual booting.",
|
"Description": "Windows Subsystem for Linux is an optional feature of Windows that allows Linux programs to run natively on Windows without the need for a separate virtual machine or dual booting.",
|
||||||
"category": "Features",
|
"category": "Features",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a020_",
|
"Order": "a020_",
|
||||||
"feature": [
|
"feature": [
|
||||||
"VirtualMachinePlatform",
|
"VirtualMachinePlatform",
|
||||||
"Microsoft-Windows-Subsystem-Linux"
|
"Microsoft-Windows-Subsystem-Linux"
|
||||||
],
|
],
|
||||||
"InvokeScript": [],
|
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/features/Features/wsl"
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Features
|
|
||||||
|
|
||||||
|
|
||||||
Optional Windows Features are additional functionalities or components in the Windows operating system that users can choose to enable or disable based on their specific needs and preferences.
|
|
||||||
|
|
||||||
|
|
||||||
You can find information about Optional Windows Features on [Microsoft's Website for Optional Features](https://learn.microsoft.com/en-us/windows/client-management/client-tools/add-remove-hide-features?pivots=windows-11).
|
|
||||||
|
|
||||||
### Features to install
|
|
||||||
- VirtualMachinePlatform
|
|
||||||
- Microsoft-Windows-Subsystem-Linux
|
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,35 +1,5 @@
|
|||||||
# Set Up Autologin
|
# Set Up Autologin
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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": "Set Up Autologin",
|
|
||||||
"category": "Fixes",
|
|
||||||
"Order": "a040_",
|
|
||||||
"panel": "1",
|
|
||||||
"Type": "Button",
|
|
||||||
"ButtonWidth": "300",
|
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/features/Fixes/Autologin"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Function: Invoke-WPFPanelAutologin
|
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
function Invoke-WPFPanelAutologin {
|
function Invoke-WPFPanelAutologin {
|
||||||
<#
|
<#
|
||||||
@@ -43,14 +13,4 @@ function Invoke-WPFPanelAutologin {
|
|||||||
Invoke-WebRequest -Uri "https://live.sysinternals.com/Autologon.exe" -OutFile "$env:temp\autologin.exe"
|
Invoke-WebRequest -Uri "https://live.sysinternals.com/Autologon.exe" -OutFile "$env:temp\autologin.exe"
|
||||||
cmd /c "$env:temp\autologin.exe" /accepteula
|
cmd /c "$env:temp\autologin.exe" /accepteula
|
||||||
}
|
}
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)
|
|
||||||
|
|
||||||
|
|||||||
141
docs/content/dev/features/Fixes/CorruptionScan.md
Normal file
@@ -0,0 +1,141 @@
|
|||||||
|
# System Corruption Scan
|
||||||
|
|
||||||
|
```powershell
|
||||||
|
function Invoke-WPFSystemRepair {
|
||||||
|
<#
|
||||||
|
.SYNOPSIS
|
||||||
|
Checks for system corruption using Chkdsk, SFC, and DISM
|
||||||
|
|
||||||
|
.DESCRIPTION
|
||||||
|
1. Chkdsk - Fixes disk and filesystem corruption
|
||||||
|
2. SFC Run 1 - Fixes system file corruption, and fixes DISM if it was corrupted
|
||||||
|
3. DISM - Fixes system image corruption, and fixes SFC's system image if it was corrupted
|
||||||
|
4. SFC Run 2 - Fixes system file corruption, this time with an almost guaranteed uncorrupted system image
|
||||||
|
#>
|
||||||
|
|
||||||
|
function Invoke-Chkdsk {
|
||||||
|
<#
|
||||||
|
.SYNOPSIS
|
||||||
|
Runs chkdsk on the system drive
|
||||||
|
.DESCRIPTION
|
||||||
|
Chkdsk /Scan - Runs an online scan on the system drive, attempts to fix any corruption, and queues other corruption for fixing on reboot
|
||||||
|
#>
|
||||||
|
param(
|
||||||
|
[int]$parentProgressId = 0
|
||||||
|
)
|
||||||
|
|
||||||
|
Write-Progress -Id 1 -ParentId $parentProgressId -Activity $childProgressBarActivity -Status "Running chkdsk..." -PercentComplete 0
|
||||||
|
$oldpercent = 0
|
||||||
|
# 2>&1 redirects stdout, allowing iteration over the output
|
||||||
|
chkdsk.exe /scan /perf 2>&1 | ForEach-Object {
|
||||||
|
Write-Debug $_
|
||||||
|
# Regex to match the total percentage regardless of windows locale (it's always the second percentage in the status output)
|
||||||
|
if ($_ -match "%.*?(\d+)%") {
|
||||||
|
[int]$percent = $matches[1]
|
||||||
|
if ($percent -gt $oldpercent) {
|
||||||
|
Write-Progress -Id 1 -Activity $childProgressBarActivity -Status "Running chkdsk... ($percent%)" -PercentComplete $percent
|
||||||
|
$oldpercent = $percent
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Write-Progress -Id 1 -Activity $childProgressBarActivity -Status "chkdsk Completed" -PercentComplete 100 -Completed
|
||||||
|
}
|
||||||
|
|
||||||
|
function Invoke-SFC {
|
||||||
|
<#
|
||||||
|
.SYNOPSIS
|
||||||
|
Runs sfc on the system drive
|
||||||
|
.DESCRIPTION
|
||||||
|
SFC /ScanNow - Performs a scan of the system files and fixes any corruption
|
||||||
|
.NOTES
|
||||||
|
ErrorActionPreference is set locally within a script block & {...} to isolate their effects.
|
||||||
|
ErrorActionPreference suppresses false errors caused by sfc.exe output redirection.
|
||||||
|
A bug in SFC output buffering causes progress updates to appear in chunks when redirecting output
|
||||||
|
#>
|
||||||
|
param(
|
||||||
|
[int]$parentProgressId = 0
|
||||||
|
)
|
||||||
|
& {
|
||||||
|
$ErrorActionPreference = "SilentlyContinue"
|
||||||
|
Write-Progress -Id 1 -ParentId $parentProgressId -Activity $childProgressBarActivity -Status "Running SFC..." -PercentComplete 0
|
||||||
|
$oldpercent = 0
|
||||||
|
sfc.exe /scannow 2>&1 | ForEach-Object {
|
||||||
|
Write-Debug $_
|
||||||
|
if ($_ -ne "") {
|
||||||
|
# sfc.exe /scannow outputs unicode characters, so we directly remove null characters for optimization
|
||||||
|
$utf8line = $_ -replace "`0", ""
|
||||||
|
if ($utf8line -match "(\d+)\s*%") {
|
||||||
|
[int]$percent = $matches[1]
|
||||||
|
if ($percent -gt $oldpercent) {
|
||||||
|
Write-Progress -Id 1 -Activity $childProgressBarActivity -Status "Running SFC... ($percent%)" -PercentComplete $percent
|
||||||
|
$oldpercent = $percent
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Write-Progress -Id 1 -Activity $childProgressBarActivity -Status "SFC Completed" -PercentComplete 100 -Completed
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function Invoke-DISM {
|
||||||
|
<#
|
||||||
|
.SYNOPSIS
|
||||||
|
Runs DISM on the system drive
|
||||||
|
.DESCRIPTION
|
||||||
|
DISM - Fixes system image corruption, and fixes SFC's system image if it was corrupted
|
||||||
|
/Online - Fixes the currently running system image
|
||||||
|
/Cleanup-Image - Performs cleanup operations on the image, could remove some unneeded temporary files
|
||||||
|
/Restorehealth - Performs a scan of the image and fixes any corruption
|
||||||
|
#>
|
||||||
|
param(
|
||||||
|
[int]$parentProgressId = 0
|
||||||
|
)
|
||||||
|
Write-Progress -Id 1 -ParentId $parentProgressId -Activity $childProgressBarActivity -Status "Running DISM..." -PercentComplete 0
|
||||||
|
$oldpercent = 0
|
||||||
|
DISM /Online /Cleanup-Image /RestoreHealth | ForEach-Object {
|
||||||
|
Write-Debug $_
|
||||||
|
# Filter for lines that contain a percentage that is greater than the previous one
|
||||||
|
if ($_ -match "(\d+)[.,]\d+%") {
|
||||||
|
[int]$percent = $matches[1]
|
||||||
|
if ($percent -gt $oldpercent) {
|
||||||
|
# Update the progress bar
|
||||||
|
Write-Progress -Id 1 -Activity $childProgressBarActivity -Status "Running DISM... ($percent%)" -PercentComplete $percent
|
||||||
|
$oldpercent = $percent
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Write-Progress -Id 1 -Activity $childProgressBarActivity -Status "DISM Completed" -PercentComplete 100 -Completed
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
Set-WinUtilTaskbaritem -state "Indeterminate" -overlay "logo"
|
||||||
|
|
||||||
|
$childProgressBarActivity = "Scanning for corruption"
|
||||||
|
Write-Progress -Id 0 -Activity "Repairing Windows" -PercentComplete 0
|
||||||
|
# Step 1: Run chkdsk to fix disk and filesystem corruption before proceeding with system file repairs
|
||||||
|
Invoke-Chkdsk
|
||||||
|
Write-Progress -Id 0 -Activity "Repairing Windows" -PercentComplete 25
|
||||||
|
|
||||||
|
# Step 2: Run SFC to fix system file corruption and ensure DISM can operate correctly
|
||||||
|
Invoke-SFC
|
||||||
|
Write-Progress -Id 0 -Activity "Repairing Windows" -PercentComplete 50
|
||||||
|
|
||||||
|
# Step 3: Run DISM to repair the system image, which SFC relies on for accurate repairs
|
||||||
|
Invoke-DISM
|
||||||
|
Write-Progress -Id 0 -Activity "Repairing Windows" -PercentComplete 75
|
||||||
|
|
||||||
|
# Step 4: Run SFC again to ensure system files are repaired using the now-fixed system image
|
||||||
|
Invoke-SFC
|
||||||
|
Write-Progress -Id 0 -Activity "Repairing Windows" -PercentComplete 100 -Completed
|
||||||
|
|
||||||
|
Set-WinUtilTaskbaritem -state "None" -overlay "checkmark"
|
||||||
|
} catch {
|
||||||
|
Write-Error "An error occurred while repairing the system: $_"
|
||||||
|
Set-WinUtilTaskbaritem -state "Error" -overlay "warning"
|
||||||
|
} finally {
|
||||||
|
Write-Host "==> Finished System Repair"
|
||||||
|
Set-WinUtilTaskbaritem -state "None" -overlay "checkmark"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
```
|
||||||
@@ -1,74 +0,0 @@
|
|||||||
# System Corruption Scan
|
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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": "System Corruption Scan",
|
|
||||||
"category": "Fixes",
|
|
||||||
"panel": "1",
|
|
||||||
"Order": "a043_",
|
|
||||||
"Type": "Button",
|
|
||||||
"ButtonWidth": "300",
|
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/features/Fixes/DISM"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Function: Invoke-WPFPanelDISM
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
function Invoke-WPFPanelDISM {
|
|
||||||
<#
|
|
||||||
|
|
||||||
.SYNOPSIS
|
|
||||||
Checks for system corruption using Chkdsk, SFC, and DISM
|
|
||||||
|
|
||||||
.DESCRIPTION
|
|
||||||
1. Chkdsk - Fixes disk and filesystem corruption
|
|
||||||
2. SFC Run 1 - Fixes system file corruption, and fixes DISM if it was corrupted
|
|
||||||
3. DISM - Fixes system image corruption, and fixes SFC's system image if it was corrupted
|
|
||||||
4. SFC Run 2 - Fixes system file corruption, this time with an almost guaranteed uncorrupted system image
|
|
||||||
|
|
||||||
.NOTES
|
|
||||||
Command Arguments:
|
|
||||||
1. Chkdsk
|
|
||||||
/Scan - Runs an online scan on the system drive, attempts to fix any corruption, and queues other corruption for fixing on reboot
|
|
||||||
2. SFC
|
|
||||||
/ScanNow - Performs a scan of the system files and fixes any corruption
|
|
||||||
3. DISM - Fixes system image corruption, and fixes SFC's system image if it was corrupted
|
|
||||||
/Online - Fixes the currently running system image
|
|
||||||
/Cleanup-Image - Performs cleanup operations on the image, could remove some unneeded temporary files
|
|
||||||
/Restorehealth - Performs a scan of the image and fixes any corruption
|
|
||||||
|
|
||||||
#>
|
|
||||||
Start-Process PowerShell -ArgumentList "Write-Host '(1/4) Chkdsk' -ForegroundColor Green; Chkdsk /scan;
|
|
||||||
Write-Host '`n(2/4) SFC - 1st scan' -ForegroundColor Green; sfc /scannow;
|
|
||||||
Write-Host '`n(3/4) DISM' -ForegroundColor Green; DISM /Online /Cleanup-Image /Restorehealth;
|
|
||||||
Write-Host '`n(4/4) SFC - 2nd scan' -ForegroundColor Green; sfc /scannow;
|
|
||||||
Read-Host '`nPress Enter to Continue'" -verb runas
|
|
||||||
}
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)
|
|
||||||
|
|
||||||
@@ -1,35 +1,5 @@
|
|||||||
# Reset Network
|
# Reset Network
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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": "Reset Network",
|
|
||||||
"category": "Fixes",
|
|
||||||
"Order": "a042_",
|
|
||||||
"panel": "1",
|
|
||||||
"Type": "Button",
|
|
||||||
"ButtonWidth": "300",
|
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/features/Fixes/Network"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Function: Invoke-WPFFixesNetwork
|
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
function Invoke-WPFFixesNetwork {
|
function Invoke-WPFFixesNetwork {
|
||||||
<#
|
<#
|
||||||
@@ -41,13 +11,20 @@ function Invoke-WPFFixesNetwork {
|
|||||||
|
|
||||||
Write-Host "Resetting Network with netsh"
|
Write-Host "Resetting Network with netsh"
|
||||||
|
|
||||||
|
Set-WinUtilTaskbaritem -state "Normal" -value 0.01 -overlay "logo"
|
||||||
# Reset WinSock catalog to a clean state
|
# Reset WinSock catalog to a clean state
|
||||||
Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "winsock", "reset"
|
Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "winsock", "reset"
|
||||||
|
|
||||||
|
Set-WinUtilTaskbaritem -state "Normal" -value 0.35 -overlay "logo"
|
||||||
# Resets WinHTTP proxy setting to DIRECT
|
# Resets WinHTTP proxy setting to DIRECT
|
||||||
Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "winhttp", "reset", "proxy"
|
Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "winhttp", "reset", "proxy"
|
||||||
|
|
||||||
|
Set-WinUtilTaskbaritem -state "Normal" -value 0.7 -overlay "logo"
|
||||||
# Removes all user configured IP settings
|
# Removes all user configured IP settings
|
||||||
Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "int", "ip", "reset"
|
Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "int", "ip", "reset"
|
||||||
|
|
||||||
|
Set-WinUtilTaskbaritem -state "None" -overlay "checkmark"
|
||||||
|
|
||||||
Write-Host "Process complete. Please reboot your computer."
|
Write-Host "Process complete. Please reboot your computer."
|
||||||
|
|
||||||
$ButtonType = [System.Windows.MessageBoxButton]::OK
|
$ButtonType = [System.Windows.MessageBoxButton]::OK
|
||||||
@@ -60,14 +37,4 @@ function Invoke-WPFFixesNetwork {
|
|||||||
Write-Host "-- Network Configuration has been Reset --"
|
Write-Host "-- Network Configuration has been Reset --"
|
||||||
Write-Host "=========================================="
|
Write-Host "=========================================="
|
||||||
}
|
}
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,35 +1,5 @@
|
|||||||
# Remove Adobe Creative Cloud
|
# Remove Adobe Creative Cloud
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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": "Remove Adobe Creative Cloud",
|
|
||||||
"category": "Fixes",
|
|
||||||
"panel": "1",
|
|
||||||
"Order": "a045_",
|
|
||||||
"Type": "Button",
|
|
||||||
"ButtonWidth": "300",
|
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/features/Fixes/RunAdobeCCCleanerTool"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Function: Invoke-WPFRunAdobeCCCleanerTool
|
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
function Invoke-WPFRunAdobeCCCleanerTool {
|
function Invoke-WPFRunAdobeCCCleanerTool {
|
||||||
<#
|
<#
|
||||||
@@ -63,14 +33,4 @@ function Invoke-WPFRunAdobeCCCleanerTool {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,35 +1,5 @@
|
|||||||
# Reset Windows Update
|
# Reset Windows Update
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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": "Reset Windows Update",
|
|
||||||
"category": "Fixes",
|
|
||||||
"panel": "1",
|
|
||||||
"Order": "a041_",
|
|
||||||
"Type": "Button",
|
|
||||||
"ButtonWidth": "300",
|
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/features/Fixes/Update"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Function: Invoke-WPFFixesUpdate
|
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
function Invoke-WPFFixesUpdate {
|
function Invoke-WPFFixesUpdate {
|
||||||
|
|
||||||
@@ -39,19 +9,7 @@ function Invoke-WPFFixesUpdate {
|
|||||||
Performs various tasks in an attempt to repair Windows Update
|
Performs various tasks in an attempt to repair Windows Update
|
||||||
|
|
||||||
.DESCRIPTION
|
.DESCRIPTION
|
||||||
1. (Aggressive Only) Scans the system for corruption using chkdsk, SFC, and DISM
|
1. (Aggressive Only) Scans the system for corruption using the Invoke-WPFSystemRepair function
|
||||||
Steps:
|
|
||||||
1. Runs chkdsk /scan /perf
|
|
||||||
/scan - Runs an online scan on the volume
|
|
||||||
/perf - Uses more system resources to complete a scan as fast as possible
|
|
||||||
2. Runs SFC /scannow
|
|
||||||
/scannow - Scans integrity of all protected system files and repairs files with problems when possible
|
|
||||||
3. Runs DISM /Online /Cleanup-Image /RestoreHealth
|
|
||||||
/Online - Targets the running operating system
|
|
||||||
/Cleanup-Image - Performs cleanup and recovery operations on the image
|
|
||||||
/RestoreHealth - Scans the image for component store corruption and attempts to repair the corruption using Windows Update
|
|
||||||
4. Runs SFC /scannow
|
|
||||||
Ran twice in case DISM repaired SFC
|
|
||||||
2. Stops Windows Update Services
|
2. Stops Windows Update Services
|
||||||
3. Remove the QMGR Data file, which stores BITS jobs
|
3. Remove the QMGR Data file, which stores BITS jobs
|
||||||
4. (Aggressive Only) Renames the DataStore and CatRoot2 folders
|
4. (Aggressive Only) Renames the DataStore and CatRoot2 folders
|
||||||
@@ -75,108 +33,13 @@ function Invoke-WPFFixesUpdate {
|
|||||||
param($Aggressive = $false)
|
param($Aggressive = $false)
|
||||||
|
|
||||||
Write-Progress -Id 0 -Activity "Repairing Windows Update" -PercentComplete 0
|
Write-Progress -Id 0 -Activity "Repairing Windows Update" -PercentComplete 0
|
||||||
|
Set-WinUtilTaskbaritem -state "Indeterminate" -overlay "logo"
|
||||||
|
Write-Host "Starting Windows Update Repair..."
|
||||||
# Wait for the first progress bar to show, otherwise the second one won't show
|
# Wait for the first progress bar to show, otherwise the second one won't show
|
||||||
Start-Sleep -Milliseconds 200
|
Start-Sleep -Milliseconds 200
|
||||||
|
|
||||||
if ($Aggressive) {
|
if ($Aggressive) {
|
||||||
# Scan system for corruption
|
Invoke-WPFSystemRepair
|
||||||
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Scanning for corruption..." -PercentComplete 0
|
|
||||||
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Running chkdsk..." -PercentComplete 0
|
|
||||||
# 2>&1 redirects stdout, alowing iteration over the output
|
|
||||||
chkdsk.exe /scan /perf 2>&1 | ForEach-Object {
|
|
||||||
# Write stdout to the Verbose stream
|
|
||||||
Write-Verbose $_
|
|
||||||
|
|
||||||
# Get the index of the total percentage
|
|
||||||
$index = $_.IndexOf("Total:")
|
|
||||||
if (
|
|
||||||
# If the percent is found
|
|
||||||
($percent = try {(
|
|
||||||
$_.Substring(
|
|
||||||
$index + 6,
|
|
||||||
$_.IndexOf("%", $index) - $index - 6
|
|
||||||
)
|
|
||||||
).Trim()} catch {0}) `
|
|
||||||
<# And the current percentage is greater than the previous one #>`
|
|
||||||
-and $percent -gt $oldpercent
|
|
||||||
) {
|
|
||||||
# Update the progress bar
|
|
||||||
$oldpercent = $percent
|
|
||||||
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Running chkdsk... ($percent%)" -PercentComplete $percent
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Running SFC..." -PercentComplete 0
|
|
||||||
$oldpercent = 0
|
|
||||||
# SFC has a bug when redirected which causes it to output only when the stdout buffer is full, causing the progress bar to move in chunks
|
|
||||||
sfc /scannow 2>&1 | ForEach-Object {
|
|
||||||
# Write stdout to the Verbose stream
|
|
||||||
Write-Verbose $_
|
|
||||||
|
|
||||||
# Filter for lines that contain a percentage that is greater than the previous one
|
|
||||||
if (
|
|
||||||
(
|
|
||||||
# Use a different method to get the percentage that accounts for SFC's Unicode output
|
|
||||||
[int]$percent = try {(
|
|
||||||
(
|
|
||||||
$_.Substring(
|
|
||||||
$_.IndexOf("n") + 2,
|
|
||||||
$_.IndexOf("%") - $_.IndexOf("n") - 2
|
|
||||||
).ToCharArray() | Where-Object {$_}
|
|
||||||
) -join ''
|
|
||||||
).TrimStart()} catch {0}
|
|
||||||
) -and $percent -gt $oldpercent
|
|
||||||
) {
|
|
||||||
# Update the progress bar
|
|
||||||
$oldpercent = $percent
|
|
||||||
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Running SFC... ($percent%)" -PercentComplete $percent
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Running DISM..." -PercentComplete 0
|
|
||||||
$oldpercent = 0
|
|
||||||
DISM /Online /Cleanup-Image /RestoreHealth | ForEach-Object {
|
|
||||||
# Write stdout to the Verbose stream
|
|
||||||
Write-Verbose $_
|
|
||||||
|
|
||||||
# Filter for lines that contain a percentage that is greater than the previous one
|
|
||||||
if (
|
|
||||||
($percent = try {
|
|
||||||
[int]($_ -replace "\[" -replace "=" -replace " " -replace "%" -replace "\]")
|
|
||||||
} catch {0}) `
|
|
||||||
-and $percent -gt $oldpercent
|
|
||||||
) {
|
|
||||||
# Update the progress bar
|
|
||||||
$oldpercent = $percent
|
|
||||||
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Running DISM... ($percent%)" -PercentComplete $percent
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Running SFC again..." -PercentComplete 0
|
|
||||||
$oldpercent = 0
|
|
||||||
sfc /scannow 2>&1 | ForEach-Object {
|
|
||||||
# Write stdout to the Verbose stream
|
|
||||||
Write-Verbose $_
|
|
||||||
|
|
||||||
# Filter for lines that contain a percentage that is greater than the previous one
|
|
||||||
if (
|
|
||||||
(
|
|
||||||
[int]$percent = try {(
|
|
||||||
(
|
|
||||||
$_.Substring(
|
|
||||||
$_.IndexOf("n") + 2,
|
|
||||||
$_.IndexOf("%") - $_.IndexOf("n") - 2
|
|
||||||
).ToCharArray() | Where-Object {$_}
|
|
||||||
) -join ''
|
|
||||||
).TrimStart()} catch {0}
|
|
||||||
) -and $percent -gt $oldpercent
|
|
||||||
) {
|
|
||||||
# Update the progress bar
|
|
||||||
$oldpercent = $percent
|
|
||||||
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Running SFC... ($percent%)" -PercentComplete $percent
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Completed" -PercentComplete 100
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -220,9 +83,9 @@ function Invoke-WPFFixesUpdate {
|
|||||||
# Reset the Security Descriptors on the Windows Update Services
|
# Reset the Security Descriptors on the Windows Update Services
|
||||||
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Resetting the WU Service Security Descriptors..." -PercentComplete 25
|
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Resetting the WU Service Security Descriptors..." -PercentComplete 25
|
||||||
Write-Progress -Id 4 -ParentId 0 -Activity "Resetting the WU Service Security Descriptors" -Status "Resetting the BITS Security Descriptor..." -PercentComplete 0
|
Write-Progress -Id 4 -ParentId 0 -Activity "Resetting the WU Service Security Descriptors" -Status "Resetting the BITS Security Descriptor..." -PercentComplete 0
|
||||||
Start-Process -NoNewWindow -FilePath "sc.exe" -ArgumentList "sdset", "bits", "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)"
|
Start-Process -NoNewWindow -FilePath "sc.exe" -ArgumentList "sdset", "bits", "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)" -Wait
|
||||||
Write-Progress -Id 4 -ParentId 0 -Activity "Resetting the WU Service Security Descriptors" -Status "Resetting the wuauserv Security Descriptor..." -PercentComplete 50
|
Write-Progress -Id 4 -ParentId 0 -Activity "Resetting the WU Service Security Descriptors" -Status "Resetting the wuauserv Security Descriptor..." -PercentComplete 50
|
||||||
Start-Process -NoNewWindow -FilePath "sc.exe" -ArgumentList "sdset", "wuauserv", "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)"
|
Start-Process -NoNewWindow -FilePath "sc.exe" -ArgumentList "sdset", "wuauserv", "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)" -Wait
|
||||||
Write-Progress -Id 4 -ParentId 0 -Activity "Resetting the WU Service Security Descriptors" -Status "Completed" -PercentComplete 100
|
Write-Progress -Id 4 -ParentId 0 -Activity "Resetting the WU Service Security Descriptors" -Status "Completed" -PercentComplete 100
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -254,19 +117,53 @@ function Invoke-WPFFixesUpdate {
|
|||||||
if (Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate") {
|
if (Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate") {
|
||||||
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Removing WSUS client settings..." -PercentComplete 60
|
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Removing WSUS client settings..." -PercentComplete 60
|
||||||
Write-Progress -Id 6 -ParentId 0 -Activity "Removing WSUS client settings" -PercentComplete 0
|
Write-Progress -Id 6 -ParentId 0 -Activity "Removing WSUS client settings" -PercentComplete 0
|
||||||
Start-Process -NoNewWindow -FilePath "REG" -ArgumentList "DELETE", "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate", "/v", "AccountDomainSid", "/f" -RedirectStandardError $true
|
Start-Process -NoNewWindow -FilePath "REG" -ArgumentList "DELETE", "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate", "/v", "AccountDomainSid", "/f" -RedirectStandardError "NUL"
|
||||||
Start-Process -NoNewWindow -FilePath "REG" -ArgumentList "DELETE", "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate", "/v", "PingID", "/f" -RedirectStandardError $true
|
Start-Process -NoNewWindow -FilePath "REG" -ArgumentList "DELETE", "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate", "/v", "PingID", "/f" -RedirectStandardError "NUL"
|
||||||
Start-Process -NoNewWindow -FilePath "REG" -ArgumentList "DELETE", "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate", "/v", "SusClientId", "/f" -RedirectStandardError $true
|
Start-Process -NoNewWindow -FilePath "REG" -ArgumentList "DELETE", "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate", "/v", "SusClientId", "/f" -RedirectStandardError "NUL"
|
||||||
Write-Progress -Id 6 -ParentId 0 -Activity "Removing WSUS client settings" -Status "Completed" -PercentComplete 100
|
Write-Progress -Id 6 -ParentId 0 -Activity "Removing WSUS client settings" -Status "Completed" -PercentComplete 100
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Remove Group Policy Windows Update settings
|
||||||
|
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Removing Group Policy Windows Update settings..." -PercentComplete 60
|
||||||
|
Write-Progress -Id 7 -ParentId 0 -Activity "Removing Group Policy Windows Update settings" -PercentComplete 0
|
||||||
|
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" -Name "ExcludeWUDriversInQualityUpdate" -ErrorAction SilentlyContinue
|
||||||
|
Write-Host "Defaulting driver offering through Windows Update..."
|
||||||
|
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Device Metadata" -Name "PreventDeviceMetadataFromNetwork" -ErrorAction SilentlyContinue
|
||||||
|
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DontPromptForWindowsUpdate" -ErrorAction SilentlyContinue
|
||||||
|
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DontSearchWindowsUpdate" -ErrorAction SilentlyContinue
|
||||||
|
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DriverUpdateWizardWuSearchEnabled" -ErrorAction SilentlyContinue
|
||||||
|
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" -Name "ExcludeWUDriversInQualityUpdate" -ErrorAction SilentlyContinue
|
||||||
|
Write-Host "Defaulting Windows Update automatic restart..."
|
||||||
|
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "NoAutoRebootWithLoggedOnUsers" -ErrorAction SilentlyContinue
|
||||||
|
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "AUPowerManagement" -ErrorAction SilentlyContinue
|
||||||
|
Write-Host "Clearing ANY Windows Update Policy settings..."
|
||||||
|
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Name "BranchReadinessLevel" -ErrorAction SilentlyContinue
|
||||||
|
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Name "DeferFeatureUpdatesPeriodInDays" -ErrorAction SilentlyContinue
|
||||||
|
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Name "DeferQualityUpdatesPeriodInDays" -ErrorAction SilentlyContinue
|
||||||
|
Remove-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies" -Recurse -Force -ErrorAction SilentlyContinue
|
||||||
|
Remove-Item -Path "HKCU:\Software\Microsoft\WindowsSelfHost" -Recurse -Force -ErrorAction SilentlyContinue
|
||||||
|
Remove-Item -Path "HKCU:\Software\Policies" -Recurse -Force -ErrorAction SilentlyContinue
|
||||||
|
Remove-Item -Path "HKLM:\Software\Microsoft\Policies" -Recurse -Force -ErrorAction SilentlyContinue
|
||||||
|
Remove-Item -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies" -Recurse -Force -ErrorAction SilentlyContinue
|
||||||
|
Remove-Item -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\WindowsStore\WindowsUpdate" -Recurse -Force -ErrorAction SilentlyContinue
|
||||||
|
Remove-Item -Path "HKLM:\Software\Microsoft\WindowsSelfHost" -Recurse -Force -ErrorAction SilentlyContinue
|
||||||
|
Remove-Item -Path "HKLM:\Software\Policies" -Recurse -Force -ErrorAction SilentlyContinue
|
||||||
|
Remove-Item -Path "HKLM:\Software\WOW6432Node\Microsoft\Policies" -Recurse -Force -ErrorAction SilentlyContinue
|
||||||
|
Remove-Item -Path "HKLM:\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Policies" -Recurse -Force -ErrorAction SilentlyContinue
|
||||||
|
Remove-Item -Path "HKLM:\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\WindowsStore\WindowsUpdate" -Recurse -Force -ErrorAction SilentlyContinue
|
||||||
|
Start-Process -NoNewWindow -FilePath "secedit" -ArgumentList "/configure", "/cfg", "$env:windir\inf\defltbase.inf", "/db", "defltbase.sdb", "/verbose" -Wait
|
||||||
|
Start-Process -NoNewWindow -FilePath "cmd.exe" -ArgumentList "/c RD /S /Q $env:WinDir\System32\GroupPolicyUsers" -Wait
|
||||||
|
Start-Process -NoNewWindow -FilePath "cmd.exe" -ArgumentList "/c RD /S /Q $env:WinDir\System32\GroupPolicy" -Wait
|
||||||
|
Start-Process -NoNewWindow -FilePath "gpupdate" -ArgumentList "/force" -Wait
|
||||||
|
Write-Progress -Id 7 -ParentId 0 -Activity "Removing Group Policy Windows Update settings" -Status "Completed" -PercentComplete 100
|
||||||
|
|
||||||
|
|
||||||
# Reset WinSock
|
# Reset WinSock
|
||||||
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Resetting WinSock..." -PercentComplete 65
|
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Resetting WinSock..." -PercentComplete 65
|
||||||
Write-Progress -Id 7 -ParentId 0 -Activity "Resetting WinSock" -Status "Resetting WinSock..." -PercentComplete 0
|
Write-Progress -Id 7 -ParentId 0 -Activity "Resetting WinSock" -Status "Resetting WinSock..." -PercentComplete 0
|
||||||
Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "winsock", "reset" -RedirectStandardOutput $true
|
Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "winsock", "reset"
|
||||||
Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "winhttp", "reset", "proxy" -RedirectStandardOutput $true
|
Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "winhttp", "reset", "proxy"
|
||||||
Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "int", "ip", "reset" -RedirectStandardOutput $true
|
Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "int", "ip", "reset"
|
||||||
Write-Progress -Id 7 -ParentId 0 -Activity "Resetting WinSock" -Status "Completed" -PercentComplete 100
|
Write-Progress -Id 7 -ParentId 0 -Activity "Resetting WinSock" -Status "Completed" -PercentComplete 100
|
||||||
|
|
||||||
|
|
||||||
@@ -295,11 +192,18 @@ function Invoke-WPFFixesUpdate {
|
|||||||
# Force Windows Update to check for updates
|
# Force Windows Update to check for updates
|
||||||
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Forcing discovery..." -PercentComplete 95
|
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Forcing discovery..." -PercentComplete 95
|
||||||
Write-Progress -Id 10 -ParentId 0 -Activity "Forcing discovery" -Status "Forcing discovery..." -PercentComplete 0
|
Write-Progress -Id 10 -ParentId 0 -Activity "Forcing discovery" -Status "Forcing discovery..." -PercentComplete 0
|
||||||
(New-Object -ComObject Microsoft.Update.AutoUpdate).DetectNow()
|
try {
|
||||||
|
(New-Object -ComObject Microsoft.Update.AutoUpdate).DetectNow()
|
||||||
|
} catch {
|
||||||
|
Set-WinUtilTaskbaritem -state "Error" -overlay "warning"
|
||||||
|
Write-Warning "Failed to create Windows Update COM object: $_"
|
||||||
|
}
|
||||||
Start-Process -NoNewWindow -FilePath "wuauclt" -ArgumentList "/resetauthorization", "/detectnow"
|
Start-Process -NoNewWindow -FilePath "wuauclt" -ArgumentList "/resetauthorization", "/detectnow"
|
||||||
Write-Progress -Id 10 -ParentId 0 -Activity "Forcing discovery" -Status "Completed" -PercentComplete 100
|
Write-Progress -Id 10 -ParentId 0 -Activity "Forcing discovery" -Status "Completed" -PercentComplete 100
|
||||||
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Completed" -PercentComplete 100
|
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Completed" -PercentComplete 100
|
||||||
|
|
||||||
|
Set-WinUtilTaskbaritem -state "None" -overlay "checkmark"
|
||||||
|
|
||||||
$ButtonType = [System.Windows.MessageBoxButton]::OK
|
$ButtonType = [System.Windows.MessageBoxButton]::OK
|
||||||
$MessageboxTitle = "Reset Windows Update "
|
$MessageboxTitle = "Reset Windows Update "
|
||||||
$Messageboxbody = ("Stock settings loaded.`n Please reboot your computer")
|
$Messageboxbody = ("Stock settings loaded.`n Please reboot your computer")
|
||||||
@@ -317,7 +221,7 @@ function Invoke-WPFFixesUpdate {
|
|||||||
Write-Progress -Id 3 -Activity "Renaming/Removing Files" -Completed
|
Write-Progress -Id 3 -Activity "Renaming/Removing Files" -Completed
|
||||||
Write-Progress -Id 4 -Activity "Resetting the WU Service Security Descriptors" -Completed
|
Write-Progress -Id 4 -Activity "Resetting the WU Service Security Descriptors" -Completed
|
||||||
Write-Progress -Id 5 -Activity "Reregistering DLLs" -Completed
|
Write-Progress -Id 5 -Activity "Reregistering DLLs" -Completed
|
||||||
Write-Progress -Id 6 -Activity "Removing WSUS client settings" -Completed
|
Write-Progress -Id 6 -Activity "Removing Group Policy Windows Update settings" -Completed
|
||||||
Write-Progress -Id 7 -Activity "Resetting WinSock" -Completed
|
Write-Progress -Id 7 -Activity "Resetting WinSock" -Completed
|
||||||
Write-Progress -Id 8 -Activity "Deleting BITS jobs" -Completed
|
Write-Progress -Id 8 -Activity "Deleting BITS jobs" -Completed
|
||||||
Write-Progress -Id 9 -Activity "Starting Windows Update Services" -Completed
|
Write-Progress -Id 9 -Activity "Starting Windows Update Services" -Completed
|
||||||
@@ -325,12 +229,3 @@ function Invoke-WPFFixesUpdate {
|
|||||||
}
|
}
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,35 +1,5 @@
|
|||||||
# WinGet Reinstall
|
# WinGet Reinstall
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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": "WinGet Reinstall",
|
|
||||||
"category": "Fixes",
|
|
||||||
"panel": "1",
|
|
||||||
"Order": "a044_",
|
|
||||||
"Type": "Button",
|
|
||||||
"ButtonWidth": "300",
|
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/features/Fixes/Winget"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Function: Invoke-WPFFixesWinget
|
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
function Invoke-WPFFixesWinget {
|
function Invoke-WPFFixesWinget {
|
||||||
|
|
||||||
@@ -41,18 +11,17 @@ function Invoke-WPFFixesWinget {
|
|||||||
BravoNorris for the fantastic idea of a button to reinstall winget
|
BravoNorris for the fantastic idea of a button to reinstall winget
|
||||||
#>
|
#>
|
||||||
# Install Choco if not already present
|
# Install Choco if not already present
|
||||||
Install-WinutilChoco
|
try {
|
||||||
Start-Process -FilePath "choco" -ArgumentList "install winget -y --force" -NoNewWindow -Wait
|
Set-WinUtilTaskbaritem -state "Indeterminate" -overlay "logo"
|
||||||
|
Write-Host "==> Starting Winget Repair"
|
||||||
|
Install-WinUtilWinget -Force
|
||||||
|
} catch {
|
||||||
|
Write-Error "Failed to install winget: $_"
|
||||||
|
Set-WinUtilTaskbaritem -state "Error" -overlay "warning"
|
||||||
|
} finally {
|
||||||
|
Write-Host "==> Finished Winget Repair"
|
||||||
|
Set-WinUtilTaskbaritem -state "None" -overlay "checkmark"
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,14 +1,6 @@
|
|||||||
---
|
---
|
||||||
weight: 3
|
weight: 2
|
||||||
|
title: "Fixes"
|
||||||
---
|
---
|
||||||
|
|
||||||
## Features
|
{{< autolinks section="dev/features/fixes" >}}
|
||||||
|
|
||||||
### Fixes
|
|
||||||
|
|
||||||
- [Remove Adobe Creative Cloud](runadobecccleanertool/)
|
|
||||||
- [Reset Network](network/)
|
|
||||||
- [Reset Windows Update](update/)
|
|
||||||
- [Set Up Autologin](autologin/)
|
|
||||||
- [System Corruption Scan](dism/)
|
|
||||||
- [WinGet Reinstall](winget/)
|
|
||||||
|
|||||||
@@ -1,16 +1,6 @@
|
|||||||
---
|
---
|
||||||
weight: 3
|
weight: 3
|
||||||
|
title: "Legacy Windows Panels"
|
||||||
---
|
---
|
||||||
|
|
||||||
## Features
|
{{< autolinks section="dev/features/legacy-windows-panels" >}}
|
||||||
|
|
||||||
### Legacy Windows Panels
|
|
||||||
|
|
||||||
- [Control Panel](control/)
|
|
||||||
- [Network Connections](network/)
|
|
||||||
- [Power Panel](power/)
|
|
||||||
- [Printer Settings](printer/)
|
|
||||||
- [Region](region/)
|
|
||||||
- [Sound Settings](sound/)
|
|
||||||
- [System Properties](system/)
|
|
||||||
- [User Accounts](user/)
|
|
||||||
|
|||||||
@@ -1,34 +1,5 @@
|
|||||||
# Control Panel
|
# Control Panel
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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": "Control Panel",
|
|
||||||
"category": "Legacy Windows Panels",
|
|
||||||
"panel": "2",
|
|
||||||
"Type": "Button",
|
|
||||||
"ButtonWidth": "300",
|
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/features/Legacy-Windows-Panels/control"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Function: Invoke-WPFControlPanel
|
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
function Invoke-WPFControlPanel {
|
function Invoke-WPFControlPanel {
|
||||||
<#
|
<#
|
||||||
@@ -43,23 +14,17 @@ function Invoke-WPFControlPanel {
|
|||||||
param($Panel)
|
param($Panel)
|
||||||
|
|
||||||
switch ($Panel) {
|
switch ($Panel) {
|
||||||
"WPFPanelcontrol" {cmd /c control}
|
"WPFPanelControl" {control}
|
||||||
"WPFPanelnetwork" {cmd /c ncpa.cpl}
|
"WPFPanelComputer" {compmgmt.msc}
|
||||||
"WPFPanelpower" {cmd /c powercfg.cpl}
|
"WPFPanelNetwork" {ncpa.cpl}
|
||||||
"WPFPanelregion" {cmd /c intl.cpl}
|
"WPFPanelPower" {powercfg.cpl}
|
||||||
"WPFPanelsound" {cmd /c mmsys.cpl}
|
"WPFPanelPrinter" {Start-Process "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"}
|
||||||
"WPFPanelsystem" {cmd /c sysdm.cpl}
|
"WPFPanelRegion" {intl.cpl}
|
||||||
"WPFPaneluser" {cmd /c "control userpasswords2"}
|
"WPFPanelRestore" {rstrui.exe}
|
||||||
|
"WPFPanelSound" {mmsys.cpl}
|
||||||
|
"WPFPanelSystem" {sysdm.cpl}
|
||||||
|
"WPFPanelTimedate" {timedate.cpl}
|
||||||
|
"WPFPanelUser" {control userpasswords2}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,34 +1,5 @@
|
|||||||
# Network Connections
|
# Network Connections
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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": "Network Connections",
|
|
||||||
"category": "Legacy Windows Panels",
|
|
||||||
"panel": "2",
|
|
||||||
"Type": "Button",
|
|
||||||
"ButtonWidth": "300",
|
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/features/Legacy-Windows-Panels/network"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Function: Invoke-WPFControlPanel
|
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
function Invoke-WPFControlPanel {
|
function Invoke-WPFControlPanel {
|
||||||
<#
|
<#
|
||||||
@@ -43,23 +14,17 @@ function Invoke-WPFControlPanel {
|
|||||||
param($Panel)
|
param($Panel)
|
||||||
|
|
||||||
switch ($Panel) {
|
switch ($Panel) {
|
||||||
"WPFPanelcontrol" {cmd /c control}
|
"WPFPanelControl" {control}
|
||||||
"WPFPanelnetwork" {cmd /c ncpa.cpl}
|
"WPFPanelComputer" {compmgmt.msc}
|
||||||
"WPFPanelpower" {cmd /c powercfg.cpl}
|
"WPFPanelNetwork" {ncpa.cpl}
|
||||||
"WPFPanelregion" {cmd /c intl.cpl}
|
"WPFPanelPower" {powercfg.cpl}
|
||||||
"WPFPanelsound" {cmd /c mmsys.cpl}
|
"WPFPanelPrinter" {Start-Process "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"}
|
||||||
"WPFPanelsystem" {cmd /c sysdm.cpl}
|
"WPFPanelRegion" {intl.cpl}
|
||||||
"WPFPaneluser" {cmd /c "control userpasswords2"}
|
"WPFPanelRestore" {rstrui.exe}
|
||||||
|
"WPFPanelSound" {mmsys.cpl}
|
||||||
|
"WPFPanelSystem" {sysdm.cpl}
|
||||||
|
"WPFPanelTimedate" {timedate.cpl}
|
||||||
|
"WPFPanelUser" {control userpasswords2}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,34 +1,5 @@
|
|||||||
# Power Panel
|
# Power Panel
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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": "Power Panel",
|
|
||||||
"category": "Legacy Windows Panels",
|
|
||||||
"panel": "2",
|
|
||||||
"Type": "Button",
|
|
||||||
"ButtonWidth": "300",
|
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/features/Legacy-Windows-Panels/power"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Function: Invoke-WPFControlPanel
|
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
function Invoke-WPFControlPanel {
|
function Invoke-WPFControlPanel {
|
||||||
<#
|
<#
|
||||||
@@ -43,23 +14,17 @@ function Invoke-WPFControlPanel {
|
|||||||
param($Panel)
|
param($Panel)
|
||||||
|
|
||||||
switch ($Panel) {
|
switch ($Panel) {
|
||||||
"WPFPanelcontrol" {cmd /c control}
|
"WPFPanelControl" {control}
|
||||||
"WPFPanelnetwork" {cmd /c ncpa.cpl}
|
"WPFPanelComputer" {compmgmt.msc}
|
||||||
"WPFPanelpower" {cmd /c powercfg.cpl}
|
"WPFPanelNetwork" {ncpa.cpl}
|
||||||
"WPFPanelregion" {cmd /c intl.cpl}
|
"WPFPanelPower" {powercfg.cpl}
|
||||||
"WPFPanelsound" {cmd /c mmsys.cpl}
|
"WPFPanelPrinter" {Start-Process "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"}
|
||||||
"WPFPanelsystem" {cmd /c sysdm.cpl}
|
"WPFPanelRegion" {intl.cpl}
|
||||||
"WPFPaneluser" {cmd /c "control userpasswords2"}
|
"WPFPanelRestore" {rstrui.exe}
|
||||||
|
"WPFPanelSound" {mmsys.cpl}
|
||||||
|
"WPFPanelSystem" {sysdm.cpl}
|
||||||
|
"WPFPanelTimedate" {timedate.cpl}
|
||||||
|
"WPFPanelUser" {control userpasswords2}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,33 +1,5 @@
|
|||||||
# Printer Settings
|
# Printer Settings
|
||||||
|
|
||||||
Last Updated: 2024-08-31
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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": "Printer Settings",
|
|
||||||
"category": "Legacy Windows Panels",
|
|
||||||
"panel": "2",
|
|
||||||
"Type": "Button",
|
|
||||||
"ButtonWidth": "300"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Function: Invoke-WPFControlPanel
|
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
function Invoke-WPFControlPanel {
|
function Invoke-WPFControlPanel {
|
||||||
<#
|
<#
|
||||||
@@ -42,24 +14,17 @@ function Invoke-WPFControlPanel {
|
|||||||
param($Panel)
|
param($Panel)
|
||||||
|
|
||||||
switch ($Panel) {
|
switch ($Panel) {
|
||||||
"WPFPanelcontrol" {cmd /c control}
|
"WPFPanelControl" {control}
|
||||||
"WPFPanelnetwork" {cmd /c ncpa.cpl}
|
"WPFPanelComputer" {compmgmt.msc}
|
||||||
"WPFPanelpower" {cmd /c powercfg.cpl}
|
"WPFPanelNetwork" {ncpa.cpl}
|
||||||
"WPFPanelregion" {cmd /c intl.cpl}
|
"WPFPanelPower" {powercfg.cpl}
|
||||||
"WPFPanelsound" {cmd /c mmsys.cpl}
|
"WPFPanelPrinter" {Start-Process "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"}
|
||||||
"WPFPanelprinter" {Start-Process "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"}
|
"WPFPanelRegion" {intl.cpl}
|
||||||
"WPFPanelsystem" {cmd /c sysdm.cpl}
|
"WPFPanelRestore" {rstrui.exe}
|
||||||
"WPFPaneluser" {cmd /c "control userpasswords2"}
|
"WPFPanelSound" {mmsys.cpl}
|
||||||
|
"WPFPanelSystem" {sysdm.cpl}
|
||||||
|
"WPFPanelTimedate" {timedate.cpl}
|
||||||
|
"WPFPanelUser" {control userpasswords2}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/../config/feature.json)
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,34 +1,5 @@
|
|||||||
# Region
|
# Region
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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": "Region",
|
|
||||||
"category": "Legacy Windows Panels",
|
|
||||||
"panel": "2",
|
|
||||||
"Type": "Button",
|
|
||||||
"ButtonWidth": "300",
|
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/features/Legacy-Windows-Panels/region"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Function: Invoke-WPFControlPanel
|
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
function Invoke-WPFControlPanel {
|
function Invoke-WPFControlPanel {
|
||||||
<#
|
<#
|
||||||
@@ -43,23 +14,17 @@ function Invoke-WPFControlPanel {
|
|||||||
param($Panel)
|
param($Panel)
|
||||||
|
|
||||||
switch ($Panel) {
|
switch ($Panel) {
|
||||||
"WPFPanelcontrol" {cmd /c control}
|
"WPFPanelControl" {control}
|
||||||
"WPFPanelnetwork" {cmd /c ncpa.cpl}
|
"WPFPanelComputer" {compmgmt.msc}
|
||||||
"WPFPanelpower" {cmd /c powercfg.cpl}
|
"WPFPanelNetwork" {ncpa.cpl}
|
||||||
"WPFPanelregion" {cmd /c intl.cpl}
|
"WPFPanelPower" {powercfg.cpl}
|
||||||
"WPFPanelsound" {cmd /c mmsys.cpl}
|
"WPFPanelPrinter" {Start-Process "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"}
|
||||||
"WPFPanelsystem" {cmd /c sysdm.cpl}
|
"WPFPanelRegion" {intl.cpl}
|
||||||
"WPFPaneluser" {cmd /c "control userpasswords2"}
|
"WPFPanelRestore" {rstrui.exe}
|
||||||
|
"WPFPanelSound" {mmsys.cpl}
|
||||||
|
"WPFPanelSystem" {sysdm.cpl}
|
||||||
|
"WPFPanelTimedate" {timedate.cpl}
|
||||||
|
"WPFPanelUser" {control userpasswords2}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,34 +1,5 @@
|
|||||||
# Sound Settings
|
# Sound Settings
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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": "Sound Settings",
|
|
||||||
"category": "Legacy Windows Panels",
|
|
||||||
"panel": "2",
|
|
||||||
"Type": "Button",
|
|
||||||
"ButtonWidth": "300",
|
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/features/Legacy-Windows-Panels/sound"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Function: Invoke-WPFControlPanel
|
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
function Invoke-WPFControlPanel {
|
function Invoke-WPFControlPanel {
|
||||||
<#
|
<#
|
||||||
@@ -43,23 +14,17 @@ function Invoke-WPFControlPanel {
|
|||||||
param($Panel)
|
param($Panel)
|
||||||
|
|
||||||
switch ($Panel) {
|
switch ($Panel) {
|
||||||
"WPFPanelcontrol" {cmd /c control}
|
"WPFPanelControl" {control}
|
||||||
"WPFPanelnetwork" {cmd /c ncpa.cpl}
|
"WPFPanelComputer" {compmgmt.msc}
|
||||||
"WPFPanelpower" {cmd /c powercfg.cpl}
|
"WPFPanelNetwork" {ncpa.cpl}
|
||||||
"WPFPanelregion" {cmd /c intl.cpl}
|
"WPFPanelPower" {powercfg.cpl}
|
||||||
"WPFPanelsound" {cmd /c mmsys.cpl}
|
"WPFPanelPrinter" {Start-Process "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"}
|
||||||
"WPFPanelsystem" {cmd /c sysdm.cpl}
|
"WPFPanelRegion" {intl.cpl}
|
||||||
"WPFPaneluser" {cmd /c "control userpasswords2"}
|
"WPFPanelRestore" {rstrui.exe}
|
||||||
|
"WPFPanelSound" {mmsys.cpl}
|
||||||
|
"WPFPanelSystem" {sysdm.cpl}
|
||||||
|
"WPFPanelTimedate" {timedate.cpl}
|
||||||
|
"WPFPanelUser" {control userpasswords2}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,34 +1,5 @@
|
|||||||
# System Properties
|
# System Properties
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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": "System Properties",
|
|
||||||
"category": "Legacy Windows Panels",
|
|
||||||
"panel": "2",
|
|
||||||
"Type": "Button",
|
|
||||||
"ButtonWidth": "300",
|
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/features/Legacy-Windows-Panels/system"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Function: Invoke-WPFControlPanel
|
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
function Invoke-WPFControlPanel {
|
function Invoke-WPFControlPanel {
|
||||||
<#
|
<#
|
||||||
@@ -43,23 +14,17 @@ function Invoke-WPFControlPanel {
|
|||||||
param($Panel)
|
param($Panel)
|
||||||
|
|
||||||
switch ($Panel) {
|
switch ($Panel) {
|
||||||
"WPFPanelcontrol" {cmd /c control}
|
"WPFPanelControl" {control}
|
||||||
"WPFPanelnetwork" {cmd /c ncpa.cpl}
|
"WPFPanelComputer" {compmgmt.msc}
|
||||||
"WPFPanelpower" {cmd /c powercfg.cpl}
|
"WPFPanelNetwork" {ncpa.cpl}
|
||||||
"WPFPanelregion" {cmd /c intl.cpl}
|
"WPFPanelPower" {powercfg.cpl}
|
||||||
"WPFPanelsound" {cmd /c mmsys.cpl}
|
"WPFPanelPrinter" {Start-Process "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"}
|
||||||
"WPFPanelsystem" {cmd /c sysdm.cpl}
|
"WPFPanelRegion" {intl.cpl}
|
||||||
"WPFPaneluser" {cmd /c "control userpasswords2"}
|
"WPFPanelRestore" {rstrui.exe}
|
||||||
|
"WPFPanelSound" {mmsys.cpl}
|
||||||
|
"WPFPanelSystem" {sysdm.cpl}
|
||||||
|
"WPFPanelTimedate" {timedate.cpl}
|
||||||
|
"WPFPanelUser" {control userpasswords2}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,34 +1,5 @@
|
|||||||
# User Accounts
|
# User Accounts
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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": "User Accounts",
|
|
||||||
"category": "Legacy Windows Panels",
|
|
||||||
"panel": "2",
|
|
||||||
"Type": "Button",
|
|
||||||
"ButtonWidth": "300",
|
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/features/Legacy-Windows-Panels/user"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Function: Invoke-WPFControlPanel
|
|
||||||
|
|
||||||
```powershell
|
```powershell
|
||||||
function Invoke-WPFControlPanel {
|
function Invoke-WPFControlPanel {
|
||||||
<#
|
<#
|
||||||
@@ -43,23 +14,17 @@ function Invoke-WPFControlPanel {
|
|||||||
param($Panel)
|
param($Panel)
|
||||||
|
|
||||||
switch ($Panel) {
|
switch ($Panel) {
|
||||||
"WPFPanelcontrol" {cmd /c control}
|
"WPFPanelControl" {control}
|
||||||
"WPFPanelnetwork" {cmd /c ncpa.cpl}
|
"WPFPanelComputer" {compmgmt.msc}
|
||||||
"WPFPanelpower" {cmd /c powercfg.cpl}
|
"WPFPanelNetwork" {ncpa.cpl}
|
||||||
"WPFPanelregion" {cmd /c intl.cpl}
|
"WPFPanelPower" {powercfg.cpl}
|
||||||
"WPFPanelsound" {cmd /c mmsys.cpl}
|
"WPFPanelPrinter" {Start-Process "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"}
|
||||||
"WPFPanelsystem" {cmd /c sysdm.cpl}
|
"WPFPanelRegion" {intl.cpl}
|
||||||
"WPFPaneluser" {cmd /c "control userpasswords2"}
|
"WPFPanelRestore" {rstrui.exe}
|
||||||
|
"WPFPanelSound" {mmsys.cpl}
|
||||||
|
"WPFPanelSystem" {sysdm.cpl}
|
||||||
|
"WPFPanelTimedate" {timedate.cpl}
|
||||||
|
"WPFPanelUser" {control userpasswords2}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,40 +1,16 @@
|
|||||||
---
|
---
|
||||||
weight: 2
|
weight: 1
|
||||||
|
title: "Features"
|
||||||
---
|
---
|
||||||
|
|
||||||
# Table of Contents
|
|
||||||
|
|
||||||
## Features
|
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
||||||
- [Remove Adobe Creative Cloud](fixes/runadobecccleanertool/)
|
{{< autolinks section="dev/features/fixes" >}}
|
||||||
- [Reset Network](fixes/network/)
|
|
||||||
- [Reset Windows Update](fixes/update/)
|
|
||||||
- [Set Up Autologin](fixes/autologin/)
|
|
||||||
- [System Corruption Scan](fixes/dism/)
|
|
||||||
- [WinGet Reinstall](fixes/winget/)
|
|
||||||
### Legacy Windows Panels
|
### Legacy Windows Panels
|
||||||
|
|
||||||
- [Control Panel](legacy-windows-panels/control/)
|
{{< autolinks section="dev/features/legacy-windows-panels" >}}
|
||||||
- [Network Connections](legacy-windows-panels/network/)
|
|
||||||
- [Power Panel](legacy-windows-panels/power/)
|
|
||||||
- [Printer Settings](legacy-windows-panels/printer/)
|
|
||||||
- [Region](legacy-windows-panels/region/)
|
|
||||||
- [Sound Settings](legacy-windows-panels/sound/)
|
|
||||||
- [System Properties](legacy-windows-panels/system/)
|
|
||||||
- [User Accounts](legacy-windows-panels/user/)
|
|
||||||
### Features
|
### Features
|
||||||
|
|
||||||
- [All .Net Framework (2,3,4)](features/dotnet/)
|
{{< autolinks section="dev/features/features" >}}
|
||||||
- [Disable Legacy F8 Boot Recovery](features/disablelegacyrecovery/)
|
|
||||||
- [Disable Search Box Web Suggestions in Registry(explorer restart)](features/disablesearchsuggestions/)
|
|
||||||
- [Enable Daily Registry Backup Task 12.30am](features/regbackup/)
|
|
||||||
- [Enable Legacy F8 Boot Recovery](features/enablelegacyrecovery/)
|
|
||||||
- [Enable Search Box Web Suggestions in Registry(explorer restart)](features/enablesearchsuggestions/)
|
|
||||||
- [HyperV Virtualization](features/hyperv/)
|
|
||||||
- [Install Features](features/install/)
|
|
||||||
- [Legacy Media (wmp, directplay)](features/legacymedia/)
|
|
||||||
- [NFS - Network File System](features/nfs/)
|
|
||||||
- [Windows Sandbox](features/sandbox/)
|
|
||||||
- [Windows Subsystem for Linux](features/wsl/)
|
|
||||||
|
|||||||
@@ -1,76 +1,26 @@
|
|||||||
# Bing Search in Start Menu
|
# Bing Search in Start Menu
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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
|
|
||||||
|
|
||||||
If enable then includes web search results from Bing in your Start Menu search.
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
"WPFToggleBingSearch": {
|
||||||
"Content": "Bing Search in Start Menu",
|
"Content": "Bing Search in Start Menu",
|
||||||
"Description": "If enable then includes web search results from Bing in your Start Menu search.",
|
"Description": "If enable then includes web search results from Bing in your Start Menu search.",
|
||||||
"category": "Customize Preferences",
|
"category": "Customize Preferences",
|
||||||
"panel": "2",
|
"panel": "2",
|
||||||
"Order": "a101_",
|
"Order": "a101_",
|
||||||
"Type": "Toggle",
|
"Type": "Toggle",
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Customize-Preferences/BingSearch"
|
"registry": [
|
||||||
}
|
{
|
||||||
|
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Search",
|
||||||
|
"Name": "BingSearchEnabled",
|
||||||
|
"Value": "1",
|
||||||
|
"OriginalValue": "0",
|
||||||
|
"DefaultState": "true",
|
||||||
|
"Type": "DWord"
|
||||||
|
}
|
||||||
|
],
|
||||||
```
|
```
|
||||||
|
|
||||||
</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.
|
||||||
## Function: Invoke-WinutilBingSearch
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
function Invoke-WinutilBingSearch {
|
|
||||||
<#
|
|
||||||
|
|
||||||
.SYNOPSIS
|
|
||||||
Disables/Enables Bing Search
|
|
||||||
|
|
||||||
.PARAMETER Enabled
|
|
||||||
Indicates whether to enable or disable Bing Search
|
|
||||||
|
|
||||||
#>
|
|
||||||
Param($Enabled)
|
|
||||||
try {
|
|
||||||
if ($Enabled -eq $false) {
|
|
||||||
Write-Host "Enabling Bing Search"
|
|
||||||
$value = 1
|
|
||||||
} else {
|
|
||||||
Write-Host "Disabling Bing Search"
|
|
||||||
$value = 0
|
|
||||||
}
|
|
||||||
$Path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Search"
|
|
||||||
Set-ItemProperty -Path $Path -Name BingSearchEnabled -Value $value
|
|
||||||
} catch [System.Security.SecurityException] {
|
|
||||||
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
|
|
||||||
} catch [System.Management.Automation.ItemNotFoundException] {
|
|
||||||
Write-Warning $psitem.Exception.ErrorRecord
|
|
||||||
} catch {
|
|
||||||
Write-Warning "Unable to set $Name due to unhandled exception"
|
|
||||||
Write-Warning $psitem.Exception.StackTrace
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
|
|
||||||
|
|
||||||
|
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).
|
||||||
|
|||||||
@@ -1,78 +1,50 @@
|
|||||||
# Dark Theme for Windows
|
# Dark Theme for Windows
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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
|
|
||||||
|
|
||||||
Enable/Disable Dark Mode.
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
"WPFToggleDarkMode": {
|
||||||
"Content": "Dark Theme for Windows",
|
"Content": "Dark Theme for Windows",
|
||||||
"Description": "Enable/Disable Dark Mode.",
|
"Description": "Enable/Disable Dark Mode.",
|
||||||
"category": "Customize Preferences",
|
"category": "Customize Preferences",
|
||||||
"panel": "2",
|
"panel": "2",
|
||||||
"Order": "a100_",
|
"Order": "a100_",
|
||||||
"Type": "Toggle",
|
"Type": "Toggle",
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Customize-Preferences/DarkMode"
|
"registry": [
|
||||||
}
|
{
|
||||||
|
"Path": "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize",
|
||||||
|
"Name": "AppsUseLightTheme",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1",
|
||||||
|
"DefaultState": "false",
|
||||||
|
"Type": "DWord"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize",
|
||||||
|
"Name": "SystemUsesLightTheme",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1",
|
||||||
|
"DefaultState": "false",
|
||||||
|
"Type": "DWord"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"InvokeScript": [
|
||||||
|
"
|
||||||
|
Invoke-WinUtilExplorerUpdate
|
||||||
|
if ($sync.ThemeButton.Content -eq [char]0xF08C) {
|
||||||
|
Invoke-WinutilThemeChange -theme \"Auto\"
|
||||||
|
}
|
||||||
|
"
|
||||||
|
],
|
||||||
|
"UndoScript": [
|
||||||
|
"
|
||||||
|
Invoke-WinUtilExplorerUpdate
|
||||||
|
if ($sync.ThemeButton.Content -eq [char]0xF08C) {
|
||||||
|
Invoke-WinutilThemeChange -theme \"Auto\"
|
||||||
|
}
|
||||||
|
"
|
||||||
|
],
|
||||||
```
|
```
|
||||||
|
|
||||||
</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.
|
||||||
## Function: Invoke-WinutilDarkMode
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
Function Invoke-WinutilDarkMode {
|
|
||||||
<#
|
|
||||||
|
|
||||||
.SYNOPSIS
|
|
||||||
Enables/Disables Dark Mode
|
|
||||||
|
|
||||||
.PARAMETER DarkMoveEnabled
|
|
||||||
Indicates the current dark mode state
|
|
||||||
|
|
||||||
#>
|
|
||||||
Param($DarkMoveEnabled)
|
|
||||||
try {
|
|
||||||
if ($DarkMoveEnabled -eq $false) {
|
|
||||||
Write-Host "Enabling Dark Mode"
|
|
||||||
$DarkMoveValue = 0
|
|
||||||
} else {
|
|
||||||
Write-Host "Disabling Dark Mode"
|
|
||||||
$DarkMoveValue = 1
|
|
||||||
}
|
|
||||||
|
|
||||||
$Path = "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize"
|
|
||||||
Set-ItemProperty -Path $Path -Name AppsUseLightTheme -Value $DarkMoveValue
|
|
||||||
Set-ItemProperty -Path $Path -Name SystemUsesLightTheme -Value $DarkMoveValue
|
|
||||||
} catch [System.Security.SecurityException] {
|
|
||||||
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
|
|
||||||
} catch [System.Management.Automation.ItemNotFoundException] {
|
|
||||||
Write-Warning $psitem.Exception.ErrorRecord
|
|
||||||
} catch {
|
|
||||||
Write-Warning "Unable to set $Name due to unhandled exception"
|
|
||||||
Write-Warning $psitem.Exception.StackTrace
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
|
|
||||||
|
|
||||||
|
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).
|
||||||
|
|||||||
@@ -1,76 +1,34 @@
|
|||||||
# Detailed BSoD
|
# Detailed BSoD
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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
|
|
||||||
|
|
||||||
If Enabled then you will see a detailed Blue Screen of Death (BSOD) with more information.
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
"WPFToggleDetailedBSoD": {
|
||||||
"Content": "Detailed BSoD",
|
"Content": "Detailed BSoD",
|
||||||
"Description": "If Enabled then you will see a detailed Blue Screen of Death (BSOD) with more information.",
|
"Description": "If Enabled then you will see a detailed Blue Screen of Death (BSOD) with more information.",
|
||||||
"category": "Customize Preferences",
|
"category": "Customize Preferences",
|
||||||
"panel": "2",
|
"panel": "2",
|
||||||
"Order": "a205_",
|
"Order": "a205_",
|
||||||
"Type": "Toggle",
|
"Type": "Toggle",
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Customize-Preferences/DetailedBSoD"
|
"registry": [
|
||||||
}
|
{
|
||||||
|
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\CrashControl",
|
||||||
|
"Name": "DisplayParameters",
|
||||||
|
"Value": "1",
|
||||||
|
"OriginalValue": "0",
|
||||||
|
"DefaultState": "false",
|
||||||
|
"Type": "DWord"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\CrashControl",
|
||||||
|
"Name": "DisableEmoticon",
|
||||||
|
"Value": "1",
|
||||||
|
"OriginalValue": "0",
|
||||||
|
"DefaultState": "false",
|
||||||
|
"Type": "DWord"
|
||||||
|
}
|
||||||
|
],
|
||||||
```
|
```
|
||||||
|
|
||||||
</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.
|
||||||
## Function: Invoke-WinutilDetailedBSoD
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
Function Invoke-WinutilDetailedBSoD {
|
|
||||||
<#
|
|
||||||
|
|
||||||
.SYNOPSIS
|
|
||||||
Enables/Disables Detailed BSoD
|
|
||||||
(Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl' -Name 'DisplayParameters').DisplayParameters
|
|
||||||
|
|
||||||
|
|
||||||
#>
|
|
||||||
Param($Enabled)
|
|
||||||
try {
|
|
||||||
if ($Enabled -eq $false) {
|
|
||||||
Write-Host "Enabling Detailed BSoD"
|
|
||||||
$value = 1
|
|
||||||
} else {
|
|
||||||
Write-Host "Disabling Detailed BSoD"
|
|
||||||
$value =0
|
|
||||||
}
|
|
||||||
|
|
||||||
$Path = "HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl"
|
|
||||||
Set-ItemProperty -Path $Path -Name DisplayParameters -Value $value
|
|
||||||
} catch [System.Security.SecurityException] {
|
|
||||||
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
|
|
||||||
} catch [System.Management.Automation.ItemNotFoundException] {
|
|
||||||
Write-Warning $psitem.Exception.ErrorRecord
|
|
||||||
} catch {
|
|
||||||
Write-Warning "Unable to set $Name due to unhandled exception"
|
|
||||||
Write-Warning $psitem.Exception.StackTrace
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
|
|
||||||
|
|
||||||
|
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).
|
||||||
|
|||||||
@@ -1,76 +1,36 @@
|
|||||||
# Show Hidden Files
|
# Show Hidden Files
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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
|
|
||||||
|
|
||||||
If Enabled then Hidden Files will be shown.
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
"WPFToggleHiddenFiles": {
|
||||||
"Content": "Show Hidden Files",
|
"Content": "Show Hidden Files",
|
||||||
"Description": "If Enabled then Hidden Files will be shown.",
|
"Description": "If Enabled then Hidden Files will be shown.",
|
||||||
"category": "Customize Preferences",
|
"category": "Customize Preferences",
|
||||||
"panel": "2",
|
"panel": "2",
|
||||||
"Order": "a200_",
|
"Order": "a200_",
|
||||||
"Type": "Toggle",
|
"Type": "Toggle",
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Customize-Preferences/HiddenFiles"
|
"registry": [
|
||||||
}
|
{
|
||||||
|
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
|
||||||
|
"Name": "Hidden",
|
||||||
|
"Value": "1",
|
||||||
|
"OriginalValue": "0",
|
||||||
|
"DefaultState": "false",
|
||||||
|
"Type": "DWord"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"InvokeScript": [
|
||||||
|
"
|
||||||
|
Invoke-WinUtilExplorerUpdate -action \"restart\"
|
||||||
|
"
|
||||||
|
],
|
||||||
|
"UndoScript": [
|
||||||
|
"
|
||||||
|
Invoke-WinUtilExplorerUpdate -action \"restart\"
|
||||||
|
"
|
||||||
|
],
|
||||||
```
|
```
|
||||||
|
|
||||||
</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.
|
||||||
## Function: Invoke-WinutilHiddenFiles
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
function Invoke-WinutilHiddenFiles {
|
|
||||||
<#
|
|
||||||
|
|
||||||
.SYNOPSIS
|
|
||||||
Enable/Disable Hidden Files
|
|
||||||
|
|
||||||
.PARAMETER Enabled
|
|
||||||
Indicates whether to enable or disable Hidden Files
|
|
||||||
|
|
||||||
#>
|
|
||||||
Param($Enabled)
|
|
||||||
try {
|
|
||||||
if ($Enabled -eq $false) {
|
|
||||||
Write-Host "Enabling Hidden Files"
|
|
||||||
$value = 1
|
|
||||||
} else {
|
|
||||||
Write-Host "Disabling Hidden Files"
|
|
||||||
$value = 0
|
|
||||||
}
|
|
||||||
$Path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
|
|
||||||
Set-ItemProperty -Path $Path -Name Hidden -Value $value
|
|
||||||
} catch [System.Security.SecurityException] {
|
|
||||||
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
|
|
||||||
} catch [System.Management.Automation.ItemNotFoundException] {
|
|
||||||
Write-Warning $psitem.Exception.ErrorRecord
|
|
||||||
} catch {
|
|
||||||
Write-Warning "Unable to set $Name due to unhandled exception"
|
|
||||||
Write-Warning $psitem.Exception.StackTrace
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
|
|
||||||
|
|
||||||
|
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).
|
||||||
|
|||||||
@@ -1,84 +1,42 @@
|
|||||||
# Mouse Acceleration
|
# Mouse Acceleration
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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
|
|
||||||
|
|
||||||
If Enabled then Cursor movement is affected by the speed of your physical mouse movements.
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
"WPFToggleMouseAcceleration": {
|
||||||
"Content": "Mouse Acceleration",
|
"Content": "Mouse Acceleration",
|
||||||
"Description": "If Enabled then Cursor movement is affected by the speed of your physical mouse movements.",
|
"Description": "If Enabled then Cursor movement is affected by the speed of your physical mouse movements.",
|
||||||
"category": "Customize Preferences",
|
"category": "Customize Preferences",
|
||||||
"panel": "2",
|
"panel": "2",
|
||||||
"Order": "a107_",
|
"Order": "a109_",
|
||||||
"Type": "Toggle",
|
"Type": "Toggle",
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Customize-Preferences/MouseAcceleration"
|
"registry": [
|
||||||
}
|
{
|
||||||
|
"Path": "HKCU:\\Control Panel\\Mouse",
|
||||||
|
"Name": "MouseSpeed",
|
||||||
|
"Value": "1",
|
||||||
|
"OriginalValue": "0",
|
||||||
|
"DefaultState": "true",
|
||||||
|
"Type": "DWord"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKCU:\\Control Panel\\Mouse",
|
||||||
|
"Name": "MouseThreshold1",
|
||||||
|
"Value": "6",
|
||||||
|
"OriginalValue": "0",
|
||||||
|
"DefaultState": "true",
|
||||||
|
"Type": "DWord"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKCU:\\Control Panel\\Mouse",
|
||||||
|
"Name": "MouseThreshold2",
|
||||||
|
"Value": "10",
|
||||||
|
"OriginalValue": "0",
|
||||||
|
"DefaultState": "true",
|
||||||
|
"Type": "DWord"
|
||||||
|
}
|
||||||
|
],
|
||||||
```
|
```
|
||||||
|
|
||||||
</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.
|
||||||
## Function: Invoke-WinutilMouseAcceleration
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
Function Invoke-WinutilMouseAcceleration {
|
|
||||||
<#
|
|
||||||
|
|
||||||
.SYNOPSIS
|
|
||||||
Enables/Disables Mouse Acceleration
|
|
||||||
|
|
||||||
.PARAMETER DarkMoveEnabled
|
|
||||||
Indicates the current Mouse Acceleration State
|
|
||||||
|
|
||||||
#>
|
|
||||||
Param($MouseAccelerationEnabled)
|
|
||||||
try {
|
|
||||||
if ($MouseAccelerationEnabled -eq $false) {
|
|
||||||
Write-Host "Enabling Mouse Acceleration"
|
|
||||||
$MouseSpeed = 1
|
|
||||||
$MouseThreshold1 = 6
|
|
||||||
$MouseThreshold2 = 10
|
|
||||||
} else {
|
|
||||||
Write-Host "Disabling Mouse Acceleration"
|
|
||||||
$MouseSpeed = 0
|
|
||||||
$MouseThreshold1 = 0
|
|
||||||
$MouseThreshold2 = 0
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
$Path = "HKCU:\Control Panel\Mouse"
|
|
||||||
Set-ItemProperty -Path $Path -Name MouseSpeed -Value $MouseSpeed
|
|
||||||
Set-ItemProperty -Path $Path -Name MouseThreshold1 -Value $MouseThreshold1
|
|
||||||
Set-ItemProperty -Path $Path -Name MouseThreshold2 -Value $MouseThreshold2
|
|
||||||
} catch [System.Security.SecurityException] {
|
|
||||||
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
|
|
||||||
} catch [System.Management.Automation.ItemNotFoundException] {
|
|
||||||
Write-Warning $psitem.Exception.ErrorRecord
|
|
||||||
} catch {
|
|
||||||
Write-Warning "Unable to set $Name due to unhandled exception"
|
|
||||||
Write-Warning $psitem.Exception.StackTrace
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
|
|
||||||
|
|
||||||
|
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).
|
||||||
|
|||||||
@@ -1,77 +1,34 @@
|
|||||||
# NumLock on Startup
|
# NumLock on Startup
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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
|
|
||||||
|
|
||||||
Toggle the Num Lock key state when your computer starts.
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
"WPFToggleNumLock": {
|
||||||
"Content": "NumLock on Startup",
|
"Content": "NumLock on Startup",
|
||||||
"Description": "Toggle the Num Lock key state when your computer starts.",
|
"Description": "Toggle the Num Lock key state when your computer starts.",
|
||||||
"category": "Customize Preferences",
|
"category": "Customize Preferences",
|
||||||
"panel": "2",
|
"panel": "2",
|
||||||
"Order": "a102_",
|
"Order": "a102_",
|
||||||
"Type": "Toggle",
|
"Type": "Toggle",
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Customize-Preferences/NumLock"
|
"registry": [
|
||||||
}
|
{
|
||||||
|
"Path": "HKU:\\.Default\\Control Panel\\Keyboard",
|
||||||
|
"Name": "InitialKeyboardIndicators",
|
||||||
|
"Value": "2",
|
||||||
|
"OriginalValue": "0",
|
||||||
|
"DefaultState": "false",
|
||||||
|
"Type": "DWord"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKCU:\\Control Panel\\Keyboard",
|
||||||
|
"Name": "InitialKeyboardIndicators",
|
||||||
|
"Value": "2",
|
||||||
|
"OriginalValue": "0",
|
||||||
|
"DefaultState": "false",
|
||||||
|
"Type": "DWord"
|
||||||
|
}
|
||||||
|
],
|
||||||
```
|
```
|
||||||
|
|
||||||
</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.
|
||||||
## Function: Invoke-WinutilNumLock
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
function Invoke-WinutilNumLock {
|
|
||||||
<#
|
|
||||||
.SYNOPSIS
|
|
||||||
Disables/Enables NumLock on startup
|
|
||||||
.PARAMETER Enabled
|
|
||||||
Indicates whether to enable or disable Numlock on startup
|
|
||||||
#>
|
|
||||||
Param($Enabled)
|
|
||||||
try {
|
|
||||||
if ($Enabled -eq $false) {
|
|
||||||
Write-Host "Enabling Numlock on startup"
|
|
||||||
$value = 2
|
|
||||||
} else {
|
|
||||||
Write-Host "Disabling Numlock on startup"
|
|
||||||
$value = 0
|
|
||||||
}
|
|
||||||
New-PSDrive -PSProvider Registry -Name HKU -Root HKEY_USERS
|
|
||||||
$HKUPath = "HKU:\.Default\Control Panel\Keyboard"
|
|
||||||
$HKCUPath = "HKCU:\Control Panel\Keyboard"
|
|
||||||
Set-ItemProperty -Path $HKUPath -Name InitialKeyboardIndicators -Value $value
|
|
||||||
Set-ItemProperty -Path $HKCUPath -Name InitialKeyboardIndicators -Value $value
|
|
||||||
}
|
|
||||||
Catch [System.Security.SecurityException] {
|
|
||||||
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
|
|
||||||
} catch [System.Management.Automation.ItemNotFoundException] {
|
|
||||||
Write-Warning $psitem.Exception.ErrorRecord
|
|
||||||
} catch {
|
|
||||||
Write-Warning "Unable to set $Name due to unhandled exception"
|
|
||||||
Write-Warning $psitem.Exception.StackTrace
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
|
|
||||||
|
|
||||||
|
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).
|
||||||
|
|||||||
@@ -1,73 +1,36 @@
|
|||||||
# Show File Extensions
|
# Show File Extensions
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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
|
|
||||||
|
|
||||||
If enabled then File extensions (e.g., .txt, .jpg) are visible.
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
"WPFToggleShowExt": {
|
||||||
"Content": "Show File Extensions",
|
"Content": "Show File Extensions",
|
||||||
"Description": "If enabled then File extensions (e.g., .txt, .jpg) are visible.",
|
"Description": "If enabled then File extensions (e.g., .txt, .jpg) are visible.",
|
||||||
"category": "Customize Preferences",
|
"category": "Customize Preferences",
|
||||||
"panel": "2",
|
"panel": "2",
|
||||||
"Order": "a201_",
|
"Order": "a201_",
|
||||||
"Type": "Toggle",
|
"Type": "Toggle",
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Customize-Preferences/ShowExt"
|
"registry": [
|
||||||
}
|
{
|
||||||
|
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
|
||||||
|
"Name": "HideFileExt",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1",
|
||||||
|
"DefaultState": "false",
|
||||||
|
"Type": "DWord"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"InvokeScript": [
|
||||||
|
"
|
||||||
|
Invoke-WinUtilExplorerUpdate -action \"restart\"
|
||||||
|
"
|
||||||
|
],
|
||||||
|
"UndoScript": [
|
||||||
|
"
|
||||||
|
Invoke-WinUtilExplorerUpdate -action \"restart\"
|
||||||
|
"
|
||||||
|
],
|
||||||
```
|
```
|
||||||
|
|
||||||
</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.
|
||||||
## Function: Invoke-WinutilShowExt
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
function Invoke-WinutilShowExt {
|
|
||||||
<#
|
|
||||||
.SYNOPSIS
|
|
||||||
Disables/Enables Show file Extentions
|
|
||||||
.PARAMETER Enabled
|
|
||||||
Indicates whether to enable or disable Show file extentions
|
|
||||||
#>
|
|
||||||
Param($Enabled)
|
|
||||||
try {
|
|
||||||
if ($Enabled -eq $false) {
|
|
||||||
Write-Host "Showing file extentions"
|
|
||||||
$value = 0
|
|
||||||
} else {
|
|
||||||
Write-Host "hiding file extensions"
|
|
||||||
$value = 1
|
|
||||||
}
|
|
||||||
$Path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
|
|
||||||
Set-ItemProperty -Path $Path -Name HideFileExt -Value $value
|
|
||||||
} catch [System.Security.SecurityException] {
|
|
||||||
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
|
|
||||||
} catch [System.Management.Automation.ItemNotFoundException] {
|
|
||||||
Write-Warning $psitem.Exception.ErrorRecord
|
|
||||||
} catch {
|
|
||||||
Write-Warning "Unable to set $Name due to unhandled exception"
|
|
||||||
Write-Warning $psitem.Exception.StackTrace
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
|
|
||||||
|
|
||||||
|
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).
|
||||||
|
|||||||
@@ -1,76 +1,36 @@
|
|||||||
# Snap Assist Flyout
|
# Snap Assist Flyout
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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
|
|
||||||
|
|
||||||
If enabled then Snap preview is disabled when maximize button is hovered.
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
"WPFToggleSnapFlyout": {
|
||||||
"Content": "Snap Assist Flyout",
|
"Content": "Snap Assist Flyout",
|
||||||
"Description": "If enabled then Snap preview is disabled when maximize button is hovered.",
|
"Description": "If disabled then Snap preview is disabled when maximize button is hovered.",
|
||||||
"category": "Customize Preferences",
|
"category": "Customize Preferences",
|
||||||
"panel": "2",
|
"panel": "2",
|
||||||
"Order": "a105_",
|
"Order": "a107_",
|
||||||
"Type": "Toggle",
|
"Type": "Toggle",
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Customize-Preferences/SnapFlyout"
|
"registry": [
|
||||||
}
|
{
|
||||||
|
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
|
||||||
|
"Name": "EnableSnapAssistFlyout",
|
||||||
|
"Value": "1",
|
||||||
|
"OriginalValue": "0",
|
||||||
|
"DefaultState": "true",
|
||||||
|
"Type": "DWord"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"InvokeScript": [
|
||||||
|
"
|
||||||
|
Invoke-WinUtilExplorerUpdate -action \"restart\"
|
||||||
|
"
|
||||||
|
],
|
||||||
|
"UndoScript": [
|
||||||
|
"
|
||||||
|
Invoke-WinUtilExplorerUpdate -action \"restart\"
|
||||||
|
"
|
||||||
|
],
|
||||||
```
|
```
|
||||||
|
|
||||||
</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.
|
||||||
## Function: Invoke-WinutilSnapFlyout
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
function Invoke-WinutilSnapFlyout {
|
|
||||||
<#
|
|
||||||
.SYNOPSIS
|
|
||||||
Disables/Enables Snap Assist Flyout on startup
|
|
||||||
.PARAMETER Enabled
|
|
||||||
Indicates whether to enable or disable Snap Assist Flyout on startup
|
|
||||||
#>
|
|
||||||
Param($Enabled)
|
|
||||||
try {
|
|
||||||
if ($Enabled -eq $false) {
|
|
||||||
Write-Host "Enabling Snap Assist Flyout On startup"
|
|
||||||
$value = 1
|
|
||||||
} else {
|
|
||||||
Write-Host "Disabling Snap Assist Flyout On startup"
|
|
||||||
$value = 0
|
|
||||||
}
|
|
||||||
# taskkill.exe /F /IM "explorer.exe"
|
|
||||||
$Path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
|
|
||||||
taskkill.exe /F /IM "explorer.exe"
|
|
||||||
Set-ItemProperty -Path $Path -Name EnableSnapAssistFlyout -Value $value
|
|
||||||
Start-Process "explorer.exe"
|
|
||||||
} catch [System.Security.SecurityException] {
|
|
||||||
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
|
|
||||||
} catch [System.Management.Automation.ItemNotFoundException] {
|
|
||||||
Write-Warning $psitem.Exception.ErrorRecord
|
|
||||||
} catch {
|
|
||||||
Write-Warning "Unable to set $Name due to unhandled exception"
|
|
||||||
Write-Warning $psitem.Exception.StackTrace
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
|
|
||||||
|
|
||||||
|
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).
|
||||||
|
|||||||
@@ -1,76 +1,36 @@
|
|||||||
# Snap Assist Suggestion
|
# Snap Assist Suggestion
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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
|
|
||||||
|
|
||||||
If enabled then you will get suggestions to snap other applications in the left over spaces.
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
"WPFToggleSnapSuggestion": {
|
||||||
"Content": "Snap Assist Suggestion",
|
"Content": "Snap Assist Suggestion",
|
||||||
"Description": "If enabled then you will get suggestions to snap other applications in the left over spaces.",
|
"Description": "If enabled then you will get suggestions to snap other applications in the left over spaces.",
|
||||||
"category": "Customize Preferences",
|
"category": "Customize Preferences",
|
||||||
"panel": "2",
|
"panel": "2",
|
||||||
"Order": "a106_",
|
"Order": "a108_",
|
||||||
"Type": "Toggle",
|
"Type": "Toggle",
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Customize-Preferences/SnapSuggestion"
|
"registry": [
|
||||||
}
|
{
|
||||||
|
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
|
||||||
|
"Name": "SnapAssist",
|
||||||
|
"Value": "1",
|
||||||
|
"OriginalValue": "0",
|
||||||
|
"DefaultState": "true",
|
||||||
|
"Type": "DWord"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"InvokeScript": [
|
||||||
|
"
|
||||||
|
Invoke-WinUtilExplorerUpdate -action \"restart\"
|
||||||
|
"
|
||||||
|
],
|
||||||
|
"UndoScript": [
|
||||||
|
"
|
||||||
|
Invoke-WinUtilExplorerUpdate -action \"restart\"
|
||||||
|
"
|
||||||
|
],
|
||||||
```
|
```
|
||||||
|
|
||||||
</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.
|
||||||
## Function: Invoke-WinutilSnapSuggestion
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
function Invoke-WinutilSnapSuggestion {
|
|
||||||
<#
|
|
||||||
.SYNOPSIS
|
|
||||||
Disables/Enables Snap Assist Suggestions on startup
|
|
||||||
.PARAMETER Enabled
|
|
||||||
Indicates whether to enable or disable Snap Assist Suggestions on startup
|
|
||||||
#>
|
|
||||||
Param($Enabled)
|
|
||||||
try {
|
|
||||||
if ($Enabled -eq $false) {
|
|
||||||
Write-Host "Enabling Snap Assist Suggestion On startup"
|
|
||||||
$value = 1
|
|
||||||
} else {
|
|
||||||
Write-Host "Disabling Snap Assist Suggestion On startup"
|
|
||||||
$value = 0
|
|
||||||
}
|
|
||||||
# taskkill.exe /F /IM "explorer.exe"
|
|
||||||
$Path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
|
|
||||||
taskkill.exe /F /IM "explorer.exe"
|
|
||||||
Set-ItemProperty -Path $Path -Name SnapAssist -Value $value
|
|
||||||
Start-Process "explorer.exe"
|
|
||||||
} catch [System.Security.SecurityException] {
|
|
||||||
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
|
|
||||||
} catch [System.Management.Automation.ItemNotFoundException] {
|
|
||||||
Write-Warning $psitem.Exception.ErrorRecord
|
|
||||||
} catch {
|
|
||||||
Write-Warning "Unable to set $Name due to unhandled exception"
|
|
||||||
Write-Warning $psitem.Exception.StackTrace
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
|
|
||||||
|
|
||||||
|
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).
|
||||||
|
|||||||
@@ -1,73 +1,26 @@
|
|||||||
# Snap Window
|
# Snap Window
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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
|
|
||||||
|
|
||||||
If enabled you can align windows by dragging them. | Relogin Required
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
"WPFToggleSnapWindow": {
|
||||||
"Content": "Snap Window",
|
"Content": "Snap Window",
|
||||||
"Description": "If enabled you can align windows by dragging them. | Relogin Required",
|
"Description": "If enabled you can align windows by dragging them. | Relogin Required",
|
||||||
"category": "Customize Preferences",
|
"category": "Customize Preferences",
|
||||||
"panel": "2",
|
"panel": "2",
|
||||||
"Order": "a104_",
|
"Order": "a106_",
|
||||||
"Type": "Toggle",
|
"Type": "Toggle",
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Customize-Preferences/SnapWindow"
|
"registry": [
|
||||||
}
|
{
|
||||||
|
"Path": "HKCU:\\Control Panel\\Desktop",
|
||||||
|
"Name": "WindowArrangementActive",
|
||||||
|
"Value": "1",
|
||||||
|
"OriginalValue": "0",
|
||||||
|
"DefaultState": "true",
|
||||||
|
"Type": "String"
|
||||||
|
}
|
||||||
|
],
|
||||||
```
|
```
|
||||||
|
|
||||||
</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.
|
||||||
## Function: Invoke-WinutilSnapWindow
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
function Invoke-WinutilSnapWindow {
|
|
||||||
<#
|
|
||||||
.SYNOPSIS
|
|
||||||
Disables/Enables Snapping Windows on startup
|
|
||||||
.PARAMETER Enabled
|
|
||||||
Indicates whether to enable or disable Snapping Windows on startup
|
|
||||||
#>
|
|
||||||
Param($Enabled)
|
|
||||||
try {
|
|
||||||
if ($Enabled -eq $false) {
|
|
||||||
Write-Host "Enabling Snap Windows On startup | Relogin Required"
|
|
||||||
$value = 1
|
|
||||||
} else {
|
|
||||||
Write-Host "Disabling Snap Windows On startup | Relogin Required"
|
|
||||||
$value = 0
|
|
||||||
}
|
|
||||||
$Path = "HKCU:\Control Panel\Desktop"
|
|
||||||
Set-ItemProperty -Path $Path -Name WindowArrangementActive -Value $value
|
|
||||||
} catch [System.Security.SecurityException] {
|
|
||||||
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
|
|
||||||
} catch [System.Management.Automation.ItemNotFoundException] {
|
|
||||||
Write-Warning $psitem.Exception.ErrorRecord
|
|
||||||
} catch {
|
|
||||||
Write-Warning "Unable to set $Name due to unhandled exception"
|
|
||||||
Write-Warning $psitem.Exception.StackTrace
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
|
|
||||||
|
|
||||||
|
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).
|
||||||
|
|||||||
@@ -1,73 +1,26 @@
|
|||||||
# Sticky Keys
|
# Sticky Keys
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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
|
|
||||||
|
|
||||||
If Enabled then Sticky Keys is activated - Sticky keys is an accessibility feature of some graphical user interfaces which assists users who have physical disabilities or help users reduce repetitive strain injury.
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
"WPFToggleStickyKeys": {
|
||||||
"Content": "Sticky Keys",
|
"Content": "Sticky Keys",
|
||||||
"Description": "If Enabled then Sticky Keys is activated - Sticky keys is an accessibility feature of some graphical user interfaces which assists users who have physical disabilities or help users reduce repetitive strain injury.",
|
"Description": "If Enabled then Sticky Keys is activated - Sticky keys is an accessibility feature of some graphical user interfaces which assists users who have physical disabilities or help users reduce repetitive strain injury.",
|
||||||
"category": "Customize Preferences",
|
"category": "Customize Preferences",
|
||||||
"panel": "2",
|
"panel": "2",
|
||||||
"Order": "a108_",
|
"Order": "a110_",
|
||||||
"Type": "Toggle",
|
"Type": "Toggle",
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Customize-Preferences/StickyKeys"
|
"registry": [
|
||||||
}
|
{
|
||||||
|
"Path": "HKCU:\\Control Panel\\Accessibility\\StickyKeys",
|
||||||
|
"Name": "Flags",
|
||||||
|
"Value": "510",
|
||||||
|
"OriginalValue": "58",
|
||||||
|
"DefaultState": "true",
|
||||||
|
"Type": "DWord"
|
||||||
|
}
|
||||||
|
],
|
||||||
```
|
```
|
||||||
|
|
||||||
</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.
|
||||||
## Function: Invoke-WinutilStickyKeys
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
Function Invoke-WinutilStickyKeys {
|
|
||||||
<#
|
|
||||||
.SYNOPSIS
|
|
||||||
Disables/Enables Sticky Keyss on startup
|
|
||||||
.PARAMETER Enabled
|
|
||||||
Indicates whether to enable or disable Sticky Keys on startup
|
|
||||||
#>
|
|
||||||
Param($Enabled)
|
|
||||||
try {
|
|
||||||
if ($Enabled -eq $false) {
|
|
||||||
Write-Host "Enabling Sticky Keys On startup"
|
|
||||||
$value = 510
|
|
||||||
} else {
|
|
||||||
Write-Host "Disabling Sticky Keys On startup"
|
|
||||||
$value = 58
|
|
||||||
}
|
|
||||||
$Path = "HKCU:\Control Panel\Accessibility\StickyKeys"
|
|
||||||
Set-ItemProperty -Path $Path -Name Flags -Value $value
|
|
||||||
} catch [System.Security.SecurityException] {
|
|
||||||
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
|
|
||||||
} catch [System.Management.Automation.ItemNotFoundException] {
|
|
||||||
Write-Warning $psitem.Exception.ErrorRecord
|
|
||||||
} catch {
|
|
||||||
Write-Warning "Unable to set $Name due to unhandled exception"
|
|
||||||
Write-Warning $psitem.Exception.StackTrace
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
|
|
||||||
|
|
||||||
|
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).
|
||||||
|
|||||||
@@ -1,76 +1,26 @@
|
|||||||
# Task View Button in Taskbar
|
# Task View Button in Taskbar
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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
|
|
||||||
|
|
||||||
If Enabled then Task View Button in Taskbar will be shown.
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
"WPFToggleTaskView": {
|
||||||
"Content": "Task View Button in Taskbar",
|
"Content": "Task View Button in Taskbar",
|
||||||
"Description": "If Enabled then Task View Button in Taskbar will be shown.",
|
"Description": "If Enabled then Task View Button in Taskbar will be shown.",
|
||||||
"category": "Customize Preferences",
|
"category": "Customize Preferences",
|
||||||
"panel": "2",
|
"panel": "2",
|
||||||
"Order": "a203_",
|
"Order": "a203_",
|
||||||
"Type": "Toggle",
|
"Type": "Toggle",
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Customize-Preferences/TaskView"
|
"registry": [
|
||||||
}
|
{
|
||||||
|
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
|
||||||
|
"Name": "ShowTaskViewButton",
|
||||||
|
"Value": "1",
|
||||||
|
"OriginalValue": "0",
|
||||||
|
"DefaultState": "true",
|
||||||
|
"Type": "DWord"
|
||||||
|
}
|
||||||
|
],
|
||||||
```
|
```
|
||||||
|
|
||||||
</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.
|
||||||
## Function: Invoke-WinutilTaskView
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
function Invoke-WinutilTaskView {
|
|
||||||
<#
|
|
||||||
|
|
||||||
.SYNOPSIS
|
|
||||||
Enable/Disable Task View
|
|
||||||
|
|
||||||
.PARAMETER Enabled
|
|
||||||
Indicates whether to enable or disable Task View
|
|
||||||
|
|
||||||
#>
|
|
||||||
Param($Enabled)
|
|
||||||
try {
|
|
||||||
if ($Enabled -eq $false) {
|
|
||||||
Write-Host "Enabling Task View"
|
|
||||||
$value = 1
|
|
||||||
} else {
|
|
||||||
Write-Host "Disabling Task View"
|
|
||||||
$value = 0
|
|
||||||
}
|
|
||||||
$Path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
|
|
||||||
Set-ItemProperty -Path $Path -Name ShowTaskViewButton -Value $value
|
|
||||||
} catch [System.Security.SecurityException] {
|
|
||||||
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
|
|
||||||
} catch [System.Management.Automation.ItemNotFoundException] {
|
|
||||||
Write-Warning $psitem.Exception.ErrorRecord
|
|
||||||
} catch {
|
|
||||||
Write-Warning "Unable to set $Name due to unhandled exception"
|
|
||||||
Write-Warning $psitem.Exception.StackTrace
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
|
|
||||||
|
|
||||||
|
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).
|
||||||
|
|||||||
@@ -1,76 +1,26 @@
|
|||||||
# Center Taskbar Items
|
# Center Taskbar Items
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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
|
|
||||||
|
|
||||||
[Windows 11] If Enabled then the Taskbar Items will be shown on the Center, otherwise the Taskbar Items will be shown on the Left.
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
"WPFToggleTaskbarAlignment": {
|
||||||
"Content": "Center Taskbar Items",
|
"Content": "Center Taskbar Items",
|
||||||
"Description": "[Windows 11] If Enabled then the Taskbar Items will be shown on the Center, otherwise the Taskbar Items will be shown on the Left.",
|
"Description": "[Windows 11] If Enabled then the Taskbar Items will be shown on the Center, otherwise the Taskbar Items will be shown on the Left.",
|
||||||
"category": "Customize Preferences",
|
"category": "Customize Preferences",
|
||||||
"panel": "2",
|
"panel": "2",
|
||||||
"Order": "a204_",
|
"Order": "a204_",
|
||||||
"Type": "Toggle",
|
"Type": "Toggle",
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Customize-Preferences/TaskbarAlignment"
|
"registry": [
|
||||||
}
|
{
|
||||||
|
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
|
||||||
|
"Name": "TaskbarAl",
|
||||||
|
"Value": "1",
|
||||||
|
"OriginalValue": "0",
|
||||||
|
"DefaultState": "true",
|
||||||
|
"Type": "DWord"
|
||||||
|
}
|
||||||
|
],
|
||||||
```
|
```
|
||||||
|
|
||||||
</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.
|
||||||
## Function: Invoke-WinutilTaskbarAlignment
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
function Invoke-WinutilTaskbarAlignment {
|
|
||||||
<#
|
|
||||||
|
|
||||||
.SYNOPSIS
|
|
||||||
Switches between Center & Left Taskbar Alignment
|
|
||||||
|
|
||||||
.PARAMETER Enabled
|
|
||||||
Indicates whether to make Taskbar Alignment Center or Left
|
|
||||||
|
|
||||||
#>
|
|
||||||
Param($Enabled)
|
|
||||||
try {
|
|
||||||
if ($Enabled -eq $false) {
|
|
||||||
Write-Host "Making Taskbar Alignment to the Center"
|
|
||||||
$value = 1
|
|
||||||
} else {
|
|
||||||
Write-Host "Making Taskbar Alignment to the Left"
|
|
||||||
$value = 0
|
|
||||||
}
|
|
||||||
$Path = "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
|
|
||||||
Set-ItemProperty -Path $Path -Name "TaskbarAl" -Value $value
|
|
||||||
} catch [System.Security.SecurityException] {
|
|
||||||
Write-Warning "Unable to set $Path\$Name to $value due to a Security Exception"
|
|
||||||
} catch [System.Management.Automation.ItemNotFoundException] {
|
|
||||||
Write-Warning $psitem.Exception.ErrorRecord
|
|
||||||
} catch {
|
|
||||||
Write-Warning "Unable to set $Name due to unhandled exception"
|
|
||||||
Write-Warning $psitem.Exception.StackTrace
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
|
|
||||||
|
|
||||||
|
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).
|
||||||
|
|||||||
@@ -1,76 +1,26 @@
|
|||||||
# Search Button in Taskbar
|
# Search Button in Taskbar
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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
|
|
||||||
|
|
||||||
If Enabled Search Button will be on the taskbar.
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
"WPFToggleTaskbarSearch": {
|
||||||
"Content": "Search Button in Taskbar",
|
"Content": "Search Button in Taskbar",
|
||||||
"Description": "If Enabled Search Button will be on the taskbar.",
|
"Description": "If Enabled Search Button will be on the taskbar.",
|
||||||
"category": "Customize Preferences",
|
"category": "Customize Preferences",
|
||||||
"panel": "2",
|
"panel": "2",
|
||||||
"Order": "a202_",
|
"Order": "a202_",
|
||||||
"Type": "Toggle",
|
"Type": "Toggle",
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Customize-Preferences/TaskbarSearch"
|
"registry": [
|
||||||
}
|
{
|
||||||
|
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Search",
|
||||||
|
"Name": "SearchboxTaskbarMode",
|
||||||
|
"Value": "1",
|
||||||
|
"OriginalValue": "0",
|
||||||
|
"DefaultState": "true",
|
||||||
|
"Type": "DWord"
|
||||||
|
}
|
||||||
|
],
|
||||||
```
|
```
|
||||||
|
|
||||||
</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.
|
||||||
## Function: Invoke-WinutilTaskbarSearch
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
function Invoke-WinutilTaskbarSearch {
|
|
||||||
<#
|
|
||||||
|
|
||||||
.SYNOPSIS
|
|
||||||
Enable/Disable Taskbar Search Button.
|
|
||||||
|
|
||||||
.PARAMETER Enabled
|
|
||||||
Indicates whether to enable or disable Taskbar Search Button.
|
|
||||||
|
|
||||||
#>
|
|
||||||
Param($Enabled)
|
|
||||||
try {
|
|
||||||
if ($Enabled -eq $false) {
|
|
||||||
Write-Host "Enabling Search Button"
|
|
||||||
$value = 1
|
|
||||||
} else {
|
|
||||||
Write-Host "Disabling Search Button"
|
|
||||||
$value = 0
|
|
||||||
}
|
|
||||||
$Path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Search\"
|
|
||||||
Set-ItemProperty -Path $Path -Name SearchboxTaskbarMode -Value $value
|
|
||||||
} catch [System.Security.SecurityException] {
|
|
||||||
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
|
|
||||||
} catch [System.Management.Automation.ItemNotFoundException] {
|
|
||||||
Write-Warning $psitem.Exception.ErrorRecord
|
|
||||||
} catch {
|
|
||||||
Write-Warning "Unable to set $Name due to unhandled exception"
|
|
||||||
Write-Warning $psitem.Exception.StackTrace
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
|
|
||||||
|
|
||||||
|
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).
|
||||||
|
|||||||
@@ -1,76 +1,26 @@
|
|||||||
# Widgets Button in Taskbar
|
# Widgets Button in Taskbar
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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
|
|
||||||
|
|
||||||
If Enabled then Widgets Button in Taskbar will be shown.
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
"WPFToggleTaskbarWidgets": {
|
||||||
"Content": "Widgets Button in Taskbar",
|
"Content": "Widgets Button in Taskbar",
|
||||||
"Description": "If Enabled then Widgets Button in Taskbar will be shown.",
|
"Description": "If Enabled then Widgets Button in Taskbar will be shown.",
|
||||||
"category": "Customize Preferences",
|
"category": "Customize Preferences",
|
||||||
"panel": "2",
|
"panel": "2",
|
||||||
"Order": "a204_",
|
"Order": "a204_",
|
||||||
"Type": "Toggle",
|
"Type": "Toggle",
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Customize-Preferences/TaskbarWidgets"
|
"registry": [
|
||||||
}
|
{
|
||||||
|
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
|
||||||
|
"Name": "TaskbarDa",
|
||||||
|
"Value": "1",
|
||||||
|
"OriginalValue": "0",
|
||||||
|
"DefaultState": "true",
|
||||||
|
"Type": "DWord"
|
||||||
|
}
|
||||||
|
],
|
||||||
```
|
```
|
||||||
|
|
||||||
</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.
|
||||||
## Function: Invoke-WinutilTaskbarWidgets
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
function Invoke-WinutilTaskbarWidgets {
|
|
||||||
<#
|
|
||||||
|
|
||||||
.SYNOPSIS
|
|
||||||
Enable/Disable Taskbar Widgets
|
|
||||||
|
|
||||||
.PARAMETER Enabled
|
|
||||||
Indicates whether to enable or disable Taskbar Widgets
|
|
||||||
|
|
||||||
#>
|
|
||||||
Param($Enabled)
|
|
||||||
try {
|
|
||||||
if ($Enabled -eq $false) {
|
|
||||||
Write-Host "Enabling Taskbar Widgets"
|
|
||||||
$value = 1
|
|
||||||
} else {
|
|
||||||
Write-Host "Disabling Taskbar Widgets"
|
|
||||||
$value = 0
|
|
||||||
}
|
|
||||||
$Path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
|
|
||||||
Set-ItemProperty -Path $Path -Name TaskbarDa -Value $value
|
|
||||||
} catch [System.Security.SecurityException] {
|
|
||||||
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
|
|
||||||
} catch [System.Management.Automation.ItemNotFoundException] {
|
|
||||||
Write-Warning $psitem.Exception.ErrorRecord
|
|
||||||
} catch {
|
|
||||||
Write-Warning "Unable to set $Name due to unhandled exception"
|
|
||||||
Write-Warning $psitem.Exception.StackTrace
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
|
|
||||||
|
|
||||||
|
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).
|
||||||
|
|||||||
@@ -1,73 +1,26 @@
|
|||||||
# Verbose Messages During Logon
|
# Verbose Messages During Logon
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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
|
|
||||||
|
|
||||||
Show detailed messages during the login process for troubleshooting and diagnostics.
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
"WPFToggleVerboseLogon": {
|
||||||
"Content": "Verbose Messages During Logon",
|
"Content": "Verbose Messages During Logon",
|
||||||
"Description": "Show detailed messages during the login process for troubleshooting and diagnostics.",
|
"Description": "Show detailed messages during the login process for troubleshooting and diagnostics.",
|
||||||
"category": "Customize Preferences",
|
"category": "Customize Preferences",
|
||||||
"panel": "2",
|
"panel": "2",
|
||||||
"Order": "a103_",
|
"Order": "a103_",
|
||||||
"Type": "Toggle",
|
"Type": "Toggle",
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Customize-Preferences/VerboseLogon"
|
"registry": [
|
||||||
}
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System",
|
||||||
|
"Name": "VerboseStatus",
|
||||||
|
"Value": "1",
|
||||||
|
"OriginalValue": "0",
|
||||||
|
"DefaultState": "false",
|
||||||
|
"Type": "DWord"
|
||||||
|
}
|
||||||
|
],
|
||||||
```
|
```
|
||||||
|
|
||||||
</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.
|
||||||
## Function: Invoke-WinutilVerboseLogon
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
function Invoke-WinutilVerboseLogon {
|
|
||||||
<#
|
|
||||||
.SYNOPSIS
|
|
||||||
Disables/Enables VerboseLogon Messages
|
|
||||||
.PARAMETER Enabled
|
|
||||||
Indicates whether to enable or disable VerboseLogon messages
|
|
||||||
#>
|
|
||||||
Param($Enabled)
|
|
||||||
try {
|
|
||||||
if ($Enabled -eq $false) {
|
|
||||||
Write-Host "Enabling Verbose Logon Messages"
|
|
||||||
$value = 1
|
|
||||||
} else {
|
|
||||||
Write-Host "Disabling Verbose Logon Messages"
|
|
||||||
$value = 0
|
|
||||||
}
|
|
||||||
$Path = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
|
|
||||||
Set-ItemProperty -Path $Path -Name VerboseStatus -Value $value
|
|
||||||
} catch [System.Security.SecurityException] {
|
|
||||||
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
|
|
||||||
} catch [System.Management.Automation.ItemNotFoundException] {
|
|
||||||
Write-Warning $psitem.Exception.ErrorRecord
|
|
||||||
} catch {
|
|
||||||
Write-Warning "Unable to set $Name due to unhandled exception"
|
|
||||||
Write-Warning $psitem.Exception.StackTrace
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
|
|
||||||
|
|
||||||
|
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).
|
||||||
|
|||||||
@@ -1,26 +1,8 @@
|
|||||||
---
|
---
|
||||||
weight: 3
|
weight: 3
|
||||||
|
title: "Customize Preferences"
|
||||||
---
|
---
|
||||||
|
|
||||||
# Table of Contents
|
|
||||||
|
|
||||||
## Tweaks
|
|
||||||
|
|
||||||
### Customize Preferences
|
### Customize Preferences
|
||||||
|
|
||||||
- [Bing Search in Start Menu](bingsearch/)
|
{{< autolinks section="dev/tweaks/customize-preferences" >}}
|
||||||
- [Center Taskbar Items](taskbaralignment/)
|
|
||||||
- [Dark Theme for Windows](darkmode/)
|
|
||||||
- [Detailed BSoD](detailedbsod/)
|
|
||||||
- [Mouse Acceleration](mouseacceleration/)
|
|
||||||
- [NumLock on Startup](numlock/)
|
|
||||||
- [Search Button in Taskbar](taskbarsearch/)
|
|
||||||
- [Show File Extensions](showext/)
|
|
||||||
- [Show Hidden Files](hiddenfiles/)
|
|
||||||
- [Snap Assist Flyout](snapflyout/)
|
|
||||||
- [Snap Assist Suggestion](snapsuggestion/)
|
|
||||||
- [Snap Window](snapwindow/)
|
|
||||||
- [Sticky Keys](stickykeys/)
|
|
||||||
- [Task View Button in Taskbar](taskview/)
|
|
||||||
- [Verbose Messages During Logon](verboselogon/)
|
|
||||||
- [Widgets Button in Taskbar](taskbarwidgets/)
|
|
||||||
|
|||||||
@@ -1,93 +0,0 @@
|
|||||||
# Disable Activity History
|
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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
|
|
||||||
|
|
||||||
This erases recent docs, clipboard, and run history.
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"Content": "Disable Activity History",
|
|
||||||
"Description": "This erases recent docs, clipboard, and run history.",
|
|
||||||
"category": "Essential Tweaks",
|
|
||||||
"panel": "1",
|
|
||||||
"Order": "a005_",
|
|
||||||
"registry": [
|
|
||||||
{
|
|
||||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\System",
|
|
||||||
"Name": "EnableActivityFeed",
|
|
||||||
"Type": "DWord",
|
|
||||||
"Value": "0",
|
|
||||||
"OriginalValue": "1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\System",
|
|
||||||
"Name": "PublishUserActivities",
|
|
||||||
"Type": "DWord",
|
|
||||||
"Value": "0",
|
|
||||||
"OriginalValue": "1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\System",
|
|
||||||
"Name": "UploadUserActivities",
|
|
||||||
"Type": "DWord",
|
|
||||||
"Value": "0",
|
|
||||||
"OriginalValue": "1"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Essential-Tweaks/AH"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
</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: EnableActivityFeed
|
|
||||||
|
|
||||||
**Type:** DWord
|
|
||||||
|
|
||||||
**Original Value:** 1
|
|
||||||
|
|
||||||
**New Value:** 0
|
|
||||||
|
|
||||||
### Registry Key: PublishUserActivities
|
|
||||||
|
|
||||||
**Type:** DWord
|
|
||||||
|
|
||||||
**Original Value:** 1
|
|
||||||
|
|
||||||
**New Value:** 0
|
|
||||||
|
|
||||||
### Registry Key: UploadUserActivities
|
|
||||||
|
|
||||||
**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)
|
|
||||||
|
|
||||||
38
docs/content/dev/tweaks/Essential-Tweaks/Activity.md
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
# Disable Activity History
|
||||||
|
|
||||||
|
```json
|
||||||
|
"WPFTweaksActivity": {
|
||||||
|
"Content": "Disable Activity History",
|
||||||
|
"Description": "This erases recent docs, clipboard, and run history.",
|
||||||
|
"category": "Essential Tweaks",
|
||||||
|
"panel": "1",
|
||||||
|
"Order": "a005_",
|
||||||
|
"registry": [
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\System",
|
||||||
|
"Name": "EnableActivityFeed",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "<RemoveEntry>"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\System",
|
||||||
|
"Name": "PublishUserActivities",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "<RemoveEntry>"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\System",
|
||||||
|
"Name": "UploadUserActivities",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "<RemoveEntry>"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
```
|
||||||
|
|
||||||
|
## 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).
|
||||||
@@ -1,63 +1,24 @@
|
|||||||
# Disable ConsumerFeatures
|
# Disable ConsumerFeatures
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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
|
|
||||||
|
|
||||||
Windows 10 will not automatically install any games, third-party apps, or application links from the Windows Store for the signed-in user. Some default Apps will be inaccessible (eg. Phone Link)
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
"WPFTweaksConsumerFeatures": {
|
||||||
"Content": "Disable ConsumerFeatures",
|
"Content": "Disable ConsumerFeatures",
|
||||||
"Description": "Windows 10 will not automatically install any games, third-party apps, or application links from the Windows Store for the signed-in user. Some default Apps will be inaccessible (eg. Phone Link)",
|
"Description": "Windows will not automatically install any games, third-party apps, or application links from the Windows Store for the signed-in user. Some default Apps will be inaccessible (eg. Phone Link)",
|
||||||
"category": "Essential Tweaks",
|
"category": "Essential Tweaks",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a003_",
|
"Order": "a003_",
|
||||||
"registry": [
|
"registry": [
|
||||||
{
|
{
|
||||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\CloudContent",
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\CloudContent",
|
||||||
"OriginalValue": "0",
|
"OriginalValue": "<RemoveEntry>",
|
||||||
"Name": "DisableWindowsConsumerFeatures",
|
"Name": "DisableWindowsConsumerFeatures",
|
||||||
"Value": "1",
|
"Value": "1",
|
||||||
"Type": "DWord"
|
"Type": "DWord"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Essential-Tweaks/ConsumerFeatures"
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Registry Changes
|
## 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.
|
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).
|
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: DisableWindowsConsumerFeatures
|
|
||||||
|
|
||||||
**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)
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,123 +0,0 @@
|
|||||||
# Disable GameDVR
|
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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
|
|
||||||
|
|
||||||
GameDVR is a Windows App that is a dependency for some Store Games. I've never met someone that likes it, but it's there for the XBOX crowd.
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"Content": "Disable GameDVR",
|
|
||||||
"Description": "GameDVR is a Windows App that is a dependency for some Store Games. I've never met someone that likes it, but it's there for the XBOX crowd.",
|
|
||||||
"category": "Essential Tweaks",
|
|
||||||
"panel": "1",
|
|
||||||
"Order": "a005_",
|
|
||||||
"registry": [
|
|
||||||
{
|
|
||||||
"Path": "HKCU:\\System\\GameConfigStore",
|
|
||||||
"Name": "GameDVR_FSEBehavior",
|
|
||||||
"Value": "2",
|
|
||||||
"OriginalValue": "1",
|
|
||||||
"Type": "DWord"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Path": "HKCU:\\System\\GameConfigStore",
|
|
||||||
"Name": "GameDVR_Enabled",
|
|
||||||
"Value": "0",
|
|
||||||
"OriginalValue": "1",
|
|
||||||
"Type": "DWord"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Path": "HKCU:\\System\\GameConfigStore",
|
|
||||||
"Name": "GameDVR_HonorUserFSEBehaviorMode",
|
|
||||||
"Value": "1",
|
|
||||||
"OriginalValue": "0",
|
|
||||||
"Type": "DWord"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Path": "HKCU:\\System\\GameConfigStore",
|
|
||||||
"Name": "GameDVR_EFSEFeatureFlags",
|
|
||||||
"Value": "0",
|
|
||||||
"OriginalValue": "1",
|
|
||||||
"Type": "DWord"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\GameDVR",
|
|
||||||
"Name": "AllowGameDVR",
|
|
||||||
"Value": "0",
|
|
||||||
"OriginalValue": "1",
|
|
||||||
"Type": "DWord"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Essential-Tweaks/DVR"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
</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_FSEBehavior
|
|
||||||
|
|
||||||
**Type:** DWord
|
|
||||||
|
|
||||||
**Original Value:** 1
|
|
||||||
|
|
||||||
**New Value:** 2
|
|
||||||
|
|
||||||
### Registry Key: GameDVR_Enabled
|
|
||||||
|
|
||||||
**Type:** DWord
|
|
||||||
|
|
||||||
**Original Value:** 1
|
|
||||||
|
|
||||||
**New Value:** 0
|
|
||||||
|
|
||||||
### Registry Key: GameDVR_HonorUserFSEBehaviorMode
|
|
||||||
|
|
||||||
**Type:** DWord
|
|
||||||
|
|
||||||
**Original Value:** 0
|
|
||||||
|
|
||||||
**New Value:** 1
|
|
||||||
|
|
||||||
### Registry Key: GameDVR_EFSEFeatureFlags
|
|
||||||
|
|
||||||
**Type:** DWord
|
|
||||||
|
|
||||||
**Original Value:** 1
|
|
||||||
|
|
||||||
**New Value:** 0
|
|
||||||
|
|
||||||
### Registry Key: AllowGameDVR
|
|
||||||
|
|
||||||
**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)
|
|
||||||
|
|
||||||
@@ -1,50 +1,16 @@
|
|||||||
# Delete Temporary Files
|
# Delete Temporary Files
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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
|
|
||||||
|
|
||||||
Erases TEMP Folders
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
"WPFTweaksDeleteTempFiles": {
|
||||||
"Content": "Delete Temporary Files",
|
"Content": "Delete Temporary Files",
|
||||||
"Description": "Erases TEMP Folders",
|
"Description": "Erases TEMP Folders",
|
||||||
"category": "Essential Tweaks",
|
"category": "Essential Tweaks",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a002_",
|
"Order": "a002_",
|
||||||
"InvokeScript": [
|
"InvokeScript": [
|
||||||
"Get-ChildItem -Path \"C:\\Windows\\Temp\" *.* -Recurse | Remove-Item -Force -Recurse
|
"
|
||||||
Get-ChildItem -Path $env:TEMP *.* -Recurse | Remove-Item -Force -Recurse"
|
Remove-Item -Path \"$Env:Temp\\*\" -Recurse -Force
|
||||||
],
|
Remove-Item -Path \"$Env:SystemRoot\\Temp\\*\" -Recurse -Force
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Essential-Tweaks/DeleteTempFiles"
|
"
|
||||||
}
|
],
|
||||||
```
|
```
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Invoke Script
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
Get-ChildItem -Path "C:\Windows\Temp" *.* -Recurse | Remove-Item -Force -Recurse
|
|
||||||
Get-ChildItem -Path $env:TEMP *.* -Recurse | Remove-Item -Force -Recurse
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,91 +0,0 @@
|
|||||||
# Disable Microsoft Recall
|
|
||||||
|
|
||||||
Last Updated: 2024-10-24
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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 Recall built into Windows since 24H2.
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
|
||||||
"WPFTweaksRecallOff": {
|
|
||||||
"Content": "Disable Recall",
|
|
||||||
"Description": "Turn Recall off",
|
|
||||||
"category": "Essential Tweaks",
|
|
||||||
"panel": "1",
|
|
||||||
"Order": "a011_",
|
|
||||||
"registry": [
|
|
||||||
{
|
|
||||||
|
|
||||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\WindowsAI",
|
|
||||||
"Name": "DisableAIDataAnalysis",
|
|
||||||
"Type": "DWord",
|
|
||||||
"Value": "1",
|
|
||||||
"OriginalValue": "0"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"InvokeScript": [
|
|
||||||
"
|
|
||||||
Write-Host \"Disable Recall\"
|
|
||||||
DISM /Online /Disable-Feature /FeatureName:Recall
|
|
||||||
"
|
|
||||||
],
|
|
||||||
"UndoScript": [
|
|
||||||
"
|
|
||||||
Write-Host \"Enable Recall\"
|
|
||||||
DISM /Online /Enable-Feature /FeatureName:Recall
|
|
||||||
"
|
|
||||||
],
|
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Essential-Tweaks/DisableRecall"
|
|
||||||
},
|
|
||||||
```
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Invoke Script
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
|
|
||||||
Write-Host "Disable Recall"
|
|
||||||
DISM /Online /Disable-Feature /FeatureName:Recall
|
|
||||||
|
|
||||||
|
|
||||||
```
|
|
||||||
## Undo Script
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
|
|
||||||
Write-Host "Enable Recall"
|
|
||||||
DISM /Online /Enable-Feature /FeatureName:Recall
|
|
||||||
|
|
||||||
|
|
||||||
```
|
|
||||||
## 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: DisableAIDataAnalysis
|
|
||||||
|
|
||||||
**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)
|
|
||||||
@@ -1,54 +1,16 @@
|
|||||||
# Run Disk Cleanup
|
# Run Disk Cleanup
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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
|
|
||||||
|
|
||||||
Runs Disk Cleanup on Drive C: and removes old Windows Updates.
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
"WPFTweaksDiskCleanup": {
|
||||||
"Content": "Run Disk Cleanup",
|
"Content": "Run Disk Cleanup",
|
||||||
"Description": "Runs Disk Cleanup on Drive C: and removes old Windows Updates.",
|
"Description": "Runs Disk Cleanup on Drive C: and removes old Windows Updates.",
|
||||||
"category": "Essential Tweaks",
|
"category": "Essential Tweaks",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a009_",
|
"Order": "a009_",
|
||||||
"InvokeScript": [
|
"InvokeScript": [
|
||||||
"
|
"
|
||||||
cleanmgr.exe /d C: /VERYLOWDISK
|
cleanmgr.exe /d C: /VERYLOWDISK
|
||||||
Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase
|
Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase
|
||||||
"
|
"
|
||||||
],
|
],
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Essential-Tweaks/DiskCleanup"
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Invoke Script
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
|
|
||||||
cleanmgr.exe /d C: /VERYLOWDISK
|
|
||||||
Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase
|
|
||||||
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,179 +1,119 @@
|
|||||||
# Debloat Edge
|
# Debloat Edge
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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 various telemetry options, popups, and other annoyances in Edge.
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
"WPFTweaksEdgeDebloat": {
|
||||||
"Content": "Debloat Edge",
|
"Content": "Edge Debloat",
|
||||||
"Description": "Disables various telemetry options, popups, and other annoyances in Edge.",
|
"Description": "Disables various telemetry options, popups, and other annoyances in Edge.",
|
||||||
"category": "Essential Tweaks",
|
"category": "z__Advanced Tweaks - CAUTION",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a016_",
|
"Order": "a026_",
|
||||||
"registry": [
|
"registry": [
|
||||||
{
|
{
|
||||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\EdgeUpdate",
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\EdgeUpdate",
|
||||||
"Name": "CreateDesktopShortcutDefault",
|
"Name": "CreateDesktopShortcutDefault",
|
||||||
"Type": "DWord",
|
"Type": "DWord",
|
||||||
"Value": "0",
|
"Value": "0",
|
||||||
"OriginalValue": "1"
|
"OriginalValue": "<RemoveEntry>"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
"Name": "EdgeEnhanceImagesEnabled",
|
"Name": "PersonalizationReportingEnabled",
|
||||||
"Type": "DWord",
|
"Type": "DWord",
|
||||||
"Value": "0",
|
"Value": "0",
|
||||||
"OriginalValue": "1"
|
"OriginalValue": "<RemoveEntry>"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
"Name": "PersonalizationReportingEnabled",
|
"Name": "ShowRecommendationsEnabled",
|
||||||
"Type": "DWord",
|
"Type": "DWord",
|
||||||
"Value": "0",
|
"Value": "0",
|
||||||
"OriginalValue": "1"
|
"OriginalValue": "<RemoveEntry>"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
"Name": "ShowRecommendationsEnabled",
|
"Name": "HideFirstRunExperience",
|
||||||
"Type": "DWord",
|
"Type": "DWord",
|
||||||
"Value": "0",
|
"Value": "1",
|
||||||
"OriginalValue": "1"
|
"OriginalValue": "<RemoveEntry>"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
"Name": "HideFirstRunExperience",
|
"Name": "UserFeedbackAllowed",
|
||||||
"Type": "DWord",
|
"Type": "DWord",
|
||||||
"Value": "1",
|
"Value": "0",
|
||||||
"OriginalValue": "0"
|
"OriginalValue": "<RemoveEntry>"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
"Name": "UserFeedbackAllowed",
|
"Name": "ConfigureDoNotTrack",
|
||||||
"Type": "DWord",
|
"Type": "DWord",
|
||||||
"Value": "0",
|
"Value": "1",
|
||||||
"OriginalValue": "1"
|
"OriginalValue": "<RemoveEntry>"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
"Name": "ConfigureDoNotTrack",
|
"Name": "AlternateErrorPagesEnabled",
|
||||||
"Type": "DWord",
|
"Type": "DWord",
|
||||||
"Value": "1",
|
"Value": "0",
|
||||||
"OriginalValue": "0"
|
"OriginalValue": "<RemoveEntry>"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
"Name": "AlternateErrorPagesEnabled",
|
"Name": "EdgeCollectionsEnabled",
|
||||||
"Type": "DWord",
|
"Type": "DWord",
|
||||||
"Value": "0",
|
"Value": "0",
|
||||||
"OriginalValue": "1"
|
"OriginalValue": "<RemoveEntry>"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
"Name": "EdgeCollectionsEnabled",
|
"Name": "EdgeShoppingAssistantEnabled",
|
||||||
"Type": "DWord",
|
"Type": "DWord",
|
||||||
"Value": "0",
|
"Value": "0",
|
||||||
"OriginalValue": "1"
|
"OriginalValue": "<RemoveEntry>"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
"Name": "EdgeFollowEnabled",
|
"Name": "MicrosoftEdgeInsiderPromotionEnabled",
|
||||||
"Type": "DWord",
|
"Type": "DWord",
|
||||||
"Value": "0",
|
"Value": "0",
|
||||||
"OriginalValue": "1"
|
"OriginalValue": "<RemoveEntry>"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
"Name": "EdgeShoppingAssistantEnabled",
|
"Name": "ShowMicrosoftRewards",
|
||||||
"Type": "DWord",
|
"Type": "DWord",
|
||||||
"Value": "0",
|
"Value": "0",
|
||||||
"OriginalValue": "1"
|
"OriginalValue": "<RemoveEntry>"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
"Name": "MicrosoftEdgeInsiderPromotionEnabled",
|
"Name": "WebWidgetAllowed",
|
||||||
"Type": "DWord",
|
"Type": "DWord",
|
||||||
"Value": "0",
|
"Value": "0",
|
||||||
"OriginalValue": "1"
|
"OriginalValue": "<RemoveEntry>"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
"Name": "PersonalizationReportingEnabled",
|
"Name": "DiagnosticData",
|
||||||
"Type": "DWord",
|
"Type": "DWord",
|
||||||
"Value": "0",
|
"Value": "0",
|
||||||
"OriginalValue": "1"
|
"OriginalValue": "<RemoveEntry>"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
"Name": "ShowMicrosoftRewards",
|
"Name": "EdgeAssetDeliveryServiceEnabled",
|
||||||
"Type": "DWord",
|
"Type": "DWord",
|
||||||
"Value": "0",
|
"Value": "0",
|
||||||
"OriginalValue": "1"
|
"OriginalValue": "<RemoveEntry>"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
||||||
"Name": "WebWidgetAllowed",
|
"Name": "WalletDonationEnabled",
|
||||||
"Type": "DWord",
|
"Type": "DWord",
|
||||||
"Value": "0",
|
"Value": "0",
|
||||||
"OriginalValue": "1"
|
"OriginalValue": "<RemoveEntry>"
|
||||||
},
|
}
|
||||||
{
|
],
|
||||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
|
||||||
"Name": "DiagnosticData",
|
|
||||||
"Type": "DWord",
|
|
||||||
"Value": "0",
|
|
||||||
"OriginalValue": "1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
|
||||||
"Name": "EdgeAssetDeliveryServiceEnabled",
|
|
||||||
"Type": "DWord",
|
|
||||||
"Value": "0",
|
|
||||||
"OriginalValue": "1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
|
||||||
"Name": "EdgeCollectionsEnabled",
|
|
||||||
"Type": "DWord",
|
|
||||||
"Value": "0",
|
|
||||||
"OriginalValue": "1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
|
||||||
"Name": "CryptoWalletEnabled",
|
|
||||||
"Type": "DWord",
|
|
||||||
"Value": "0",
|
|
||||||
"OriginalValue": "1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
|
||||||
"Name": "ConfigureDoNotTrack",
|
|
||||||
"Type": "DWord",
|
|
||||||
"Value": "1",
|
|
||||||
"OriginalValue": "0"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
|
|
||||||
"Name": "WalletDonationEnabled",
|
|
||||||
"Type": "DWord",
|
|
||||||
"Value": "0",
|
|
||||||
"OriginalValue": "1"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Essential-Tweaks/EdgeDebloat"
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
|
|
||||||
</details>
|
</details>
|
||||||
@@ -181,183 +121,4 @@ Disables various telemetry options, popups, and other annoyances in Edge.
|
|||||||
## Registry Changes
|
## 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.
|
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).
|
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: CreateDesktopShortcutDefault
|
|
||||||
|
|
||||||
**Type:** DWord
|
|
||||||
|
|
||||||
**Original Value:** 1
|
|
||||||
|
|
||||||
**New Value:** 0
|
|
||||||
|
|
||||||
### Registry Key: EdgeEnhanceImagesEnabled
|
|
||||||
|
|
||||||
**Type:** DWord
|
|
||||||
|
|
||||||
**Original Value:** 1
|
|
||||||
|
|
||||||
**New Value:** 0
|
|
||||||
|
|
||||||
### Registry Key: PersonalizationReportingEnabled
|
|
||||||
|
|
||||||
**Type:** DWord
|
|
||||||
|
|
||||||
**Original Value:** 1
|
|
||||||
|
|
||||||
**New Value:** 0
|
|
||||||
|
|
||||||
### Registry Key: ShowRecommendationsEnabled
|
|
||||||
|
|
||||||
**Type:** DWord
|
|
||||||
|
|
||||||
**Original Value:** 1
|
|
||||||
|
|
||||||
**New Value:** 0
|
|
||||||
|
|
||||||
### Registry Key: HideFirstRunExperience
|
|
||||||
|
|
||||||
**Type:** DWord
|
|
||||||
|
|
||||||
**Original Value:** 0
|
|
||||||
|
|
||||||
**New Value:** 1
|
|
||||||
|
|
||||||
### Registry Key: UserFeedbackAllowed
|
|
||||||
|
|
||||||
**Type:** DWord
|
|
||||||
|
|
||||||
**Original Value:** 1
|
|
||||||
|
|
||||||
**New Value:** 0
|
|
||||||
|
|
||||||
### Registry Key: ConfigureDoNotTrack
|
|
||||||
|
|
||||||
**Type:** DWord
|
|
||||||
|
|
||||||
**Original Value:** 0
|
|
||||||
|
|
||||||
**New Value:** 1
|
|
||||||
|
|
||||||
### Registry Key: AlternateErrorPagesEnabled
|
|
||||||
|
|
||||||
**Type:** DWord
|
|
||||||
|
|
||||||
**Original Value:** 1
|
|
||||||
|
|
||||||
**New Value:** 0
|
|
||||||
|
|
||||||
### Registry Key: EdgeCollectionsEnabled
|
|
||||||
|
|
||||||
**Type:** DWord
|
|
||||||
|
|
||||||
**Original Value:** 1
|
|
||||||
|
|
||||||
**New Value:** 0
|
|
||||||
|
|
||||||
### Registry Key: EdgeFollowEnabled
|
|
||||||
|
|
||||||
**Type:** DWord
|
|
||||||
|
|
||||||
**Original Value:** 1
|
|
||||||
|
|
||||||
**New Value:** 0
|
|
||||||
|
|
||||||
### Registry Key: EdgeShoppingAssistantEnabled
|
|
||||||
|
|
||||||
**Type:** DWord
|
|
||||||
|
|
||||||
**Original Value:** 1
|
|
||||||
|
|
||||||
**New Value:** 0
|
|
||||||
|
|
||||||
### Registry Key: MicrosoftEdgeInsiderPromotionEnabled
|
|
||||||
|
|
||||||
**Type:** DWord
|
|
||||||
|
|
||||||
**Original Value:** 1
|
|
||||||
|
|
||||||
**New Value:** 0
|
|
||||||
|
|
||||||
### Registry Key: PersonalizationReportingEnabled
|
|
||||||
|
|
||||||
**Type:** DWord
|
|
||||||
|
|
||||||
**Original Value:** 1
|
|
||||||
|
|
||||||
**New Value:** 0
|
|
||||||
|
|
||||||
### Registry Key: ShowMicrosoftRewards
|
|
||||||
|
|
||||||
**Type:** DWord
|
|
||||||
|
|
||||||
**Original Value:** 1
|
|
||||||
|
|
||||||
**New Value:** 0
|
|
||||||
|
|
||||||
### Registry Key: WebWidgetAllowed
|
|
||||||
|
|
||||||
**Type:** DWord
|
|
||||||
|
|
||||||
**Original Value:** 1
|
|
||||||
|
|
||||||
**New Value:** 0
|
|
||||||
|
|
||||||
### Registry Key: DiagnosticData
|
|
||||||
|
|
||||||
**Type:** DWord
|
|
||||||
|
|
||||||
**Original Value:** 1
|
|
||||||
|
|
||||||
**New Value:** 0
|
|
||||||
|
|
||||||
### Registry Key: EdgeAssetDeliveryServiceEnabled
|
|
||||||
|
|
||||||
**Type:** DWord
|
|
||||||
|
|
||||||
**Original Value:** 1
|
|
||||||
|
|
||||||
**New Value:** 0
|
|
||||||
|
|
||||||
### Registry Key: EdgeCollectionsEnabled
|
|
||||||
|
|
||||||
**Type:** DWord
|
|
||||||
|
|
||||||
**Original Value:** 1
|
|
||||||
|
|
||||||
**New Value:** 0
|
|
||||||
|
|
||||||
### Registry Key: CryptoWalletEnabled
|
|
||||||
|
|
||||||
**Type:** DWord
|
|
||||||
|
|
||||||
**Original Value:** 1
|
|
||||||
|
|
||||||
**New Value:** 0
|
|
||||||
|
|
||||||
### Registry Key: ConfigureDoNotTrack
|
|
||||||
|
|
||||||
**Type:** DWord
|
|
||||||
|
|
||||||
**Original Value:** 0
|
|
||||||
|
|
||||||
**New Value:** 1
|
|
||||||
|
|
||||||
### Registry Key: WalletDonationEnabled
|
|
||||||
|
|
||||||
**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)
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,97 +1,24 @@
|
|||||||
# Enable End Task With Right Click
|
# Enable End Task With Right Click
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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
|
|
||||||
|
|
||||||
Enables option to end task when right clicking a program in the taskbar
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
"WPFTweaksEndTaskOnTaskbar": {
|
||||||
"Content": "Enable End Task With Right Click",
|
"Content": "Enable End Task With Right Click",
|
||||||
"Description": "Enables option to end task when right clicking a program in the taskbar",
|
"Description": "Enables option to end task when right clicking a program in the taskbar",
|
||||||
"category": "Essential Tweaks",
|
"category": "Essential Tweaks",
|
||||||
"panel": "1",
|
"panel": "1",
|
||||||
"Order": "a006_",
|
"Order": "a006_",
|
||||||
"InvokeScript": [
|
"registry": [
|
||||||
"$path = \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\\TaskbarDeveloperSettings\"
|
{
|
||||||
$name = \"TaskbarEndTask\"
|
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\\TaskbarDeveloperSettings",
|
||||||
$value = 1
|
"Name": "TaskbarEndTask",
|
||||||
|
"Type": "DWord",
|
||||||
# Ensure the registry key exists
|
"Value": "1",
|
||||||
if (-not (Test-Path $path)) {
|
"OriginalValue": "<RemoveEntry>"
|
||||||
New-Item -Path $path -Force | Out-Null
|
|
||||||
}
|
}
|
||||||
|
],
|
||||||
# Set the property, creating it if it doesn't exist
|
|
||||||
New-ItemProperty -Path $path -Name $name -PropertyType DWord -Value $value -Force | Out-Null"
|
|
||||||
],
|
|
||||||
"UndoScript": [
|
|
||||||
"$path = \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\\TaskbarDeveloperSettings\"
|
|
||||||
$name = \"TaskbarEndTask\"
|
|
||||||
$value = 0
|
|
||||||
|
|
||||||
# Ensure the registry key exists
|
|
||||||
if (-not (Test-Path $path)) {
|
|
||||||
New-Item -Path $path -Force | Out-Null
|
|
||||||
}
|
|
||||||
|
|
||||||
# Set the property, creating it if it doesn't exist
|
|
||||||
New-ItemProperty -Path $path -Name $name -PropertyType DWord -Value $value -Force | Out-Null"
|
|
||||||
],
|
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Essential-Tweaks/EndTaskOnTaskbar"
|
|
||||||
}
|
|
||||||
```
|
```
|
||||||
|
|
||||||
</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.
|
||||||
## Invoke Script
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
$path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\TaskbarDeveloperSettings"
|
|
||||||
$name = "TaskbarEndTask"
|
|
||||||
$value = 1
|
|
||||||
|
|
||||||
# Ensure the registry key exists
|
|
||||||
if (-not (Test-Path $path)) {
|
|
||||||
New-Item -Path $path -Force | Out-Null
|
|
||||||
}
|
|
||||||
|
|
||||||
# Set the property, creating it if it doesn't exist
|
|
||||||
New-ItemProperty -Path $path -Name $name -PropertyType DWord -Value $value -Force | Out-Null
|
|
||||||
|
|
||||||
```
|
|
||||||
## Undo Script
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
$path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\TaskbarDeveloperSettings"
|
|
||||||
$name = "TaskbarEndTask"
|
|
||||||
$value = 0
|
|
||||||
|
|
||||||
# Ensure the registry key exists
|
|
||||||
if (-not (Test-Path $path)) {
|
|
||||||
New-Item -Path $path -Force | Out-Null
|
|
||||||
}
|
|
||||||
|
|
||||||
# Set the property, creating it if it doesn't exist
|
|
||||||
New-ItemProperty -Path $path -Name $name -PropertyType DWord -Value $value -Force | Out-Null
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
<!-- BEGIN SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END SECOND CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
|
|
||||||
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
|
|
||||||
|
|
||||||
|
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).
|
||||||
|
|||||||
52
docs/content/dev/tweaks/Essential-Tweaks/GameDVR.md
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
# Disable GameDVR
|
||||||
|
|
||||||
|
```json
|
||||||
|
"WPFTweaksDVR": {
|
||||||
|
"Content": "Disable GameDVR",
|
||||||
|
"Description": "GameDVR is a Windows App that is a dependency for some Store Games. I've never met someone that likes it, but it's there for the XBOX crowd.",
|
||||||
|
"category": "Essential Tweaks",
|
||||||
|
"panel": "1",
|
||||||
|
"Order": "a005_",
|
||||||
|
"registry": [
|
||||||
|
{
|
||||||
|
"Path": "HKCU:\\System\\GameConfigStore",
|
||||||
|
"Name": "GameDVR_FSEBehavior",
|
||||||
|
"Value": "2",
|
||||||
|
"OriginalValue": "1",
|
||||||
|
"Type": "DWord"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKCU:\\System\\GameConfigStore",
|
||||||
|
"Name": "GameDVR_Enabled",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1",
|
||||||
|
"Type": "DWord"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKCU:\\System\\GameConfigStore",
|
||||||
|
"Name": "GameDVR_HonorUserFSEBehaviorMode",
|
||||||
|
"Value": "1",
|
||||||
|
"OriginalValue": "0",
|
||||||
|
"Type": "DWord"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKCU:\\System\\GameConfigStore",
|
||||||
|
"Name": "GameDVR_EFSEFeatureFlags",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1",
|
||||||
|
"Type": "DWord"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\GameDVR",
|
||||||
|
"Name": "AllowGameDVR",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "<RemoveEntry>",
|
||||||
|
"Type": "DWord"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
```
|
||||||
|
|
||||||
|
## 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).
|
||||||
@@ -1,96 +0,0 @@
|
|||||||
# Disable Hibernation
|
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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
|
|
||||||
|
|
||||||
Hibernation is really meant for laptops as it saves what's in memory before turning the pc off. It really should never be used, but some people are lazy and rely on it. Don't be like Bob. Bob likes hibernation.
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"Content": "Disable Hibernation",
|
|
||||||
"Description": "Hibernation is really meant for laptops as it saves what's in memory before turning the pc off. It really should never be used, but some people are lazy and rely on it. Don't be like Bob. Bob likes hibernation.",
|
|
||||||
"category": "Essential Tweaks",
|
|
||||||
"panel": "1",
|
|
||||||
"Order": "a005_",
|
|
||||||
"registry": [
|
|
||||||
{
|
|
||||||
"Path": "HKLM:\\System\\CurrentControlSet\\Control\\Session Manager\\Power",
|
|
||||||
"Name": "HibernateEnabled",
|
|
||||||
"Type": "DWord",
|
|
||||||
"Value": "0",
|
|
||||||
"OriginalValue": "1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Path": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FlyoutMenuSettings",
|
|
||||||
"Name": "ShowHibernateOption",
|
|
||||||
"Type": "DWord",
|
|
||||||
"Value": "0",
|
|
||||||
"OriginalValue": "1"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"InvokeScript": [
|
|
||||||
"powercfg.exe /hibernate off"
|
|
||||||
],
|
|
||||||
"UndoScript": [
|
|
||||||
"powercfg.exe /hibernate on"
|
|
||||||
],
|
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Essential-Tweaks/Hiber"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## Invoke Script
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
powercfg.exe /hibernate off
|
|
||||||
|
|
||||||
```
|
|
||||||
## Undo Script
|
|
||||||
|
|
||||||
```powershell
|
|
||||||
powercfg.exe /hibernate on
|
|
||||||
|
|
||||||
```
|
|
||||||
## 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: HibernateEnabled
|
|
||||||
|
|
||||||
**Type:** DWord
|
|
||||||
|
|
||||||
**Original Value:** 1
|
|
||||||
|
|
||||||
**New Value:** 0
|
|
||||||
|
|
||||||
### Registry Key: ShowHibernateOption
|
|
||||||
|
|
||||||
**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)
|
|
||||||
|
|
||||||
37
docs/content/dev/tweaks/Essential-Tweaks/Hibernation.md
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
# Disable Hibernation
|
||||||
|
|
||||||
|
```json
|
||||||
|
"WPFTweaksHiber": {
|
||||||
|
"Content": "Disable Hibernation",
|
||||||
|
"Description": "Hibernation is really meant for laptops as it saves what's in memory before turning the pc off. It really should never be used",
|
||||||
|
"category": "Essential Tweaks",
|
||||||
|
"panel": "1",
|
||||||
|
"Order": "a005_",
|
||||||
|
"registry": [
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\System\\CurrentControlSet\\Control\\Session Manager\\Power",
|
||||||
|
"Name": "HibernateEnabled",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Path": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FlyoutMenuSettings",
|
||||||
|
"Name": "ShowHibernateOption",
|
||||||
|
"Type": "DWord",
|
||||||
|
"Value": "0",
|
||||||
|
"OriginalValue": "1"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"InvokeScript": [
|
||||||
|
"powercfg.exe /hibernate off"
|
||||||
|
],
|
||||||
|
"UndoScript": [
|
||||||
|
"powercfg.exe /hibernate on"
|
||||||
|
],
|
||||||
|
```
|
||||||
|
|
||||||
|
## 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).
|
||||||
@@ -1,70 +0,0 @@
|
|||||||
# Disable Homegroup
|
|
||||||
|
|
||||||
Last Updated: 2024-08-07
|
|
||||||
|
|
||||||
|
|
||||||
> [!NOTE]
|
|
||||||
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 HomeGroup - HomeGroup is a password-protected home networking service that lets you share your stuff with other PCs that are currently running and connected to your network.
|
|
||||||
|
|
||||||
<!-- BEGIN CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<!-- END CUSTOM CONTENT -->
|
|
||||||
|
|
||||||
<details>
|
|
||||||
<summary>Preview Code</summary>
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"Content": "Disable Homegroup",
|
|
||||||
"Description": "Disables HomeGroup - HomeGroup is a password-protected home networking service that lets you share your stuff with other PCs that are currently running and connected to your network.",
|
|
||||||
"category": "Essential Tweaks",
|
|
||||||
"panel": "1",
|
|
||||||
"Order": "a005_",
|
|
||||||
"service": [
|
|
||||||
{
|
|
||||||
"Name": "HomeGroupListener",
|
|
||||||
"StartupType": "Manual",
|
|
||||||
"OriginalType": "Automatic"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"Name": "HomeGroupProvider",
|
|
||||||
"StartupType": "Manual",
|
|
||||||
"OriginalType": "Automatic"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Essential-Tweaks/Home"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
</details>
|
|
||||||
|
|
||||||
## 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: HomeGroupListener
|
|
||||||
|
|
||||||
**Startup Type:** Manual
|
|
||||||
|
|
||||||
**Original Type:** Automatic
|
|
||||||
|
|
||||||
### Service Name: HomeGroupProvider
|
|
||||||
|
|
||||||
**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)
|
|
||||||
|
|
||||||