Compare commits

...

14 Commits

Author SHA1 Message Date
Chris Titus
f4703284ef chore: Update generated dev docs (#4264) 2026-03-26 15:26:48 -05:00
Paweł Gwozdowski
0028e439b5 Cleaned up typos, fixes grammatical errors and other related fixes (#4215)
* cleaned up typo, fixes, grammatical and other related fixes (#2)

* typo in Lightshot app name

* remove trailing comma in applications.json

* consistent capitalization of Windows, WinGet - only user-facing text

	- includes update to devdocs-generator.ps1, so docs for tweaks modifying registry will have `Windows settings` rather than `windows settings`

* various fixes for typos, style, punctuation and capitalization

* capitalize 'AM'

* Update README.md

change formatting for GitHub UI interaction form code format (` `) to bold md

Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>

* typos and wording in docs

---------

Co-authored-by: Jay <65828559+Jay-o-Way@users.noreply.github.com>
2026-03-26 15:26:21 -05:00
Gabi
37529a5659 Added mpc-qt and qview and TeamSpeak 3 and ecm to applications.json (#4211)
* Added mpc-qt and qview to applications.json

* Update applications.json

* Added teamspeak3

* added ecm
2026-03-26 15:23:35 -05:00
Chris Titus
2dbf3d71c0 chore: Update generated dev docs (#4258) 2026-03-25 21:29:07 -05:00
Chris Titus
ef226ac272 chore: Update generated dev docs (#4257) 2026-03-25 21:22:41 -05:00
Ivan Lepekha
1f7f653568 Typo fix WPFTweaksXboxRemoval (#4248) 2026-03-25 21:22:06 -05:00
Mochi
9bd5a2541d Add Ruby and Lua entries (#4240)
* Add Opera, OperaGX, Ruby and Lua entries

Update applications.json to include two new browser entries (Opera, OperaGX) and two development runtime entries (Ruby, Lua).

* Remove Opera and OperaGX from applications.json

Removed entries for Opera and OperaGX from applications list.
2026-03-25 21:21:35 -05:00
github-actions[bot]
c2dbcda2d5 Update sponsors in README (#4238)
Co-authored-by: ChrisTitusTech <7896101+ChrisTitusTech@users.noreply.github.com>
2026-03-25 21:20:39 -05:00
Vaso
0bd333dd47 Update applications.json (#4217) 2026-03-25 21:17:46 -05:00
Sean (ANGRYxScotsman)
6188447348 updated docs (#4203)
* updated docs

* Update KnownIssues.md

* Update faq.md

* Update _index.md

* Update _index.md

* Update _index.md

* Update faq.md

* Update faq.md

* Update faq.md
2026-03-25 21:17:09 -05:00
dependabot[bot]
edfed488e8 Bump release-drafter/release-drafter from 6 to 7 (#4226)
Bumps [release-drafter/release-drafter](https://github.com/release-drafter/release-drafter) from 6 to 7.
- [Release notes](https://github.com/release-drafter/release-drafter/releases)
- [Commits](https://github.com/release-drafter/release-drafter/compare/v6...v7)

---
updated-dependencies:
- dependency-name: release-drafter/release-drafter
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-03-19 23:30:33 -05:00
Chris Titus
8d1f7d509a chore: Update generated dev docs (#4234) 2026-03-19 23:29:25 -05:00
Gabi
0a642be3b4 opps (#4220) 2026-03-19 23:28:56 -05:00
github-actions[bot]
d3f9584892 Update sponsors in README (#4212)
Co-authored-by: ChrisTitusTech <7896101+ChrisTitusTech@users.noreply.github.com>
2026-03-19 23:22:54 -05:00
85 changed files with 327 additions and 268 deletions

View File

@@ -21,7 +21,7 @@
* Pull requests are now handled directly on the **MAIN branch**. This was done since we can now select specific releases to launch via releases in GitHub.
* If you're doing code changes, then you can submit a PR to `main` branch, but I am very selective about these.
* If you're doing code changes, then you can submit a PR to the `main` branch, but I am very selective about these.
!!! warning "Important"
@@ -87,7 +87,7 @@ graph TD
### Testing your changes
* To test to see if your changes work as intended run following commands in a powershell terminal as admin:
* To test to see if your changes work as intended, run the following commands in a PowerShell terminal as admin:
* Change the directory where you are running the commands to the forked project.
* `cd {path to the folder with the compile.ps1}`
@@ -112,6 +112,6 @@ graph TD
![Push Commit Image](/docs/assets/images/Push-Commit.png)
### Making a PR
* To make a PR on your repo under a new branch linking to the main branch, a button will show and say Preview and Create pull request. Click that button and fill in all the information that is provided on the template. Once all the information is filled in correctly, check your PR to make sure there is not a WinUtil.ps1 file attached to the PR. Once everything is good, make the PR and wait for Chris (the maintainer) to accept or deny your PR. Once it is accepted by Chris, you will be able to see your changes in the "/windev" build.
* To make a PR on your repo under a new branch linking to the main branch, a button will show and say Preview and Create pull request. Click that button and fill in all the information that is provided on the template. Once all the information is filled in correctly, check your PR to make sure there is no WinUtil.ps1 file attached to the PR. Once everything is good, make the PR and wait for Chris (the maintainer) to accept or deny your PR. Once it is accepted by Chris, you will be able to see your changes in the "/windev" build.
* If you do not see your feature in the main "/win" build, that is fine. All new changes go into the /windev build to make sure everything is working OK before going fully public.
* Congratulations! You just submitted your first PR. Thank you so much for contributing to WinUtil.

View File

@@ -81,7 +81,7 @@ jobs:
- name: Generate Release Notes
id: generate_notes
uses: release-drafter/release-drafter@v6
uses: release-drafter/release-drafter@v7
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:

View File

@@ -50,9 +50,9 @@ If you have Issues, refer to [Known Issues](https://winutil.christitus.com/known
> [!NOTE]
> Winutil is a relatively large script, so it's split into multiple files which're combined into a single `.ps1` file using a custom compiler. This makes maintaining the project a lot easier.
Get a copy of the source code, this can be done using GitHub UI (`Code -> Download ZIP`), or by cloning (downloading) the repo using git.
Get a copy of the source code. This can be done using GitHub UI (**Code** > **Download ZIP**), or by cloning (downloading) the repo using git.
If git is installed, run the following commands under a PowerShell window to clone and move into project's directory:
If git is installed, run the following commands under a PowerShell window to clone and move into the project's directory:
```ps1
git clone --depth 1 "https://github.com/ChrisTitusTech/winutil.git"
cd winutil
@@ -63,10 +63,10 @@ To build the project, run the Compile Script under a PowerShell window (admin pe
.\Compile.ps1
```
You'll see a new file named `winutil.ps1`, which's created by `Compile.ps1` script, now you can run it as admin and a new window will popup, enjoy your own compiled version of WinUtil :)
You'll see a new file named `winutil.ps1`, which was created by `Compile.ps1` script. Now you can run it as admin, and a new window will pop up. Enjoy your own compiled version of WinUtil :)
> [!TIP]
> For more info on using WinUtil and how to develop for it, please consider reading [the Contribution Guidelines](https://winutil.christitus.com/contributing/), if you don't know where to start, or have questions, you can ask over on our [Discord Community Server](https://discord.gg/RUbZUZyByQ) and active project members will answer when they can.
> For more info on using WinUtil and how to develop for it, please consider reading [the Contribution Guidelines](https://winutil.christitus.com/contributing/). If you don't know where to start, or have questions, you can ask over on our [Discord Community Server](https://discord.gg/RUbZUZyByQ), and active project members will answer when they can.
## 💖 Support
- To morally and mentally support the project, make sure to leave a ⭐️!
@@ -76,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.
<!-- sponsors --><a href="https://github.com/dwelfusius"><img src="https:&#x2F;&#x2F;github.com&#x2F;dwelfusius.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/mews-se"><img src="https:&#x2F;&#x2F;github.com&#x2F;mews-se.png" width="60px" alt="User avatar: Martin Stockzell" /></a><a href="https://github.com/jdiegmueller"><img src="https:&#x2F;&#x2F;github.com&#x2F;jdiegmueller.png" width="60px" alt="User avatar: Jason A. Diegmueller" /></a><a href="https://github.com/robertsandrock"><img src="https:&#x2F;&#x2F;github.com&#x2F;robertsandrock.png" width="60px" alt="User avatar: RMS" /></a><a href="https://github.com/KenichiQaz"><img src="https:&#x2F;&#x2F;github.com&#x2F;KenichiQaz.png" width="60px" alt="User avatar: Stefan" /></a><a href="https://github.com/paulsheets"><img src="https:&#x2F;&#x2F;github.com&#x2F;paulsheets.png" width="60px" alt="User avatar: Paul" /></a><a href="https://github.com/djones369"><img src="https:&#x2F;&#x2F;github.com&#x2F;djones369.png" width="60px" alt="User avatar: Dave J (WhamGeek)" /></a><a href="https://github.com/anthonymendez"><img src="https:&#x2F;&#x2F;github.com&#x2F;anthonymendez.png" width="60px" alt="User avatar: Anthony Mendez" /></a><a href="https://github.com/FatBastard0"><img src="https:&#x2F;&#x2F;github.com&#x2F;FatBastard0.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/DursleyGuy"><img src="https:&#x2F;&#x2F;github.com&#x2F;DursleyGuy.png" width="60px" alt="User avatar: DursleyGuy" /></a><a href="https://github.com/quaszi"><img src="https:&#x2F;&#x2F;github.com&#x2F;quaszi.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/DwayneTheRockLobster1"><img src="https:&#x2F;&#x2F;github.com&#x2F;DwayneTheRockLobster1.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/KieraKujisawa"><img src="https:&#x2F;&#x2F;github.com&#x2F;KieraKujisawa.png" width="60px" alt="User avatar: Kiera Meredith" /></a><a href="https://github.com/andrewpayne68"><img src="https:&#x2F;&#x2F;github.com&#x2F;andrewpayne68.png" width="60px" alt="User avatar: Andrew P" /></a><a href="https://github.com/nathanzilgo"><img src="https:&#x2F;&#x2F;github.com&#x2F;nathanzilgo.png" width="60px" alt="User avatar: Nathan Fernandes Pedroza" /></a><!-- sponsors -->
<!-- sponsors --><a href="https://github.com/dwelfusius"><img src="https:&#x2F;&#x2F;github.com&#x2F;dwelfusius.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/mews-se"><img src="https:&#x2F;&#x2F;github.com&#x2F;mews-se.png" width="60px" alt="User avatar: Martin Stockzell" /></a><a href="https://github.com/jdiegmueller"><img src="https:&#x2F;&#x2F;github.com&#x2F;jdiegmueller.png" width="60px" alt="User avatar: Jason A. Diegmueller" /></a><a href="https://github.com/robertsandrock"><img src="https:&#x2F;&#x2F;github.com&#x2F;robertsandrock.png" width="60px" alt="User avatar: RMS" /></a><a href="https://github.com/KenichiQaz"><img src="https:&#x2F;&#x2F;github.com&#x2F;KenichiQaz.png" width="60px" alt="User avatar: Stefan" /></a><a href="https://github.com/paulsheets"><img src="https:&#x2F;&#x2F;github.com&#x2F;paulsheets.png" width="60px" alt="User avatar: Paul" /></a><a href="https://github.com/djones369"><img src="https:&#x2F;&#x2F;github.com&#x2F;djones369.png" width="60px" alt="User avatar: Dave J (WhamGeek)" /></a><a href="https://github.com/anthonymendez"><img src="https:&#x2F;&#x2F;github.com&#x2F;anthonymendez.png" width="60px" alt="User avatar: Anthony Mendez" /></a><a href="https://github.com/FatBastard0"><img src="https:&#x2F;&#x2F;github.com&#x2F;FatBastard0.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/DursleyGuy"><img src="https:&#x2F;&#x2F;github.com&#x2F;DursleyGuy.png" width="60px" alt="User avatar: DursleyGuy" /></a><a href="https://github.com/DwayneTheRockLobster1"><img src="https:&#x2F;&#x2F;github.com&#x2F;DwayneTheRockLobster1.png" width="60px" alt="User avatar: " /></a><a href="https://github.com/KieraKujisawa"><img src="https:&#x2F;&#x2F;github.com&#x2F;KieraKujisawa.png" width="60px" alt="User avatar: Kiera Meredith" /></a><a href="https://github.com/partybrasil"><img src="https:&#x2F;&#x2F;github.com&#x2F;partybrasil.png" width="60px" alt="User avatar: Miguel Diaz" /></a><a href="https://github.com/andrewpayne68"><img src="https:&#x2F;&#x2F;github.com&#x2F;andrewpayne68.png" width="60px" alt="User avatar: Andrew P" /></a><a href="https://github.com/EnzoFerroni"><img src="https:&#x2F;&#x2F;github.com&#x2F;EnzoFerroni.png" width="60px" alt="User avatar: Enzo Ferroni" /></a><!-- sponsors -->
## 🏅 Thanks to all Contributors
Thanks a lot for spending your time helping Winutil grow. Thanks a lot! Keep rocking 🍻.

View File

@@ -36,7 +36,7 @@
"category": "Document",
"choco": "na",
"content": "AFFiNE",
"description": "AFFiNE is an open-source alternative to Notion. Write, draw, plan all at once. Selfhost it to sync across devices.",
"description": "AFFiNE is an open-source alternative to Notion. Write, draw, plan all at once. Self-host it to sync across devices.",
"link": "https://affine.pro/",
"winget": "ToEverything.AFFiNE",
"foss": true
@@ -261,9 +261,9 @@
"category": "Utilities",
"choco": "citrix-workspace",
"content": "Citrix Workspace app",
"description": "a secure, unified client application that provides instant access to virtual desktops, SaaS, web, and Windows apps from any device (Windows, macOS, Linux, iOS, Android) or browser.",
"description": "A secure, unified client application that provides instant access to virtual desktops, SaaS, web, and Windows apps from any device (Windows, macOS, Linux, iOS, Android) or browser.",
"link": "https://www.citrix.com/downloads/workspace-app/",
"winget": "Citrix.Workspace",
"winget": "Citrix.Workspace"
},
"calibre": {
"category": "Document",
@@ -357,7 +357,7 @@
"category": "Development",
"choco": "clink",
"content": "Clink",
"description": "Clink is a powerful Bash-compatible command-line interface (CLIenhancement for Windows, adding features like syntax highlighting and improved history).",
"description": "Clink is a powerful Bash-compatible command-line interface (CLI enhancement for Windows, adding features like syntax highlighting and improved history).",
"link": "https://mridgers.github.io/clink/",
"winget": "chrisant996.Clink",
"foss": true
@@ -523,7 +523,7 @@
"category": "Utilities",
"choco": "ditto",
"content": "Ditto",
"description": "Ditto is an extension to the standard windows clipboard.",
"description": "Ditto is an extension to the standard Windows Clipboard.",
"link": "https://github.com/sabrogden/Ditto",
"winget": "Ditto.Ditto",
"foss": true
@@ -610,6 +610,14 @@
"winget": "Duplicati.Duplicati",
"foss": true
},
"ecm": {
"category": "Utilities",
"choco": "ecm",
"content": "Easy Context Menu",
"description": "Easy Context Menu (ECM) lets you add a variety of useful commands and tweaks to the Desktop, My Computer, Drives, File and Folder right-click context menus. This enables you to access the most used Windows components quickly and easily. Simply check the box next to the items you wish to add. Once added, just right click and the select the component shortcut to launch it. Easy Context Menu is both portable and freeware.",
"link": "https://www.sordum.org/7615/easy-context-menu-v1-6/",
"winget": "sordum.EasyContextMenu"
},
"eaapp": {
"category": "Games",
"choco": "ea-app",
@@ -726,7 +734,7 @@
"category": "Multimedia Tools",
"choco": "ffmpeg-full",
"content": "FFmpeg (full)",
"description": "FFmpeg is a powerful multimedia processing tool that enables users to convert, edit, and stream audio and video files with a vast range of codecs and formats. | Note: FFmpeg can not be uninstalled using winget.",
"description": "FFmpeg is a powerful multimedia processing tool that enables users to convert, edit, and stream audio and video files with a vast range of codecs and formats. | Note: FFmpeg can not be uninstalled using WinGet.",
"link": "https://ffmpeg.org/",
"winget": "Gyan.FFmpeg"
},
@@ -787,7 +795,7 @@
"category": "Multimedia Tools",
"choco": "lightshot",
"content": "Lightshot (Screenshots)",
"description": "Ligthshot is an easy-to-use, light-weight screenshot software tool, where you can optionally edit your screenshots using different tools, share them via Internet and/or save to disk, and customize the available options.",
"description": "Lightshot is an easy-to-use, light-weight screenshot software tool, where you can optionally edit your screenshots using different tools, share them via Internet and/or save to disk, and customize the available options.",
"link": "https://app.prntscr.com/",
"winget": "Skillbrains.Lightshot"
},
@@ -1359,7 +1367,7 @@
"category": "Communications",
"choco": "linphone",
"content": "Linphone",
"description": "Linphone is an open-source voice over IP (VoIPservice that allows for audio and video calls, messaging, and more.",
"description": "Linphone is an open-source voice over IP (VoIP) service that allows for audio and video calls, messaging, and more.",
"link": "https://www.linphone.org/",
"winget": "BelledonneCommunications.Linphone",
"foss": true
@@ -1424,6 +1432,15 @@
"link": "https://www.malwarebytes.com/",
"winget": "Malwarebytes.Malwarebytes"
},
"mpc-qt": {
"category": "Multimedia Tools",
"choco": "mediainfo",
"content": "mpc-qt",
"description": "MPC-HC (Media Player Classic Home Cinema) is considered by many to be the quintessential media player for the Windows desktop. MPC-QT (Media Player Classic Qute Theater) aims to reproduce most of the interface and functionality of MPC-HC while using libmpv to play video instead of DirectShow.",
"link": "https://github.com/mpc-qt/mpc-qt",
"winget": "mpc-qt.mpc-qt",
"foss": true
},
"masscode": {
"category": "Document",
"choco": "na",
@@ -1640,7 +1657,7 @@
"category": "Pro Tools",
"choco": "netbird",
"content": "NetBird",
"description": "NetBird is a open-source alternative comparable to TailScale that can be connected to a selfhosted Server.",
"description": "NetBird is a open-source alternative comparable to TailScale that can be connected to a self-hosted server.",
"link": "https://netbird.io/",
"winget": "netbird",
"foss": true
@@ -1899,6 +1916,15 @@
"winget": "Fleex255.PolicyPlus",
"foss": true
},
"qview": {
"category": "Multimedia Tools",
"choco": "na",
"content": "qView",
"description": "qView is an image viewer designed with minimalism and usability in mind.",
"link": "https://github.com/jurplel/qView",
"winget": "jurplel.qView",
"foss": true
},
"potplayer": {
"category": "Multimedia Tools",
"choco": "na",
@@ -1944,7 +1970,7 @@
"category": "Document",
"choco": "pdfxchangeeditor",
"content": "PDF-XChangeEditor",
"description": "a comprehensive Windows-based software suite and editor for creating, viewing, editing, annotating, and signing PDF files.",
"description": "A comprehensive Windows-based software suite and editor for creating, viewing, editing, annotating, and signing PDF files.",
"link": "https://www.pdf-xchange.com/",
"winget": "TrackerSoftware.PDF-XChangeEditor"
},
@@ -2093,6 +2119,42 @@
"winget": "Proton.ProtonAuthenticator",
"foss": true
},
"protonmail": {
"category": "Communications",
"choco": "na",
"content": "Proton Mail",
"description": "Proton Mail is an end-to-end encrypted email service by Proton, protecting your privacy with zero-access encryption.",
"link": "https://proton.me/mail",
"winget": "Proton.ProtonMail",
"foss": true
},
"protondrive": {
"category": "Utilities",
"choco": "na",
"content": "Proton Drive",
"description": "Proton Drive is an end-to-end encrypted Swiss vault for your files that protects your data.",
"link": "https://proton.me/drive",
"winget": "Proton.ProtonDrive",
"foss": true
},
"protonpass": {
"category": "Utilities",
"choco": "na",
"content": "Proton Pass",
"description": "Proton Pass is a cloud-based password manager with end-to-end encryption and unique email aliases.",
"link": "https://proton.me/pass",
"winget": "Proton.ProtonPass",
"foss": true
},
"protonvpn": {
"category": "Pro Tools",
"choco": "protonvpn",
"content": "Proton VPN",
"description": "Proton VPN is a no-logs VPN service that protects your privacy online with features like Secure Core and Tor over VPN.",
"link": "https://protonvpn.com/",
"winget": "Proton.ProtonVPN",
"foss": true
},
"processmonitor": {
"category": "Microsoft Tools",
"choco": "procexp",
@@ -2552,6 +2614,14 @@
"link": "https://www.teamviewer.com/",
"winget": "TeamViewer.TeamViewer"
},
"teamspeak3": {
"category": "Utilities",
"choco": "teamspeak",
"content": "TeamSpeak 3",
"description": "TEAMSPEAK. YOUR TEAM. YOUR RULES. Use crystal clear sound to communicate with your team mates cross-platform with military-grade security, lag-free performance & unparalleled reliability and uptime.",
"link": "https://www.teamspeak.com/",
"winget": "TeamSpeakSystems.TeamSpeakClient"
},
"telegram": {
"category": "Communications",
"choco": "telegram",
@@ -2847,7 +2917,7 @@
"wazuh": {
"category": "Utilities",
"choco": "wazuh-agent",
"content": "Wazuh.",
"content": "Wazuh",
"description": "Wazuh is an open-source security monitoring platform that offers intrusion detection, compliance checks, and log analysis.",
"link": "https://wazuh.com/",
"winget": "Wazuh.WazuhAgent",
@@ -2882,7 +2952,7 @@
"category": "Utilities",
"choco": "wingetui",
"content": "UniGetUI",
"description": "UniGetUI is a GUI for Winget, Chocolatey, and other Windows CLI package managers.",
"description": "UniGetUI is a GUI for WinGet, Chocolatey, and other Windows CLI package managers.",
"link": "https://www.marticliment.com/wingetui/",
"winget": "MartiCliment.UniGetUI",
"foss": true
@@ -3369,7 +3439,7 @@
"category": "Utilities",
"choco": "na",
"content": "Lenovo Legion Toolkit",
"description": "Lenovo Legion Toolkit (LLT) is a open-source utility created for Lenovo Legion (and similar) series laptops, that allows changing a couple of features that are only available in Lenovo Vantage or Legion Zone. It runs no background services, uses less memory, uses virtually no CPU, and contains no telemetry. Just like Lenovo Vantage, this application is Windows only.",
"description": "Lenovo Legion Toolkit (LLT) is a open-source utility created for Lenovo Legion laptops, that allows changing a couple of features that are only available in Lenovo Vantage or Legion Zone. It runs no background services, uses less memory, uses virtually no CPU, and contains no telemetry. Just like Lenovo Vantage, this application is Windows only.",
"link": "https://github.com/BartoszCichecki/LenovoLegionToolkit",
"winget": "BartoszCichecki.LenovoLegionToolkit",
"foss": true
@@ -3444,5 +3514,23 @@
"content": "NASM",
"link": "https://nasm.us",
"foss": true
},
"Ruby": {
"category": "Development",
"choco": "ruby",
"winget": "RubyInstallerTeam.RubyWithDevkit.3.4",
"description": "A Ruby language execution environment with a MSYS2 installation.",
"content": "Ruby",
"link": "https://rubyinstaller.org/",
"foss": true
},
"Lua": {
"category": "Development",
"choco": "lua",
"winget": "rjpcomputing.luaforwindows",
"description": "A 'batteries included environment' for the Lua scripting language on Windows.",
"content": "Lua",
"link": "https://github.com/rjpcomputing/luaforwindows",
"foss": true
}
}

View File

@@ -21,13 +21,13 @@
"Description": "Upgrade all applications to the latest version"
},
"WingetRadioButton": {
"Content": "Winget",
"Content": "WinGet",
"Category": "__Package Manager",
"Type": "RadioButton",
"GroupName": "PackageManagerGroup",
"Checked": true,
"Order": "1",
"Description": "Use Winget for package management"
"Description": "Use WinGet for package management"
},
"ChocoRadioButton": {
"Content": "Chocolatey",

View File

@@ -103,7 +103,7 @@
Remove-Item ViVeTool -Recurse
Write-Host 'Old start menu reverted please restart your computer to take effect'
Write-Host 'Old start menu reverted. Please restart your computer to take effect.'
"
],
"UndoScript": [
@@ -117,7 +117,7 @@
Remove-Item ViVeTool -Recurse
Write-Host 'New start menu reverted please restart your computer to take effect'
Write-Host 'New start menu reverted. Please restart your computer to take effect.'
"
],
"link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/revertstartmenu"
@@ -1457,7 +1457,7 @@
},
"WPFTweaksUTC": {
"Content": "Set Time to UTC (Dual Boot)",
"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",
"panel": "1",
"registry": [
@@ -1490,7 +1490,7 @@
Remove-Item \"$Env:LocalAppData\\Microsoft\\OneDrive\" -Recurse -Force
Remove-Item \"C:\\ProgramData\\Microsoft OneDrive\" -Recurse -Force
# Grant back permission to accses OneDrive folder
# Grant back permission to access OneDrive folder
icacls $Env:OneDrive /grant \"Administrators:(D,DC)\"
# Disable OneSyncSvc
@@ -1503,7 +1503,7 @@
winget install Microsoft.Onedrive --source winget
# Enabled OneSyncSvc
Set-Service -Name OneSyncSvc -StartupType Enabled
Set-Service -Name OneSyncSvc -StartupType Automatic
"
],
"link": "https://winutil.christitus.com/dev/tweaks/z--advanced-tweaks---caution/removeonedrive"
@@ -1528,7 +1528,7 @@
"link": "https://winutil.christitus.com/dev/tweaks/z--advanced-tweaks---caution/removehome"
},
"WPFTweaksRemoveGallery": {
"Content": "Remove Gallery from explorer",
"Content": "Remove Gallery from Explorer",
"Description": "Removes the Gallery from Explorer and sets This PC as default.",
"category": "z__Advanced Tweaks - CAUTION",
"panel": "1",
@@ -1650,7 +1650,7 @@
"panel": "1",
"registry": [
{
"Path": "KCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\GameDVR",
"Path": "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\GameDVR",
"Name": "AppCaptureEnabled",
"Value": "0",
"Type": "DWord",
@@ -1799,7 +1799,7 @@
"link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/endtaskontaskbar"
},
"WPFTweaksPowershell7Tele": {
"Content": "Disable Powershell 7 Telemetry",
"Content": "Disable PowerShell 7 Telemetry",
"Description": "Creates 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",
"panel": "1",
@@ -2088,7 +2088,7 @@
},
"WPFTweaksTeredo": {
"Content": "Disable Teredo",
"Description": "Teredo network tunneling is a IPv6 feature that can cause additional latency, but may cause problems with some games.",
"Description": "Teredo network tunneling is an IPv6 feature that can cause additional latency, but may cause problems with some games.",
"category": "z__Advanced Tweaks - CAUTION",
"panel": "1",
"registry": [
@@ -2224,7 +2224,7 @@
},
"WPFToggleStandbyFix": {
"Content": "Modern Standby fix",
"Description": "Disable network connection during S0 sleep. If network connectivity is turned on during S0 sleep it could cause overheating on modern laptops",
"Description": "Disable network connection during S0 Sleep. If network connectivity is turned on during S0 Sleep it could cause overheating on modern laptops.",
"category": "Customize Preferences",
"panel": "2",
"Type": "Toggle",

View File

@@ -24,7 +24,7 @@ toc: true
* Pull requests are now handled directly on the **MAIN branch**. This was done since we can now select specific releases to launch via releases in GitHub.
* If you're doing code changes, then you can submit a PR to `main` branch, but I am very selective about these.
* If you're doing code changes, then you can submit a PR to the `main` branch, but I am very selective about these.
> [!IMPORTANT]
> Do not use a code formatter, make massive amounts of line changes, or make multiple feature changes. EACH FEATURE CHANGE SHOULD BE IT'S OWN PULL REQUEST!
@@ -85,7 +85,7 @@ graph TD
### Testing your changes
* To test to see if your changes work as intended run following commands in a powershell terminal as admin:
* To test to see if your changes work as intended, run the following commands in a PowerShell terminal as admin:
* Change the directory where you are running the commands to the forked project.
* `cd {path to the folder with the compile.ps1}`
@@ -110,6 +110,6 @@ graph TD
{{< image src="images/Push-Commit" alt="Push Commit Image" >}}
### Making a PR
* To make a PR on your repo under a new branch linking to the main branch, a button will show and say Preview and Create pull request. Click that button and fill in all the information that is provided on the template. Once all the information is filled in correctly, check your PR to make sure there is not a Winutil.ps1 file attached to the PR. Once everything is good, make the PR and wait for Chris (the maintainer) to accept or deny your PR. Once it is accepted by Chris, you will be able to see your changes in the "/windev" build.
* To make a PR on your repo under a new branch linking to the main branch, a button will show and say Preview and Create pull request. Click that button and fill in all the information that is provided on the template. Once all the information is filled in correctly, check your PR to make sure there is no Winutil.ps1 file attached to the PR. Once everything is good, make the PR and wait for Chris (the maintainer) to accept or deny your PR. Once it is accepted by Chris, you will be able to see your changes in the "/windev" build.
* If you do not see your feature in the main "/win" build, that is fine. All new changes go into the /windev build to make sure everything is working OK before going fully public.
* Congratulations! You just submitted your first PR. Thank you so much for contributing to Winutil.

View File

@@ -13,7 +13,7 @@ irm https://github.com/ChrisTitusTech/Winutil/releases/latest/download/Winutil.p
If it still isn't working in your region, it may be due to temporary ISP or network filtering of GitHub content domains. This has been reported by some users in India in the past. See: [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 the following two providers:
| Provider | Primary DNS | Secondary DNS |
| :--------: | :---------: | :-----------: |
@@ -27,3 +27,41 @@ If your PowerShell session is running in **Constrained Language Mode**, some scr
$ExecutionContext.SessionState.LanguageMode
```
If it returns `ConstrainedLanguage`, you may need to switch to `FullLanguage` mode or run the script in a session with administrative privileges. Be aware that some security policies may enforce Constrained Language Mode, especially in corporate or managed environments.
**If the download fails**:
1. Try the direct GitHub link:
```powershell
irm https://github.com/ChrisTitusTech/Winutil/releases/latest/download/Winutil.ps1 | iex
```
2. Force TLS 1.2:
```powershell
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
irm "https://christitus.com/win" | iex
```
> [!NOTE]
> On Windows 11, you usually do not need the TLS 1.2 command. Use it only if you encounter download or security protocol errors.
### Execution Policy Error
If you see an execution policy error when running the downloaded script, you can allow the current session to run unsigned scripts with this command:
```powershell
Set-ExecutionPolicy Unrestricted -Scope Process -Force
irm "https://christitus.com/win" | iex
```
This only changes the policy for the current PowerShell process and is safe for one-off runs.
### Interface Doesn't Appear
If Winutil downloads, but the GUI does not open or appear, try these steps:
1. Check if your antivirus or Windows Defender is blocking the script — add an exclusion if necessary.
2. Ensure you launched PowerShell / Terminal as **Administrator**.
3. Close and reopen PowerShell, then run the launch command again.
4. If the script still doesn't show, try running the script in a visible PowerShell window (avoid background/silent shells) to observe output and errors.

View File

@@ -14,7 +14,7 @@ Welcome to the official documentation for Winutil, your go-to utility for optimi
## Running the latest release of Winutil
* You will first need to start a Powershell terminal **as Admin**.
* You will first need to start a PowerShell terminal **as Admin**.
* Now you can run the following command:
```

View File

@@ -145,7 +145,7 @@ The **Win11 Creator** is a specialized subsystem within Winutil that creates cus
- `Invoke-WinUtilISOScript.ps1`: Applies modifications to mounted install.wim
- Removes provisioned AppX packages (40+ bloatware apps)
- Injects drivers (optional) from current system
- Injects drivers (optional) from the current system
- Removes OneDrive setup files
- Applies offline registry tweaks (hardware bypass, privacy, telemetry, OOBE)
- Deletes telemetry scheduled task definitions
@@ -167,7 +167,7 @@ Invoke-WinUtilISOMountAndVerify
├─ Extract available editions (Home, Pro, Enterprise, etc.)
└─ Store ISO path, drive letter, WIM path, image info in $sync
User optionally enables Driver Injection checkbox
User optionally enables the Driver Injection checkbox
Invoke-WinUtilISOModify (runs in background runspace)
├─ Create work directory: ~WinUtil_Win11ISO_[timestamp]
@@ -183,7 +183,7 @@ Invoke-WinUtilISOModify (runs in background runspace)
│ ├─ Pre-stage setup scripts from autounattend.xml to C:\Windows\Setup\Scripts\
│ └─ Unload registry hives
├─ DISM /Cleanup-Image /StartComponentCleanup /ResetBase (saves 300-800 MB)
├─ Dismount and save modified install.wim (~10+ minutes, slowest step)
├─ Dismount and save the modified install.wim (~10+ minutes, slowest step)
├─ Export selected edition only (removes all other editions, saves 1-2 GB each)
├─ Dismount source ISO
└─ Report completion, enable export options
@@ -218,7 +218,7 @@ Invoke-WinUtilISOCleanAndReset (optional)
- Prevents redundant modifications
**Modification Safety**:
- All registry changes are documented in script (reversible)
- All registry changes are documented in a script (reversible)
- Original ISO never modified; only working copy
- Logged to `WinUtil_Win11ISO.log` for debugging
- DISM handles image dismount with automatic cleanup on error
@@ -256,7 +256,7 @@ The `Invoke-WinUtilISOScript` function applies **50+ offline registry tweaks**:
**System Features**:
- Disable BitLocker and device encryption
- Disable Chat icon from taskbar
- Disable Chat icon from the Taskbar
- Disable OneDrive folder backup
- Disable Copilot
- Disable Windows Update during OOBE (re-enabled at first login)
@@ -287,7 +287,7 @@ Get-WinUtilCheckBoxes → Retrieves selected apps
For each selected app:
Check if WinGet/Choco installed
Check if WinGet/Choco is installed
Install-WinUtilWinget/Choco (if needed)
@@ -333,7 +333,7 @@ Retrieve "OriginalState" from tweak definition
Invoke-WPFUndoTweak → Restore original values
Remove from applied tweaks log
Remove from the applied tweaks log
Update UI
```
@@ -525,7 +525,7 @@ $sync.form.Dispatcher.Invoke([action]{
```
2. Recompile: `.\Compile.ps1`
3. The app appears automatically in Install tab
3. The app appears automatically in the Install tab
### Adding a New Tweak
@@ -550,7 +550,7 @@ $sync.form.Dispatcher.Invoke([action]{
```
2. Recompile: `.\Compile.ps1`
3. Tweak appears in Tweaks tab
3. Tweak appears in the Tweaks tab
### Adding a New Function

View File

@@ -9,20 +9,20 @@ function Invoke-WPFFixesWinget {
<#
.SYNOPSIS
Fixes Winget by running choco install winget
Fixes WinGet by running `choco install winget`
.DESCRIPTION
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
try {
Set-WinUtilTaskbaritem -state "Indeterminate" -overlay "logo"
Write-Host "==> Starting Winget Repair"
Write-Host "==> Starting WinGet Repair"
Install-WinUtilWinget
} catch {
Write-Error "Failed to install winget: $_"
Write-Error "Failed to install WinGet: $_"
Set-WinUtilTaskbaritem -state "Error" -overlay "warning"
} finally {
Write-Host "==> Finished Winget Repair"
Write-Host "==> Finished WinGet Repair"
Set-WinUtilTaskbaritem -state "None" -overlay "checkmark"
}

View File

@@ -13,6 +13,6 @@ function Invoke-WinUtilUninstallPSProfile {
Remove-Item $Profile
}
Write-Host "Successfully uninstalled CTT Powershell Profile" -ForegroundColor Green
Write-Host "Successfully uninstalled CTT PowerShell Profile." -ForegroundColor Green
}
```

View File

@@ -24,6 +24,6 @@ description: ""
## 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).

View File

@@ -48,6 +48,6 @@ description: ""
## 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).

View File

@@ -32,6 +32,6 @@ description: ""
## 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).

View File

@@ -24,6 +24,6 @@ description: ""
## 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).

View File

@@ -34,6 +34,6 @@ description: ""
## 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).

View File

@@ -24,6 +24,6 @@ description: ""
## 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).

View File

@@ -40,6 +40,6 @@ description: ""
## 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).

View File

@@ -24,6 +24,6 @@ description: ""
## 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).

View File

@@ -48,6 +48,6 @@ description: ""
## 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).

View File

@@ -32,6 +32,6 @@ description: ""
## 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).

View File

@@ -24,6 +24,6 @@ description: ""
## 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).

View File

@@ -34,6 +34,6 @@ description: ""
## 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).

View File

@@ -6,7 +6,7 @@ description: ""
```json {filename="config/tweaks.json",linenos=inline,linenostart=2225}
"WPFToggleStandbyFix": {
"Content": "Modern Standby fix",
"Description": "Disable network connection during S0 sleep. If network connectivity is turned on during S0 sleep it could cause overheating on modern laptops",
"Description": "Disable network connection during S0 Sleep. If network connectivity is turned on during S0 Sleep it could cause overheating on modern laptops.",
"category": "Customize Preferences",
"panel": "2",
"Type": "Toggle",
@@ -24,6 +24,6 @@ description: ""
## 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).

View File

@@ -50,6 +50,6 @@ description: ""
## 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).

View File

@@ -24,6 +24,6 @@ description: ""
## 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).

View File

@@ -24,6 +24,6 @@ description: ""
## 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).

View File

@@ -34,6 +34,6 @@ description: ""
## 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).

View File

@@ -24,6 +24,6 @@ description: ""
## 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).

View File

@@ -24,6 +24,6 @@ description: ""
## 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).

View File

@@ -36,6 +36,6 @@ description: ""
## 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).

View File

@@ -22,6 +22,6 @@ description: ""
## 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).

View File

@@ -22,6 +22,6 @@ description: ""
## 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).

View File

@@ -35,6 +35,6 @@ description: ""
## 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).

View File

@@ -43,6 +43,6 @@ description: ""
## 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).

View File

@@ -1,11 +1,11 @@
---
title: "Disable Powershell 7 Telemetry"
title: "Disable PowerShell 7 Telemetry"
description: ""
---
```json {filename="config/tweaks.json",linenos=inline,linenostart=1801}
"WPFTweaksPowershell7Tele": {
"Content": "Disable Powershell 7 Telemetry",
"Content": "Disable PowerShell 7 Telemetry",
"Description": "Creates 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",
"panel": "1",

View File

@@ -33,6 +33,6 @@ description: ""
## 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).

View File

@@ -20,7 +20,7 @@ description: ""
Remove-Item ViVeTool -Recurse
Write-Host 'Old start menu reverted please restart your computer to take effect'
Write-Host 'Old start menu reverted. Please restart your computer to take effect.'
"
],
"UndoScript": [
@@ -34,7 +34,7 @@ description: ""
Remove-Item ViVeTool -Recurse
Write-Host 'New start menu reverted please restart your computer to take effect'
Write-Host 'New start menu reverted. Please restart your computer to take effect.'
"
],
```

View File

@@ -128,6 +128,6 @@ description: ""
## 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).

View File

@@ -22,6 +22,6 @@ description: ""
## 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).

View File

@@ -50,6 +50,6 @@ description: ""
## 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).

View File

@@ -22,6 +22,6 @@ description: ""
## 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).

View File

@@ -22,6 +22,6 @@ description: ""
## 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).

View File

@@ -28,6 +28,6 @@ description: ""
## 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).

View File

@@ -29,6 +29,6 @@ description: ""
## 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).

View File

@@ -105,6 +105,6 @@ description: ""
## 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).

View File

@@ -127,6 +127,6 @@ description: ""
## 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).

View File

@@ -22,6 +22,6 @@ description: ""
## 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).

View File

@@ -48,6 +48,6 @@ description: ""
## 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).

View File

@@ -90,6 +90,6 @@ description: ""
## 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).

View File

@@ -1,11 +1,11 @@
---
title: "Remove Gallery from explorer"
title: "Remove Gallery from Explorer"
description: ""
---
```json {filename="config/tweaks.json",linenos=inline,linenostart=1530}
"WPFTweaksRemoveGallery": {
"Content": "Remove Gallery from explorer",
"Content": "Remove Gallery from Explorer",
"Description": "Removes the Gallery from Explorer and sets This PC as default.",
"category": "z__Advanced Tweaks - CAUTION",
"panel": "1",

View File

@@ -23,7 +23,7 @@ description: ""
Remove-Item \"$Env:LocalAppData\\Microsoft\\OneDrive\" -Recurse -Force
Remove-Item \"C:\\ProgramData\\Microsoft OneDrive\" -Recurse -Force
# Grant back permission to accses OneDrive folder
# Grant back permission to access OneDrive folder
icacls $Env:OneDrive /grant \"Administrators:(D,DC)\"
# Disable OneSyncSvc
@@ -36,7 +36,7 @@ description: ""
winget install Microsoft.Onedrive --source winget
# Enabled OneSyncSvc
Set-Service -Name OneSyncSvc -StartupType Enabled
Set-Service -Name OneSyncSvc -StartupType Automatic
"
],
```

View File

@@ -22,6 +22,6 @@ description: ""
## 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).

View File

@@ -6,7 +6,7 @@ description: ""
```json {filename="config/tweaks.json",linenos=inline,linenostart=2089}
"WPFTweaksTeredo": {
"Content": "Disable Teredo",
"Description": "Teredo network tunneling is a IPv6 feature that can cause additional latency, but may cause problems with some games.",
"Description": "Teredo network tunneling is an IPv6 feature that can cause additional latency, but may cause problems with some games.",
"category": "z__Advanced Tweaks - CAUTION",
"panel": "1",
"registry": [
@@ -28,6 +28,6 @@ description: ""
## 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).

View File

@@ -6,7 +6,7 @@ description: ""
```json {filename="config/tweaks.json",linenos=inline,linenostart=1458}
"WPFTweaksUTC": {
"Content": "Set Time to UTC (Dual Boot)",
"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",
"panel": "1",
"registry": [
@@ -22,6 +22,6 @@ description: ""
## 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).

View File

@@ -11,7 +11,7 @@ description: ""
"panel": "1",
"registry": [
{
"Path": "KCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\GameDVR",
"Path": "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\GameDVR",
"Name": "AppCaptureEnabled",
"Value": "0",
"Type": "DWord",
@@ -29,6 +29,6 @@ description: ""
## 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).

View File

@@ -6,26 +6,26 @@ toc: true
## General Questions
### Is Windows 10 still supported?
No. Windows 10 is no longer supported by Winutil because it reached end of support on **October 14, 2025**.
No. Windows 10 is no longer supported by Winutil because it reached the end of support on **October 14, 2025**.
Winutil is focused on Windows 11.
### How do I uninstall Winutil?
You do not need to uninstall Winutil. Because it runs as a PowerShell script, it is loaded into memory only while it is open. Once you close it, it is removed from memory and does not remain installed on your system.
### Is Winutil safe to use?
Yes, Winutil is open source and the code is publicly available on GitHub. Thousands of users run it daily. However, like any system modification tool, you should:
Yes, Winutil is open source, and the code is publicly available on GitHub. Thousands of users run it daily. However, like any system modification tool, you should:
- Run it as Administrator (required)
- Create a restore point before major changes
- Understand what tweaks you're applying
- Download only from official sources
- Run only from [official source](https://github.com/ChrisTitusTech/winutil/)
### Do I need to keep running Winutil?
No. Once you've applied tweaks or installed applications, you can close Winutil. Changes persist after closing. You only need to run Winutil again when you want to make additional changes or undo tweaks.
### Does Winutil require internet access?
- **For downloading**: Yes, installing applications requires internet
- **For downloading**: Yes, installing applications requires the internet
- **For tweaks**: No, most tweaks work offline
- **Initial run**: Yes, to download the latest script
- **Initial run**: Yes, to run the latest script
### How often is Winutil updated?
Winutil is actively maintained with frequent updates. New features, bug fixes, and application additions are released regularly. The script auto-downloads the latest version each time you run it.
@@ -55,7 +55,7 @@ Try these solutions in order:
```
> [!NOTE]
> On Windows 11, you usually do not need the TLS 1.2 command. Use it only if you hit download or security protocol errors.
> On Windows 11, you usually do not need the TLS 1.2 command. Use it only if you encounter download or security protocol errors.
3. **Change DNS** to Cloudflare (1.1.1.1) or Google (8.8.8.8)
@@ -91,19 +91,13 @@ Alternatively, use System Restore if you created a restore point.
- Run Disk Cleanup
- Create Restore Point
**Caution needed (Advanced Tweaks)**:
- Remove Microsoft Store
- Disable Windows Defender
- Remove all bloatware
- Disable system services
Start with Essential Tweaks. Only use Advanced Tweaks if you understand the implications.
**(Advanced Tweaks)** should only be run by advanced users.
### Will tweaks survive Windows Updates?
Most tweaks persist through updates, but some may be reset by major Windows feature updates. You may need to reapply certain tweaks afterward.
Most tweaks persist through updates, but some may be reset by major Windows feature updates. You may need to reapply certain tweaks afterwards.
### Can I create my own tweak presets?
Currently, Winutil uses predefined presets (Desktop, Laptop, Minimal, Standard). Custom presets aren't directly supported in the GUI, but you can script your preferred configuration.
Currently, Winutil uses predefined presets (Standard, Minimal). Custom presets aren't directly supported in the GUI, but you can script your preferred configuration.
### What's the difference between Essential and Advanced tweaks?
- **Essential Tweaks**: Safe for most users, improve performance/privacy with minimal risk
@@ -128,9 +122,10 @@ Yes! Check the boxes for all applications you want, then click "Install Selected
No. WinGet and Chocolatey install clean versions of applications without bundled offers, toolbars, or bloatware.
### Can I uninstall applications through Winutil?
Winutil focuses on installation. To uninstall:
- Use Windows Settings > Apps > Installed Apps
- Or use the application's built-in uninstaller
Winutil primarily focuses on installing and managing applications rather than providing a full GUI for uninstalling every program. To remove applications you can:
- Use Windows Settings > Apps > Installed apps to uninstall programs.
- Use package manager commands in PowerShell (for example `winget uninstall <package>` or `choco uninstall <package>`).
- Some packages installed by Winutil (AppX/MSIX) include removal helpers; check the app entry or use Winutil's remove helpers when available.
### Will installed apps auto-update?
Applications with built-in update mechanisms will auto-update. You can also update them via WinGet/Chocolatey commands or through Winutil's "Upgrade Selected" feature.
@@ -146,7 +141,7 @@ Generally, **no**. Security updates are important. However, you might:
### How do I re-enable updates after disabling them?
1. Open Winutil
2. Go to the **Updates** tab
3. Click **Enable Updates**
3. Click **Default Updates**
4. Updates will resume normally
### What's the difference between "Security Updates Only" and "Disable Updates"?
@@ -170,7 +165,7 @@ Troubleshooting steps:
1. Check your internet connection
2. Try installing just that one application
3. Review error messages in the output panel
4. Check if antivirus is blocking
4. Check if the antivirus is blocking
5. Try the WinGet Reinstall fix
### Network tweaks broke my internet connection
@@ -228,12 +223,6 @@ It disables:
- Usage statistics
- Error reporting (optional)
### Is it safe to disable Windows Defender?
**Generally not recommended**. Only disable Defender if:
- You have alternative antivirus installed
- You understand the security risks
- You're in a controlled/isolated environment
### Will removing Microsoft Store affect security updates?
No, Windows security updates are independent of the Microsoft Store.
@@ -246,13 +235,13 @@ Tweaks can improve performance by:
- Cleaning temporary files
- Optimizing startup programs
Results vary depending on your system and which tweaks you apply.
Results may vary depending on your system.
### What's the best preset for gaming?
Use the **Desktop** preset, then additionally apply:
- Disable GameDVR
- Ultimate Performance power plan
- Disable fullscreen optimizations (Advanced)
- Disable full-screen optimizations (Advanced)
- Set display for performance (Advanced)
### How much RAM does Winutil use?
@@ -262,11 +251,9 @@ Winutil itself uses about 50-100 MB while running. Once closed, it is removed fr
### "Access Denied" errors
- Ensure PowerShell is running as Administrator
- Check if antivirus is blocking changes
- Check if the antivirus is blocking changes
- Verify you have ownership of files/registry keys
### WinGet configuration prompt won't go away
Type `Y` and press Enter in the PowerShell window. This only happens on first use and configures WinGet for your system.
## Still Need Help?
@@ -277,8 +264,3 @@ Can't find your answer? Try these resources:
- **[Discord Community](https://discord.gg/RUbZUZyByQ)** - Get help from other users
- **[GitHub Issues](https://github.com/ChrisTitusTech/winutil/issues)** - Report bugs
- **[YouTube Tutorial](https://www.youtube.com/watch?v=6UQZ5oQg8XA)** - Video walkthrough
---
**Last Updated**: January 2026
**Found this helpful?** Consider starring the project on [GitHub](https://github.com/ChrisTitusTech/winutil)!

View File

@@ -6,7 +6,7 @@ weight: 2
Welcome to the official User Guide for **Winutil**, your all-in-one Windows toolkit.
> [!IMPORTANT]
> Windows 10 is not supported by Winutil. Windows 10 reached end of support on **October 14, 2025**.
> Windows 10 is not supported by Winutil. Windows 10 reached the end of support on **October 14, 2025**.
## What is Winutil?

View File

@@ -13,7 +13,7 @@ Install common **Windows features** by selecting the feature checkboxes and clic
* Hyper-V Virtualization
* Legacy Media (WMP, DirectPlay)
* NFS - Network File System
* Enable Daily Registry Backup Task 12:30am
* Enable Daily Registry Backup Task 12:30 AM
* Enable Legacy F8 Boot Recovery
* Disable Legacy F8 Boot Recovery
* Windows Subsystem for Linux
@@ -28,7 +28,6 @@ Use these one-click fixes for common system problems.
* Reset Network
* System Corruption Scan
* WinGet Reinstall
* Remove Adobe Creative Cloud
## Legacy Windows Panels

View File

@@ -12,7 +12,7 @@ Winutil is a powerful Windows utility that helps you optimize, customize, and ma
Before running Winutil, ensure your system meets these requirements:
> [!IMPORTANT]
> Windows 10 is not supported by Winutil. Windows 10 reached end of support on **October 14, 2025**.
> Windows 10 is not supported by Winutil. Windows 10 reached the end of support on **October 14, 2025**.
- **Operating System**: Windows 11
- **PowerShell**: Version 5.1 or later (included by default in Windows 11)
@@ -48,41 +48,34 @@ There are several ways to open PowerShell with admin rights:
### Step 2: Run the Launch Command
Once PowerShell is open with administrator privileges, run one of these commands:
With PowerShell running as Administrator, run one of the following commands depending on the release channel you want.
**Stable Release (Recommended for most users)**
**Stable release (recommended)**
```powershell
irm "https://christitus.com/win" | iex
```
**Development Branch (For testing latest features)**
**Development branch (bleeding edge — for testing only)**
```powershell
irm "https://christitus.com/windev" | iex
```
> [!NOTE]
> The `irm` command downloads the script, and `iex` executes it. This is safe when downloading from the official source.
> - The `irm` command downloads the script, and `iex` executes it. This is safe when downloading from the official source.
> - The development branch may contain experimental changes and should only be used for testing on non-production systems.
### Step 3: Wait for Winutil to Load
The first time you run Winutil, it may take a few moments to:
- Download the latest version
- Run the latest version
- Initialize the interface
- Load all features and settings
## First Time Setup
### Configure WinGet (If Prompted)
On your first run, you may be prompted to configure WinGet (Windows Package Manager). This is normal.
1. When prompted, type `Y` and press Enter
2. Accept the terms and conditions
3. This only needs to be done once
### Understanding the Interface
Winutil opens with a clean, tabbed interface:
@@ -93,6 +86,7 @@ Winutil opens with a clean, tabbed interface:
- **Tweaks**: Apply system optimizations and customizations
- **Config**: Access system tools and utilities
- **Updates**: Manage Windows updates
- **Win11 Creator**: Allows user to debloat Windows 11 ISO files.
## Your First Actions
@@ -112,7 +106,7 @@ This gives you a rollback point if needed.
1. Navigate to the **Install** tab
2. Browse categories or use the search bar
3. Check applications you want to install
3. Check the applications you want to install
4. Click "Install/Upgrade Selected" at the bottom
### 3. Apply Basic Tweaks
@@ -120,7 +114,7 @@ This gives you a rollback point if needed.
For a better Windows experience with minimal risk:
1. Go to the **Tweaks** tab
2. Select the **"Desktop" preset** for a balanced configuration
2. Select the **Standard** for a balanced configuration
3. Review the selected tweaks
4. Click **Run Tweaks**
@@ -177,7 +171,7 @@ For common Windows issues:
For improved privacy and speed:
1. Go to the **Config** tab or the **Tweaks** tab
1. Go to the **Tweaks** tab
2. Find the DNS section
3. Select a provider:
- **Cloudflare**: Fast and privacy-focused
@@ -215,49 +209,7 @@ Winutil offers several preset configurations:
### Script Won't Download
**If the download fails**:
1. Try the direct GitHub link:
```powershell
irm https://github.com/ChrisTitusTech/Winutil/releases/latest/download/Winutil.ps1 | iex
```
2. Force TLS 1.2:
```powershell
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
irm "https://christitus.com/win" | iex
```
> [!NOTE]
> On Windows 11, you usually do not need the TLS 1.2 command. Use it only if you hit download or security protocol errors.
### Execution Policy Error
If you get an execution policy error:
```powershell
Set-ExecutionPolicy Unrestricted -Scope Process -Force
irm "https://christitus.com/win" | iex
```
### Download Blocked (India/Certain Regions)
If downloads are blocked in your region:
1. Use a VPN service
2. Change DNS to Cloudflare (1.1.1.1) or Google (8.8.8.8)
3. Try again
### Interface Doesn't Appear
If Winutil downloads but doesn't open:
1. Check if antivirus is blocking it
2. Ensure you ran PowerShell as administrator
3. Try closing and reopening PowerShell
4. Check Windows Defender exclusions
If you get any errors when running Winutil please refer to [Known Issues](/knownissues/) page
## Next Steps

View File

@@ -5,7 +5,7 @@ weight: 6
Winutil provides three update modes so you can choose how aggressively Windows Update is managed on your system:
- **Default (Out of Box) Settings**: Restores standard Windows Update behavior
- **Default (Out of the Box) Settings**: Restores standard Windows Update behavior
- **Security (Recommended) Settings**: Prioritizes stability while still receiving security updates
- **Disable ALL Updates**: Turns off Windows Update entirely and should only be used with extreme caution

View File

@@ -59,7 +59,7 @@ Click **Run Windows ISO Modification and Creator** to start the customization pr
- **Disable Copilot and search box suggestions**
**Optional: Driver Injection**
- If enabled, injects all drivers from your current system into the install.wim and boot.wim — useful for offline installations on machines with missing drivers. This is an optional checkbox in Step 3.
- If enabled, it injects all drivers from your current system into the install.wim and boot.wim — useful for offline installations on machines with missing drivers. This is an optional checkbox in Step 3.
A live log shows progress as each step completes. This stage usually takes **1030 minutes** depending on disk speed. The WIM dismount near the end is the slowest part, so do not close Winutil while it is running.
@@ -67,7 +67,7 @@ A live log shows progress as each step completes. This stage usually takes **10
### Step 4 — Export Your Result
Once modification is complete, choose how to save your image:
Once the modification is complete, choose how to save your image:
{{< tabs >}}

View File

@@ -34,21 +34,21 @@ function Get-WinUtilSelectedPackages
if ($package.choco -eq "na") {
Write-Debug "$($package.content) has no Choco value."
$null = $packagesWinget.add($($package.winget))
Write-Host "Queueing $($package.winget) for Winget"
Write-Host "Queueing $($package.winget) for WinGet..."
} else {
$null = $packagesChoco.add($package.choco)
Write-Host "Queueing $($package.choco) for Chocolatey"
Write-Host "Queueing $($package.choco) for Chocolatey..."
}
break
}
"Winget" {
if ($package.winget -eq "na") {
Write-Debug "$($package.content) has no Winget value."
Write-Debug "$($package.content) has no WinGet value."
$null = $packagesChoco.add($package.choco)
Write-Host "Queueing $($package.choco) for Chocolatey"
Write-Host "Queueing $($package.choco) for Chocolatey..."
} else {
$null = $packagesWinget.add($($package.winget))
Write-Host "Queueing $($package.winget) for Winget"
Write-Host "Queueing $($package.winget) for WinGet..."
}
break
}

View File

@@ -20,9 +20,9 @@ Function Get-WinUtilToggleStatus {
if (($ToggleSwitchReg.path -imatch "hku") -and !(Get-PSDrive -Name HKU -ErrorAction SilentlyContinue)) {
$null = (New-PSDrive -PSProvider Registry -Name HKU -Root HKEY_USERS)
if (Get-PSDrive -Name HKU -ErrorAction SilentlyContinue) {
Write-Debug "HKU drive created successfully"
Write-Debug "HKU drive created successfully."
} else {
Write-Debug "Failed to create HKU drive"
Write-Debug "Failed to create HKU drive."
}
}
} catch {

View File

@@ -10,6 +10,6 @@ function Install-WinUtilChoco {
return
}
Write-Host "Chocolatey is not installed, installing now."
Write-Host "Chocolatey is not installed. Installing now..."
Invoke-WebRequest -Uri https://community.chocolatey.org/install.ps1 -UseBasicParsing | Invoke-Expression
}

View File

@@ -205,7 +205,7 @@ function Install-WinUtilProgramChoco {
Write-Host "Searching for metapackages of $Program (.install or .portable)"
$chocoPackages = ((choco list | Select-String -Pattern "$Program(\.install|\.portable)?").Matches.Value) -join " "
if ($chocoPackages) {
Write-Host "Starting uninstallation of $chocoPackages with Chocolatey."
Write-Host "Starting uninstallation of $chocoPackages with Chocolatey..."
try {
$uninstallStatusCode = Invoke-ChocoCommand "uninstall $chocoPackages -y"
Write-Host "$Program" $(if ($uninstallStatusCode -eq 0) { "uninstalled successfully." } else { "failed to uninstall." })

View File

@@ -28,10 +28,10 @@ Function Install-WinUtilProgramWinget {
Invokes the winget.exe with the provided arguments and return the exit code
.PARAMETER wingetId
The Id of the Program that Winget should Install/Uninstall
The Id of the Program that WinGet should Install/Uninstall
.NOTES
Invoke Winget uses the public variable $Action defined outside the function to determine if a Program should be installed or removed
Invoke WinGet uses the public variable $Action defined outside the function to determine if a Program should be installed or removed
#>
param (
[string]$wingetId
@@ -61,7 +61,7 @@ Function Install-WinUtilProgramWinget {
Contains the Install Logic and return code handling from winget
.PARAMETER Program
The Winget ID of the Program that should be installed
The WinGet ID of the Program that should be installed
#>
param (
[string]$Program
@@ -71,7 +71,7 @@ Function Install-WinUtilProgramWinget {
Write-Host "$($Program) installed successfully."
return $true
} elseif ($status -eq -1978335189) {
Write-Host "$($Program) No applicable update found"
Write-Host "No applicable update found for $($Program)."
return $true
}
@@ -82,10 +82,10 @@ Function Install-WinUtilProgramWinget {
Function Invoke-Uninstall {
<#
.SYNOPSIS
Contains the Uninstall Logic and return code handling from winget
Contains the Uninstall Logic and return code handling from WinGet
.PARAMETER Program
The Winget ID of the Program that should be uninstalled
The WinGet ID of the Program that should be uninstalled
#>
param (
[string]$Program
@@ -110,7 +110,7 @@ Function Install-WinUtilProgramWinget {
$failedPackages = @()
Write-Host "==========================================="
Write-Host "-- Configuring winget packages ---"
Write-Host "-- Configuring WinGet packages ---"
Write-Host "==========================================="
for ($i = 0; $i -lt $count; $i++) {
@@ -130,6 +130,6 @@ Function Install-WinUtilProgramWinget {
}
}
Set-WinUtilProgressBar -label "$($Action)ation done" -percent 100
Set-WinUtilProgressBar -label "$($Action) action done." -percent 100
return $failedPackages
}

View File

@@ -2,16 +2,16 @@ function Install-WinUtilWinget {
<#
.SYNOPSIS
Installs Winget if not already installed.
Installs WinGet if not already installed.
.DESCRIPTION
installs winget if needed
installs winGet if needed
#>
if ((Test-WinUtilPackageManager -winget) -eq "installed") {
return
}
Write-Host "Winget is not Installed. Installing." -ForegroundColor Red
Write-Host "WinGet is not installed. Installing now..." -ForegroundColor Red
Set-PSRepository -Name PSGallery -InstallationPolicy Trusted
Install-PackageProvider -Name NuGet -Force

View File

@@ -21,7 +21,7 @@ function Invoke-WinUtilFeatureInstall {
Invoke-WPFUIThread -ScriptBlock { Set-WinUtilTaskbaritem -state "Error" }
} else {
Write-Warning "Unable to Install $feature due to unhandled exception"
Write-Warning "Unable to Install $feature due to unhandled exception."
Write-Warning $CheckBox.Exception.StackTrace
}
}
@@ -40,7 +40,7 @@ function Invoke-WinUtilFeatureInstall {
Invoke-WPFUIThread -ScriptBlock { Set-WinUtilTaskbaritem -state "Error" }
} else {
Invoke-WPFUIThread -ScriptBlock { Set-WinUtilTaskbaritem -state "Error" }
Write-Warning "Unable to Install $feature due to unhandled exception"
Write-Warning "Unable to Install $feature due to unhandled exception."
Write-Warning $CheckBox.Exception.StackTrace
}
}

View File

@@ -133,7 +133,7 @@ function Invoke-WinUtilISOModify {
if (-not $isoPath) {
[System.Windows.MessageBox]::Show(
"No verified ISO found. Please complete Steps 1 and 2 first.",
"No verified ISO found. Please complete Steps 1 and 2 first.",
"Not Ready", "OK", "Warning")
return
}
@@ -416,12 +416,12 @@ function Invoke-WinUtilISOCleanAndReset {
Log "WIM dismounted successfully."
}
} elseif (Test-Path $mountDir) {
Log "No mounted WIM reported by Get-WindowsImage, running DISM /Cleanup-Wim as a precaution..."
Log "No mounted WIM reported by Get-WindowsImage. Running DISM /Cleanup-Wim as a precaution..."
SetProgress "Running DISM cleanup..." 3
& dism /English /Cleanup-Wim 2>&1 | ForEach-Object { Log $_ }
}
} catch {
Log "Warning: could not dismount WIM cleanly, attempting DISM /Cleanup-Wim fallback: $_"
Log "Warning: could not dismount WIM cleanly. Attempting DISM /Cleanup-Wim fallback: $_"
try { & dism /English /Cleanup-Wim 2>&1 | ForEach-Object { Log $_ } }
catch { Log "Warning: DISM /Cleanup-Wim also failed: $_" }
}

View File

@@ -5,7 +5,7 @@ function Invoke-WinUtilISORefreshUSBDrives {
$combo.Items.Clear()
if ($removable.Count -eq 0) {
$combo.Items.Add("No USB drives detected")
$combo.Items.Add("No USB drives detected.")
$combo.SelectedIndex = 0
$sync["Win11ISOUSBDisks"] = @()
Write-Win11ISOLog "No USB drives detected."
@@ -26,7 +26,7 @@ function Invoke-WinUtilISOWriteUSB {
$usbDisks = $sync["Win11ISOUSBDisks"]
if (-not $contentsDir -or -not (Test-Path $contentsDir)) {
[System.Windows.MessageBox]::Show("No modified ISO content found. Please complete Steps 1-3 first.", "Not Ready", "OK", "Warning")
[System.Windows.MessageBox]::Show("No modified ISO content found. Please complete Steps 1-3 first.", "Not Ready", "OK", "Warning")
return
}

View File

@@ -9,12 +9,12 @@ function Invoke-WinUtilSSHServer {
# Install the OpenSSH Server feature if not already installed
if ($FeatureName.State -ne "Installed") {
Write-Host "Enabling OpenSSH Server"
Write-Host "Enabling OpenSSH Server..."
Add-WindowsCapability -Online -Name $FeatureName.Name
}
# Sets up the OpenSSH Server service
Write-Host "Starting the services"
Write-Host "Starting the services..."
Start-Service -Name sshd
Set-Service -Name sshd -StartupType Automatic
@@ -50,7 +50,7 @@ function Invoke-WinUtilSSHServer {
}
#Adding Firewall rule for port 22
Write-Host "Setting up firewall rules"
Write-Host "Setting up firewall rules..."
$firewallRule = (Get-NetFirewallRule -Name 'sshd').Enabled
if ($firewallRule) {
Write-Host "Firewall rule for OpenSSH Server (sshd) already exists."

View File

@@ -21,7 +21,7 @@ function Invoke-WinUtilScript {
)
try {
Write-Host "Running Script for $name"
Write-Host "Running Script for $Name"
Invoke-Command $scriptblock -ErrorAction Stop
} catch [System.Management.Automation.CommandNotFoundException] {
Write-Warning "The specified command was not found."
@@ -37,7 +37,7 @@ function Invoke-WinUtilScript {
Write-Warning $PSItem.Exception.message
} catch {
# Generic catch block to handle any other type of exception
Write-Warning "Unable to run script for $name due to unhandled exception"
Write-Warning "Unable to run script for $Name due to unhandled exception."
Write-Warning $psitem.Exception.StackTrace
}

View File

@@ -60,7 +60,7 @@ function Invoke-WinUtilTweaks {
$changeservice = $false
}
} catch [System.ServiceProcess.ServiceNotFoundException] {
Write-Warning "Service $($psitem.Name) was not found"
Write-Warning "Service $($psitem.Name) was not found."
}
}
@@ -76,9 +76,9 @@ function Invoke-WinUtilTweaks {
if (($psitem.Path -imatch "hku") -and !(Get-PSDrive -Name HKU -ErrorAction SilentlyContinue)) {
$null = (New-PSDrive -PSProvider Registry -Name HKU -Root HKEY_USERS)
if (Get-PSDrive -Name HKU -ErrorAction SilentlyContinue) {
Write-Debug "HKU drive created successfully"
Write-Debug "HKU drive created successfully."
} else {
Write-Debug "Failed to create HKU drive"
Write-Debug "Failed to create HKU drive."
}
}
Set-WinUtilRegistry -Name $psitem.Name -Path $psitem.Path -Type $psitem.Type -Value $psitem.$($values.registry)

View File

@@ -7,5 +7,5 @@ function Invoke-WinUtilUninstallPSProfile {
Remove-Item $Profile
}
Write-Host "Successfully uninstalled CTT Powershell Profile" -ForegroundColor Green
Write-Host "Successfully uninstalled CTT PowerShell Profile." -ForegroundColor Green
}

View File

@@ -15,7 +15,7 @@ function Set-WinUtilDNS {
if($DNSProvider -eq "Default") {return}
try {
$Adapters = Get-NetAdapter | Where-Object {$_.Status -eq "Up"}
Write-Host "Ensuring DNS is set to $DNSProvider on the following interfaces"
Write-Host "Ensuring DNS is set to $DNSProvider on the following interfaces:"
Write-Host $($Adapters | Out-String)
Foreach ($Adapter in $Adapters) {
@@ -27,7 +27,7 @@ function Set-WinUtilDNS {
}
}
} catch {
Write-Warning "Unable to set DNS Provider due to an unhandled exception"
Write-Warning "Unable to set DNS Provider due to an unhandled exception."
Write-Warning $psitem.Exception.StackTrace
}
}

View File

@@ -31,7 +31,7 @@ function Set-WinUtilRegistry {
if(!(Test-Path 'HKU:\')) {New-PSDrive -PSProvider Registry -Name HKU -Root HKEY_USERS}
If (!(Test-Path $Path)) {
Write-Host "$Path was not found, Creating..."
Write-Host "$Path was not found. Creating..."
New-Item -Path $Path -Force -ErrorAction Stop | Out-Null
}
@@ -44,13 +44,13 @@ function Set-WinUtilRegistry {
Remove-ItemProperty -Path $Path -Name $Name -Force -ErrorAction Stop | Out-Null
}
} catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
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 [System.UnauthorizedAccessException] {
Write-Warning $psitem.Exception.Message
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning "Unable to set $Name due to unhandled exception."
Write-Warning $psitem.Exception.StackTrace
}
}

View File

@@ -30,13 +30,13 @@ function Set-WinUtilScheduledTask {
}
} catch [System.Exception] {
if($psitem.Exception.Message -like "*The system cannot find the file specified*") {
Write-Warning "Scheduled Task $name was not Found"
Write-Warning "Scheduled Task $Name was not found."
} else {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning "Unable to set $Name due to unhandled exception."
Write-Warning $psitem.Exception.Message
}
} catch {
Write-Warning "Unable to run script for $name due to unhandled exception"
Write-Warning "Unable to run script for $name due to unhandled exception."
Write-Warning $psitem.Exception.StackTrace
}
}

View File

@@ -31,9 +31,9 @@ Function Set-WinUtilService {
$service | Set-Service -StartupType $StartupType -ErrorAction Stop
}
} catch [System.ServiceProcess.ServiceNotFoundException] {
Write-Warning "Service $Name was not found"
Write-Warning "Service $Name was not found."
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning "Unable to set $Name due to unhandled exception."
Write-Warning $_.Exception.Message
}

View File

@@ -2,10 +2,10 @@ function Test-WinUtilPackageManager {
<#
.SYNOPSIS
Checks if Winget and/or Choco are installed
Checks if WinGet and/or Choco are installed
.PARAMETER winget
Check if Winget is installed
Check if WinGet is installed
.PARAMETER choco
Check if Chocolatey is installed
@@ -20,12 +20,12 @@ function Test-WinUtilPackageManager {
if ($winget) {
if (Get-Command winget -ErrorAction SilentlyContinue) {
Write-Host "===========================================" -ForegroundColor Green
Write-Host "--- Winget is installed ---" -ForegroundColor Green
Write-Host "--- WinGet is installed ---" -ForegroundColor Green
Write-Host "===========================================" -ForegroundColor Green
$status = "installed"
} else {
Write-Host "===========================================" -ForegroundColor Red
Write-Host "--- Winget is not installed ---" -ForegroundColor Red
Write-Host "--- WinGet is not installed ---" -ForegroundColor Red
Write-Host "===========================================" -ForegroundColor Red
$status = "not-installed"
}

View File

@@ -3,13 +3,13 @@ Function Update-WinUtilProgramWinget {
<#
.SYNOPSIS
This will update all programs using Winget
This will update all programs using WinGet
#>
[ScriptBlock]$wingetinstall = {
$host.ui.RawUI.WindowTitle = """Winget Install"""
$host.ui.RawUI.WindowTitle = """WinGet Install"""
Start-Transcript "$logdir\winget-update_$dateTime.log" -Append
winget upgrade --all --accept-source-agreements --accept-package-agreements --scope=machine --silent

View File

@@ -3,20 +3,20 @@ function Invoke-WPFFixesWinget {
<#
.SYNOPSIS
Fixes Winget by running choco install winget
Fixes WinGet by running `choco install winget`
.DESCRIPTION
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
try {
Set-WinUtilTaskbaritem -state "Indeterminate" -overlay "logo"
Write-Host "==> Starting Winget Repair"
Write-Host "==> Starting WinGet Repair"
Install-WinUtilWinget
} catch {
Write-Error "Failed to install winget: $_"
Write-Error "Failed to install WinGet: $_"
Set-WinUtilTaskbaritem -state "Error" -overlay "warning"
} finally {
Write-Host "==> Finished Winget Repair"
Write-Host "==> Finished WinGet Repair"
Set-WinUtilTaskbaritem -state "None" -overlay "checkmark"
}

View File

@@ -14,7 +14,7 @@ function Invoke-WPFInstall {
}
if ($PackagesToInstall.Count -eq 0) {
$WarningMsg = "Please select the program(s) to install or upgrade"
$WarningMsg = "Please select the program(s) to install or upgrade."
[System.Windows.MessageBox]::Show($WarningMsg, $AppTitle, [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Warning)
return
}

View File

@@ -278,7 +278,7 @@ foreach ($itemName in $tweakNames) {
if ($item.registry) {
$content += "`r`n## Registry Changes`r`n`r`n"
$content += "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.`r`n`r`n"
$content += "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.`r`n`r`n"
$content += "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).`r`n"
}
}