Compare commits

...

56 Commits

Author SHA1 Message Date
Gabi
29efb989bd Fix Links (#3965)
* Fix Links

* Update tweaks.json

* Update tweaks.json

* Update tweaks.json
2026-01-30 15:32:11 -06:00
Sean
99eb70d81b Docs, Winutil website update (#3947)
* Updated winutil website

add git ignore to not upload unnecessarily file. i have also updated microwin docs and added a copyright info to the footer

* Update _index.md

* Update KnownIssues.md

* Update links

update all the links for github to the corresponding pages. i have kept the original links aswell but commented out

* update hugo workflow to use version 0.147.0

* Update en.yaml

* update hugo toml to get rid off powered by

* Update docs.yaml

* Update KnownIssues.md

* Update KnownIssues.md

* Update KnownIssues.md

* Update compatibility note for MicroWin and Ventoy

* removed quad 9 dns

* fixed all the incorrect code block in markdown file

* Replace hardcoded page lists with auto-discovery shortcode

Created a new shortcode at docs/layouts/shortcodes/autolinks.html. This enables auto-discovery when creating new Markdown files, streamlining the workflow for future documentation updates.

* updated os requirements
2026-01-29 13:59:26 -06:00
Gabi
9013753d88 Remove snap assists toggles (#3954)
* Remove snap assists toggle

* Remove more snap stuff
2026-01-28 16:03:26 -06:00
Gabi
8ad96a9b6e Update tweaks.json (#3956) 2026-01-28 16:01:35 -06:00
titus
8ed3a31424 auto format and make categories for releases 2026-01-28 12:32:40 -06:00
titus
424d4030c1 add Gabi to close issues command 2026-01-28 12:14:01 -06:00
titus
f88c9be70d u 2026-01-28 11:49:50 -06:00
titus
bc4cd84127 update label pr 2026-01-28 11:47:41 -06:00
titus
54b4bcdda1 fix perms 2026-01-28 11:44:38 -06:00
Gabi
c5c23d8d18 Update Compile.ps1 (#3914) 2026-01-28 11:37:53 -06:00
Gabi
28e84af33d Update tweaks.json (#3910) 2026-01-28 11:33:14 -06:00
Gabi
832af914e9 Update Microwin-NewFirstRun.ps1 (#3938) 2026-01-28 11:26:44 -06:00
Bagus Nugroho Budi Nurtomo
6d9ed9026d Disable Brave Stats Ping (#3951)
Signed-off-by: Bagus Nurtomo <bagusthanatos@gmail.com>
2026-01-28 11:23:33 -06:00
Gabi
9e877afe0e Update Services.md (#3950) 2026-01-28 11:21:56 -06:00
titus
0c0ced381a UPDATE CODEOWNERS 2026-01-28 11:21:06 -06:00
Chris Titus
8ebd127857 add flush dns (#3953) 2026-01-28 11:17:06 -06:00
Sean
25a392877f Update inputXML.xaml (#3943) 2026-01-28 11:09:01 -06:00
Gabi
ef2c91b616 Add some apps from #1782 (#3948)
* Add imhex (Hex Editor)

* Add ffmpeg
2026-01-28 11:06:47 -06:00
Gabi
b52ead87f4 Delete orig-services.txt (#3949) 2026-01-28 11:05:29 -06:00
titus
2dcfc2b109 auto-label and fix pr template 2026-01-28 11:03:02 -06:00
Akhil Kumar Achanta
59a9c59064 Fix/issue 3815 (#3836)
* Fix: retry password prompt on failure to prevent script halting

* Update Invoke-WPFInstall.ps1

* format fix

* fix: change RealTimeIsUniversal to QWord for correct UTC time sync

---------

Co-authored-by: Chris Titus <contact@christitus.com>
Co-authored-by: Chris Titus Tech <dfm.titus@gmail.com>
2026-01-27 13:31:55 -06:00
Gabi
fcc57fde50 Add back Remove OneDrive (#3920)
* Update tweaks.json

* Create RemoveOneDrive.md

* Update _index.md

* Update _index.md

* Update _index.md

* Update tweaks.json

* Update tweaks.json

* Update tweaks.json

* Update RemoveOneDrive.md

* Update tweaks.json

* Update RemoveOneDrive.md

* Update tweaks.json

* Update RemoveOneDrive.md

* Update tweaks.json

* Update RemoveOneDrive.md

* Update tweaks.json

* Update RemoveOneDrive.md
2026-01-27 13:24:17 -06:00
Gabi
06e5477d0e Remove-Edge (#3913)
* Update tweaks.json

* Create Invoke-WinUtilRemoveEdge.ps1

* Update and rename EdgeUninstall.md to RemoveEdge.md

* Update Invoke-WinUtilRemoveEdge.ps1

* Update RemoveEdge.md

* Update Invoke-WinUtilRemoveEdge.ps1

* Update RemoveEdge.md

* Update Invoke-WinUtilRemoveEdge.ps1

* Update RemoveEdge.md

* Update Invoke-WinUtilRemoveEdge.ps1

* Update RemoveEdge.md

* Update Invoke-WinUtilRemoveEdge.ps1

* Update Invoke-WinUtilRemoveEdge.ps1

* Update RemoveEdge.md
2026-01-27 13:11:30 -06:00
CodingWonders
a5271597e9 [Fix] Force WinGet source (#3918)
* [Fix] Force WinGet source

* Force WinGet source for uninstall
2026-01-27 13:03:56 -06:00
Chris Titus
d841792f8d add orig-services post tweaks 2026-01-27 12:30:40 -06:00
Gabi
132260ab96 Fix #3876 Maybe (#3929)
* Update tweaks.json

* Update tweaks.json

* Update config/tweaks.json

Co-authored-by: Chris Titus <contact@christitus.com>

* Update tweaks.json

---------

Co-authored-by: Chris Titus <contact@christitus.com>
2026-01-27 12:29:21 -06:00
ChrisTitusTech
919b2e0b8f Deploying to main from @ ChrisTitusTech/winutil@22e083182d 🚀 2026-01-22 15:40:54 +00:00
regularentropy
22e083182d fix: change feature update delay from 2 years to 365 days (#3927) 2026-01-21 22:55:50 -06:00
Gabi
2ec37f952a Update _index.md (#3912) 2026-01-21 22:54:20 -06:00
CodingWonders
aa719b49bf [MicroWin] 2026 Update (#3837)
* New reporting tool

* Why did we EVER need to load the component store?

* Up the execution policy for default PWSH sessions

This is required to run the diagnostics script, and any script that either we create here, or the user creates later. At least we don't go too wild and use unrestricted... we use something more "safe"

* Force Panther Setup instead of MoSetup

This will increase reliability and performance. Screw the Windows 8 installer, we're back with what was used on Windows 7!

Anyway, there are problems with the new installer:

1. It is slow at everything. Some people did benchmarks of both installers. MoSetup lost to Panther (ofc). Source: https://www.reddit.com/r/Windows11/comments/1kmjavl/i_made_a_small_test_comparing_which_one_installs/
2. It is unreliable. The "Install driver to show hardware" screen that appears in some systems AND in PXE/WDS for Server 2025 is possibly, and simply, due to Setup not being able to find the install image. From BlueBox.log in MoSetup:

...
2025-12-21 10:05:43: Creating path (with ACL): [X:\$WINDOWS.~BT]...
2025-12-21 10:05:43: Creating path: [X:\$WINDOWS.~BT\Sources]...
2025-12-21 10:05:43: CBootScenarioCtrl::PopulateWorkingDir: Install.wim/swm/esd was not found!
...

Other contributors in the CTT community stated similar unreliability with borked installs.

I'm pretty sure this change will benefit everyone. We'll see how long it lasts before Microsoft f's it up.

* Improve reporting tool

Display appx package dependency full names

* Rework ADK detection

* Add revamped detection for ISO creation

* File Explorer ain't broken anymore on 26200.7462

Those incompetent developers changed WindowsAppRuntime.CBS to WindowsAppRuntime.CBS.1.6 circa 10.0.26200.7462. No wonder why direct downloads were not causing this issue; they are still based on 10.0.26200.6584. The MCT, on the other hand...

* Patch maximum version boundary

Apparently they fixed that in November. Expanding the amd64_winappsdk-cbs-stable component manifest to a XML file reveals the dark secret:

  <registryKeys>
    <registryKey keyName="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\InboxApplications\Microsoft.WindowsAppRuntime.CBS.1.6_6000.653.2246.100_x64__8wekyb3d8bbwe">
      <registryValue name="Path" valueType="REG_SZ" value="$(runtime.windows)\SystemApps\Microsoft.WindowsAppRuntime.CBS_8wekyb3d8bbwe\AppxManifest.xml" />
      <securityDescriptor name="REGKEY_APPXALLUSERSTORE_SDDL" />
    </registryKey>
    <registryKey keyName="HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\Config\Microsoft.WindowsAppRuntime.CBS.1.6_8wekyb3d8bbwe">
      <registryValue name="SetupPhase" valueType="REG_DWORD" value="0x00000427" />
    </registryKey>
    <registryKey keyName="HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Appx\AppxAllUserStore\UpdatedApplications\Microsoft.WindowsAppRuntime.CBS.1.6_8wekyb3d8bbwe" />
  </registryKeys>

This is not a problem in .6899 because we don't have amd64_winappsdk-cbs-stable, but a vnext counterpart. But, at this point, why bother checking with that? MCT will not bundle this update with the image!

* Default to showing file extensions

Apart from a security improvement (let's remember ILOVEYOU from 2000), it's also a QoL.

* Fix key for color modes

Color mode settings are saved per-user, not system-wide. So HKLM\SOFTWARE is not our solution. HKCU is, and is mapped to \Users\Default\NTUSER.DAT

* Move color mode from offline servicing to firstrun

* Drop build number by 100

* Update Invoke-Microwin.ps1 (#15)

* Revert "Update Invoke-Microwin.ps1 (#15)"

This reverts commit 88f8a3031b.

* Keep trying to commit and unmount images

* Consistent REG ADD /F /V...

Some issues happen with REG and strings if you put /f at the end... move it to the beginning, where it doesn't conflict with anything.

* Rework stub path reg value set

This works on both Windows 11 and Windows 10. It didn't work on Win10 before; it should work now

* Remove copy link step

We no longer do this

* Move Copy-Files to microwin folder

Only microwin calls this function; it's better if we place this script in that folder

* Add Create Bootable USB (#18)

* Add Create Bootable USB

* Apply suggestion from @CodingWonders

---------

Co-authored-by: CodingWonders <101426328+CodingWonders@users.noreply.github.com>

* Download ADK to get oscdimg if not to download on GitHub

If we don't download OSCDIMG from GitHub, because we now use ADK kits roots detection to get installed copies of the ADK and oscdimg, we just download the Deployment Tools. This is only 100 MB once fully installed, and removes the need to install Chocolatey.

One caveat is that, on 64-bit systems, the script will output "Could not find ADK" once. This is normal as it does checks on both regular SOFTWARE and WOW6432Node, and it's able to pick it on the latter. If it isn't found anywhere, that message will appear twice.

* Make indentation more consitent in bootable USB func.

* Initialize petoolspath variable

* Remove temporary adksetup on completion

* Fix whitespace

* Remove unnecessary comments and revamp admin check

* Revert "Add Create Bootable USB (#18)"

This reverts commit 64babfe986.

* Remove reporting tool creation

The reporting tool is now hosted on a separate repo. The script itself can be run anywhere, not just in microwin, so...

* Some formatting change here

* Remove copy to ventoy option

* Fix some more indents

* Add Description that ISO automatically removes Win11 Requirements

* Additional things

- WPBT done by defaults
- Skip Logon Animation
- Remove convert to ESD and Upgrade to Win11 as Win10 is no longer supported

* First attempt at OSCDIMG autodownload

* No more custom ScratchPaths!

Time to get rid of that mess and just use %TEMP%.

All of these minor changes were made on a Server 2K8R2 VM.

* Redetect ADK/OSCDIMG after autodownload

* Leave ADK reg query error to debug only

---------

Co-authored-by: Real-MullaC <callumjanes2007new+github@gmail.com>
2026-01-15 14:48:11 -06:00
ChrisTitusTech
e9a6cd32d8 Deploying to main from @ ChrisTitusTech/winutil@b02c7f3eab 🚀 2026-01-15 15:38:18 +00:00
Chris Titus
b02c7f3eab Merge branch 'main' of https://github.com/ChrisTitusTech/winutil 2026-01-14 17:27:19 -06:00
Chris Titus
eb29dfced8 update menu 2026-01-14 17:27:17 -06:00
Chris Titus
f9b01fdc81 Update README to remove contribution note
Removed note about contributing to documentation.
2026-01-14 17:22:27 -06:00
Chris Titus
61a80e270d Expand docs 2026-01-14 17:20:41 -06:00
Gabi
a31c9cb235 Update-WPFTweaksRemoveCopilot (#3907)
* Update tweaks.json

* Update tweaks.json

* Update tweaks.json

* Update config/tweaks.json

Co-authored-by: Yuki <65764619+YukiNagat0@users.noreply.github.com>

* Remove comment on EOL trick for AppxPackages

Removed unnecessary comment about tricking Windows for package uninstallation.

* Fix escape characters in registry path

---------

Co-authored-by: Chris Titus <contact@christitus.com>
Co-authored-by: Yuki <65764619+YukiNagat0@users.noreply.github.com>
2026-01-14 17:01:09 -06:00
Gabi
2587a98848 Remove-WPFToggleTaskbarWidgets (#3906)
* Update tweaks.json

* Update tweaks.json
2026-01-14 16:24:28 -06:00
Gabi
a5cf3a2ba7 Update-WPFTweaksWPBT (#3905)
* Update tweaks.json

* Update preset.json

* Update tweaks.json
2026-01-14 16:23:23 -06:00
Gabi
f59598cf07 Update-docs (#3889)
* Update _index.md

* Rename AH.md to Activity.md

* Update Activity.md

* Update Activity.md

* Update Activity.md

* Update ConsumerFeatures.md

* Update and rename DVR.md to GameDVR.md

* Update DeleteTempFiles.md

* Delete docs/content/dev/tweaks/Essential-Tweaks/DisableRecall.md

* Update _index.md

* Update _index.md

* Update DiskCleanup.md

* Update EdgeDebloat.md

* Update Activity.md

* Update EndTaskOnTaskbar.md

* Update ConsumerFeatures.md

* Update GameDVR.md

* Update and rename Hiber.md to Hibernation.md

* Delete docs/content/dev/tweaks/Essential-Tweaks/Home.md

* Update IPv46.md

* Update LaptopHibernation.md

* Update and rename Loc.md to Location.md

* Delete docs/content/dev/tweaks/Essential-Tweaks/Powershell7.md

* Update Powershell7Tele.md

* Update RestorePoint.md

* Update Services.md

* Update Storage.md

* Update Tele.md

* Rename Tele.md to Telemetry.md

* Delete docs/content/dev/tweaks/Essential-Tweaks/Wifi.md

* Update _index.md

* Update _index.md

* Update _index.md

* Update _index.md

* Update and rename RemoveUltPerf.md to RemoveProfile.md

* Delete docs/content/dev/tweaks/Performance-Plans/AddUltPerf.md

* Rename RemoveProfile.md to Profile.md

* Update _index.md

* Update _index.md

* Update _index.md

* Update BingSearch.md

* Update DarkMode.md

* Update DetailedBSoD.md

* Update HiddenFiles.md

* Update MouseAcceleration.md

* Update NumLock.md

* Update ShowExt.md

* Update SnapFlyout.md

* Update SnapSuggestion.md

* Update SnapWindow.md

* Update StickyKeys.md

* Update TaskView.md

* Update TaskbarAlignment.md

* Update TaskbarSearch.md

* Update TaskbarWidgets.md

* Update VerboseLogon.md

* Update _index.md

* Update _index.md

* Update _index.md

* Update BlockAdobeNet.md

* Update DeBloat.md

* Delete docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/DebloatAdobe.md

* Update DisableBGapps.md

* Update DisableFSO.md

* Delete docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/DisableLMS1.md

* Update DisableNotifications.md

* Update and rename Disableipsix.md to DisableIPv6.md

* Update Display.md

* Update OOSUbutton.md

* Delete docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/RemoveCopilot.md

* Update and rename RemoveEdge.md to EdgeUninstall.md

* Update and rename RemoveHomeGallery.md to RemoveHome.md

* Create RemoveGallery.md

* Delete docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/RemoveOnedrive.md

* Update RightClickMenu.md

* Update Teredo.md

* Update UTC.md

* Update Undoall.md

* Update button.md

* Delete docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/changedns.md

* Delete docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/button.md

* Delete docs/content/dev/tweaks/z--Advanced-Tweaks---CAUTION/Undoall.md

* Update _index.md

* Update _index.md

* Update _index.md

* Update _index.md

* Update DisableLegacyRecovery.md

* Delete docs/content/dev/features/Features/DisableSearchSuggestions.md

* Update EnableLegacyRecovery.md

* Update DisableLegacyRecovery.md

* Delete docs/content/dev/features/Features/EnableSearchSuggestions.md

* Delete docs/content/dev/features/Features/Install.md

* Update RegBackup.md

* Update Sandbox.md

* Update dotnet.md

* Update hyperv.md

* Update legacymedia.md

* Update nfs.md

* Update wsl.md

* Update _index.md

* Update _index.md

* Update _index.md

* Update Autologin.md

* Update and rename DISM.md to CorruptionScan.md

* Update Network.md

* Update RunAdobeCCCleanerTool.md

* Update Update.md

* Update Winget.md

* Update _index.md

* Update _index.md

* Update _index.md

* Update control.md

* Update network.md

* Update power.md

* Update printer.md

* Update region.md

* Update sound.md

* Update system.md

* Update user.md

* Update _index.md

* Update _index.md

* Update _index.md

* Delete docs/assets/images/Compile.png

* Add files via upload

* Update KnownIssues.md

* Update _index.md

* Update _index.md

* Update _index.md

* Update _index.md

* Update _index.md

* Update _index.md

* Update _index.md

* Delete docs/archetypes directory

* Delete docs/i18n directory

* Delete docs/assets/images/Install/Installation-completion.png

* Delete docs/assets/images/Install/track-progress.png

* Delete docs/assets/images/microwin/dism++_drivercontrol.png

* Delete docs/assets/images/microwin/dism++_driverexport.png

* Delete docs/assets/images/microwin/dt_activeinst.png

* Delete docs/assets/images/microwin/dt_exportdrvs.png

* Delete docs/assets/images/microwin/dt_exporttarget.png

* Rename microwin-customuser-dark.png to microwin-user-dark.png

* Rename microwin-customuser-light.png to microwin-user-light.png

* Delete docs/assets/images/microwin/microwin-downloader-dark.png

* Delete docs/assets/images/microwin/microwin-downloader-light.png

* Delete docs/assets/images/microwin/microwin-screen-dark.png

* Delete docs/assets/images/microwin/microwin-screen-full-dark.png

* Delete docs/assets/images/microwin/microwin-screen-full-light.png

* Delete docs/assets/images/microwin/microwin-screen-light.png

* Delete docs/assets/images/microwin/microwin-skuselect-dark.png

* Delete docs/assets/images/microwin/microwin-skuselect-light.png

* Delete docs/assets/images/microwin/microwin-user-dark.png

* Delete docs/assets/images/microwin/microwin-user-light.png

* Delete docs/assets/images/microwin/rapr_folderpicker.png

* Delete docs/assets/images/microwin/rapr_menu.png

* Create 4

* Add files via upload

* Delete docs/assets/images/microwin/4

* Delete docs/assets/images/microwin/Configure-Windows-ISO.png

* Add files via upload

* Delete docs/assets/images/microwin/Configure-Windows-ISO.png

* Add files via upload

* Create default.md

* Fix formatting in automation user guide

* Fix typo in Edge uninstall link text

* Fix typo in DeBloat.md description

Corrected a typo in the description of the WPFTweaksDeBloat section.

* Update links for Delete Temp Files and Activity History

* fix bad urls

* update typos

---------

Co-authored-by: Chris Titus <contact@christitus.com>
2026-01-14 12:28:45 -06:00
ozgur
66eaaaf9bf Fixes to Get installed tweaks does not handle <RemoveEntry> value (#3892) 2026-01-14 11:36:45 -06:00
dependabot[bot]
1b19311c2e Bump actions/upload-pages-artifact from 3 to 4 (#3902)
Bumps [actions/upload-pages-artifact](https://github.com/actions/upload-pages-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-pages-artifact/releases)
- [Commits](https://github.com/actions/upload-pages-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-pages-artifact
  dependency-version: '4'
  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-01-14 11:34:22 -06:00
dependabot[bot]
e193eca64d Bump actions/checkout from 4 to 6 (#3901)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v4...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  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-01-14 11:33:54 -06:00
dependabot[bot]
df0b511a24 Bump actions/cache from 4 to 5 (#3900)
Bumps [actions/cache](https://github.com/actions/cache) from 4 to 5.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-version: '5'
  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-01-14 11:33:24 -06:00
HapnanAR
a017854a55 Update SyncTrayzor entry in applications.json with new GitHub link and winget package id (#3893) 2026-01-10 12:24:40 -06:00
HapnanAR
85f652ad6f Update Thorium entry in for Chocolatey package (#3891) 2026-01-09 11:40:30 -06:00
Gabi
38cec9bf3f Update windev.ps1 (#3886) 2026-01-09 11:31:42 -06:00
Chris Titus Tech
a20719b65b update PR template 2026-01-08 09:08:28 -06:00
Chris Titus Tech
148360305c Fix whitespace and compile formatting 2026-01-08 09:01:34 -06:00
Gabi
644fa3975a Update applications.json (#3885) 2026-01-08 14:57:39 -06:00
Gabi
2e4124b903 Update-WPFTweaksServices (#3880)
* Fix some OriginalType'a in WPFTweaksServices

* Update tweaks.json
2026-01-08 14:56:58 -06:00
Gabi
fac0d359f1 Update-WPFTweaksTele (#3878)
* Update tweaks.json

* Update tweaks.json
2026-01-08 14:54:51 -06:00
Gabi
fe28e4064f Update-tweaks-order (#3852)
* Update tweaks.json

* Update tweaks.json

* Update tweaks.json

* Update tweaks.json

* Update tweaks.json

* Update tweaks.json

* Update tweaks.json

* Update tweaks.json

* Update tweaks.json
2026-01-08 14:38:33 -06:00
Gabi
1734241568 Update-Install-WinUtilChoco.ps1 (#3846)
* Update Install-WinUtilChoco.ps1

* Update Install-WinUtilChoco.ps1

* Update Install-WinUtilChoco.ps1

* Update functions/private/Install-WinUtilChoco.ps1

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2026-01-08 14:37:37 -06:00
Gabi
e008f63674 Update Invoke-WinUtilUninstallPSProfile.ps1 (#3845)
* Update Invoke-WinUtilUninstallPSProfile.ps1

* Update Invoke-WinUtilUninstallPSProfile.ps1

* Update Invoke-WinUtilUninstallPSProfile.ps1

* Update Invoke-WinUtilUninstallPSProfile.ps1
2026-01-08 14:34:29 -06:00
Gabi
3af367ca28 Update Invoke-WinUtilInstallPSProfile.ps1 (#3844)
* Update Invoke-WinUtilInstallPSProfile.ps1

* Update Invoke-WinUtilInstallPSProfile.ps1
2026-01-08 14:33:35 -06:00
Gabi
ea8e178964 Update-windev.ps1 (#3843)
* Update windev.ps1

* Update windev.ps1

* Update windev.ps1

* Update windev.ps1

* Update windev.ps1

* Update windev.ps1
2026-01-08 14:20:38 -06:00
175 changed files with 5170 additions and 12775 deletions

61
.github/CODEOWNERS vendored
View File

@@ -1,59 +1,2 @@
# This is a comment. # Chris rules EVERYTHING (including paths listed below)
# Each line is a file pattern followed by one or more owners. * @ChrisTitusTech
# These owners will be the default owners for everything in
# the repo. Unless a later match takes precedence,
# @global-owner1 and @global-owner2 will be requested for
# review when someone opens a pull request.
* @ChrisTitusTech
# Order is important; the last matching pattern takes the most
# precedence. When someone opens a pull request that only
# modifies JS files, only @js-owner and not the global
# owner(s) will be requested for a review.
# *.js @js-owner #This is an inline comment.
# You can also use email addresses if you prefer. They'll be
# used to look up users just like we do for commit author
# emails.
# *.go docs@example.com
# Teams can be specified as code owners as well. Teams should
# be identified in the format @org/team-name. Teams must have
# explicit write access to the repository. In this example,
# the octocats team in the octo-org organization owns all .txt files.
# *.txt @octo-org/octocats
# In this example, @doctocat owns any files in the build/logs
# directory at the root of the repository and any of its
# subdirectories.
# /build/logs/ @doctocat
# The `docs/*` pattern will match files like
# `docs/getting-started.md` but not further nested files like
# `docs/build-app/troubleshooting.md`.
# docs/* docs@example.com
# In this example, @octocat owns any file in an apps directory
# anywhere in your repository.
# apps/ @octocat
# In this example, @doctocat owns any file in the `/docs`
# directory in the root of your repository and any of its
# subdirectories.
# /docs/ @doctocat
# In this example, any change inside the `/scripts` directory
# will require approval from @doctocat or @octocat.
# /scripts/ @doctocat @octocat
# In this example, @octocat owns any file in a `/logs` directory such as
# `/build/logs`, `/scripts/logs`, and `/deeply/nested/logs`. Any changes
# in a `/logs` directory will require approval from @octocat.
# **/logs @octocat
# In this example, @octocat owns any file in the `/apps`
# directory in the root of your repository except for the `/apps/github`
# subdirectory, as its owners are left empty.
# /apps/ @octocat
# /apps/github

View File

@@ -4,30 +4,19 @@
- [ ] New feature - [ ] New feature
- [ ] Bug fix - [ ] Bug fix
- [ ] Documentation update - [ ] Documentation update
- [ ] Refactoring
- [ ] Hotfix - [ ] Hotfix
- [ ] Security patch
- [ ] UI/UX improvement - [ ] UI/UX improvement
<!-- This automatically adds labels to your PR based on the selections above. -->
## Description ## Description
<!--[Provide a detailed explanation of the changes you have made. Include the reasons behind these changes and any relevant context. Link any related issues.]--> <!--[Provide a detailed explanation of the changes you have made. Include the reasons behind these changes and any relevant context. Link any related issues.]-->
## Testing
<!--[Detail the testing you have performed to ensure that these changes function as intended. Include information about any added tests.]-->
## Impact
<!--[Discuss the impact of your changes on the project. This might include effects on performance, new dependencies, or changes in behaviour.]-->
## Issue related to PR ## Issue related to PR
<!--[What issue/discussion is related to this PR (if any)]--> <!--[What issue/discussion is related to this PR (if any)]-->
- Resolves # - Resolves #
## Additional Information
<!--[Any additional information that reviewers should be aware of.]-->
## Checklist ## Checklist
- [ ] My code adheres to the coding and style guidelines of the project. - [ ] My code adheres to the coding and style guidelines of the project.
- [ ] I have performed a self-review of my own code.
- [ ] I have commented my code, particularly in hard-to-understand areas. - [ ] I have commented my code, particularly in hard-to-understand areas.
- [ ] I have made corresponding changes to the documentation. - [ ] I have made corresponding changes to the documentation.
- [ ] My changes generate no errors/warnings/merge conflicts.

View File

@@ -4,15 +4,16 @@ categories:
labels: labels:
- 'feature' - 'feature'
- 'enhancement' - 'enhancement'
- 'new feature'
- title: '🐛 Bug Fixes' - title: '🐛 Bug Fixes'
labels: labels:
- 'fix' - 'hotfix'
- 'bugfix' - 'bugfix'
- 'bug' - 'bug'
- title: '📚 Documentation' - title: '📚 Documentation'
label: 'documentation' label: 'documentation'
- title: '🔒 Security' - title: '🎨 UI/UX Improvements'
label: 'security' label: 'ui update'
change-template: '- $TITLE @$AUTHOR (#$NUMBER)' change-template: '- $TITLE @$AUTHOR (#$NUMBER)'
template: | template: |
## Changes ## Changes
@@ -31,7 +32,7 @@ autolabeler:
- '/fix\/.+/' - '/fix\/.+/'
title: title:
- '/fix/i' - '/fix/i'
- label: 'enhancement' - label: 'new feature'
branch: branch:
- '/feature\/.+/' - '/feature\/.+/'
body: body:
@@ -40,9 +41,6 @@ autolabeler:
files: files:
- '**/*.md' - '**/*.md'
- 'docs/**/*' - 'docs/**/*'
- label: 'security'
branch:
- '/security\/.+/'
replacers: replacers:
- search: /"/g - search: /"/g
replace: '' replace: ''

View File

@@ -7,7 +7,7 @@ on:
branches: branches:
- main - main
paths: paths:
- 'docs/**' # ONLY triggers if files in the 'docs' folder are changed - "docs/**" # ONLY triggers if files in the 'docs' folder are changed
# Allows you to run this workflow manually from the Actions tab # Allows you to run this workflow manually from the Actions tab
workflow_dispatch: workflow_dispatch:
@@ -34,7 +34,7 @@ jobs:
build: build:
runs-on: ubuntu-latest runs-on: ubuntu-latest
env: env:
HUGO_VERSION: 0.145.0 HUGO_VERSION: 0.147.7
HUGO_ENVIRONMENT: production HUGO_ENVIRONMENT: production
TZ: America/Chicago TZ: America/Chicago
steps: steps:
@@ -43,7 +43,7 @@ jobs:
wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \ wget -O ${{ runner.temp }}/hugo.deb https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_linux-amd64.deb \
&& sudo dpkg -i ${{ runner.temp }}/hugo.deb && sudo dpkg -i ${{ runner.temp }}/hugo.deb
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v6
with: with:
submodules: recursive submodules: recursive
fetch-depth: 0 fetch-depth: 0
@@ -54,13 +54,12 @@ jobs:
run: "cd docs && [[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true" run: "cd docs && [[ -f package-lock.json || -f npm-shrinkwrap.json ]] && npm ci || true"
- name: Cache Restore - name: Cache Restore
id: cache-restore id: cache-restore
uses: actions/cache/restore@v4 uses: actions/cache/restore@v5
with: with:
path: | path: |
${{ runner.temp }}/hugo_cache ${{ runner.temp }}/hugo_cache
key: hugo-${{ github.run_id }} key: hugo-${{ github.run_id }}
restore-keys: restore-keys: hugo-
hugo-
- name: Build with Hugo - name: Build with Hugo
run: | run: |
hugo \ hugo \
@@ -71,13 +70,13 @@ jobs:
--cacheDir "${{ runner.temp }}/hugo_cache" --cacheDir "${{ runner.temp }}/hugo_cache"
- name: Cache Save - name: Cache Save
id: cache-save id: cache-save
uses: actions/cache/save@v4 uses: actions/cache/save@v5
with: with:
path: | path: |
${{ runner.temp }}/hugo_cache ${{ runner.temp }}/hugo_cache
key: ${{ steps.cache-restore.outputs.cache-primary-key }} key: ${{ steps.cache-restore.outputs.cache-primary-key }}
- name: Upload artifact - name: Upload artifact
uses: actions/upload-pages-artifact@v3 uses: actions/upload-pages-artifact@v4
with: with:
path: ./docs/public path: ./docs/public

View File

@@ -67,7 +67,7 @@ jobs:
id: check_user id: check_user
if: env.command == 'true' if: env.command == 'true'
run: | run: |
ALLOWED_USERS=("ChrisTitusTech" "og-mrk" "Marterich" "MyDrift-user" "Real-MullaC" "CodingWonders") ALLOWED_USERS=("ChrisTitusTech" "og-mrk" "Marterich" "MyDrift-user" "Real-MullaC" "CodingWonders" "GabiNun")
if [[ " ${ALLOWED_USERS[@]} " =~ " ${{ github.event.comment.user.login }} " ]]; then if [[ " ${ALLOWED_USERS[@]} " =~ " ${{ github.event.comment.user.login }} " ]]; then
echo "user=true" >> $GITHUB_ENV echo "user=true" >> $GITHUB_ENV
else else

45
.github/workflows/label-pr.yaml vendored Normal file
View File

@@ -0,0 +1,45 @@
name: Label PRs by Type of Change
on:
pull_request_target:
types: [opened, edited, synchronize]
jobs:
label-pr:
runs-on: ubuntu-latest
permissions:
pull-requests: write
issues: write
contents: read # Often needed for github-script
steps:
- name: Check PR body for Type of Change
uses: actions/github-script@v7
with:
script: |
const prBody = context.payload.pull_request.body || '';
const labelsToAdd = [];
if (/\[x\]\s*New feature/i.test(prBody)) {
labelsToAdd.push('new feature');
}
if (/\[x\]\s*Bug fix/i.test(prBody)) {
labelsToAdd.push('bug');
}
if (/\[x\]\s*Documentation update/i.test(prBody)) {
labelsToAdd.push('documentation');
}
if (/\[x\]\s*Hotfix/i.test(prBody)) {
labelsToAdd.push('hotfix');
}
if (/\[x\]\s*UI\/UX improvement/i.test(prBody)) {
labelsToAdd.push('ui update');
}
if (labelsToAdd.length > 0) {
await github.rest.issues.addLabels({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.pull_request.number,
labels: labelsToAdd
});
}

View File

@@ -56,7 +56,7 @@ jobs:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with: with:
config-name: release-drafter.yml config-name: release-drafter.yml
version: ${{ env.VERSION }} # Pass the version variable version: ${{ env.VERSION }}
- name: Create and Upload Release - name: Create and Upload Release
id: create_release id: create_release

7
.gitignore vendored
View File

@@ -55,4 +55,9 @@ winutil.ps1
binary/ binary/
.preprocessor_hashes.json .preprocessor_hashes.json
# Hugo Files
docs/public/
docs/.hugo_build.lock
docs/resources/

View File

@@ -36,15 +36,6 @@ function Update-Progress {
Write-Progress -Activity $Activity -Status $StatusMessage -PercentComplete $Percent Write-Progress -Activity $Activity -Status $StatusMessage -PercentComplete $Percent
} }
$header = @"
################################################################################################################
### ###
### WARNING: This file is automatically generated DO NOT modify this file directly as it will be overwritten ###
### ###
################################################################################################################
"@
Update-Progress "Pre-req: Running Preprocessor..." 0 Update-Progress "Pre-req: Running Preprocessor..." 0
# Dot source the 'Invoke-Preprocessing' Function from 'tools/Invoke-Preprocessing.ps1' Script # Dot source the 'Invoke-Preprocessing' Function from 'tools/Invoke-Preprocessing.ps1' Script
@@ -76,9 +67,6 @@ Invoke-Preprocessing -WorkingDir "$workingdir" -ExcludedFiles $excludedFiles -Pr
Update-Progress "Pre-req: Allocating Memory" 0 Update-Progress "Pre-req: Allocating Memory" 0
$script_content = [System.Collections.Generic.List[string]]::new() $script_content = [System.Collections.Generic.List[string]]::new()
Update-Progress "Adding: Header" 5
$script_content.Add($header)
Update-Progress "Adding: Version" 10 Update-Progress "Adding: Version" 10
$script_content.Add($(Get-Content "scripts\start.ps1").replace('#{replaceme}',"$(Get-Date -Format yy.MM.dd)")) $script_content.Add($(Get-Content "scripts\start.ps1").replace('#{replaceme}',"$(Get-Date -Format yy.MM.dd)"))

View File

@@ -39,9 +39,6 @@ If you have Issues, refer to [Known Issues](https://winutil.christitus.com/known
## 🎓 Documentation ## 🎓 Documentation
> [!NOTE]
> To contribute to the documentation, please visit [WinUtil Docs Repo](https://github.com/Chris-Titus-Docs/winutil-docs) for more info.
### [WinUtil Official Documentation](https://winutil.christitus.com/) ### [WinUtil Official Documentation](https://winutil.christitus.com/)
### [YouTube Tutorial](https://www.youtube.com/watch?v=6UQZ5oQg8XA) ### [YouTube Tutorial](https://www.youtube.com/watch?v=6UQZ5oQg8XA)
@@ -79,7 +76,7 @@ You'll see a new file named `winutil.ps1`, which's created by `Compile.ps1` scri
These are the sponsors that help keep this project alive with monthly contributions. These are the sponsors that help keep this project alive with monthly contributions.
<!-- sponsors --><a href="https://github.com/markamos"><img src="https:&#x2F;&#x2F;github.com&#x2F;markamos.png" width="60px" alt="User avatar: Mark Amos" /></a><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/TaNorbs"><img src="https:&#x2F;&#x2F;github.com&#x2F;TaNorbs.png" width="60px" alt="User avatar: Norbs" /></a><!-- sponsors --> <!-- sponsors --><a href="https://github.com/markamos"><img src="https:&#x2F;&#x2F;github.com&#x2F;markamos.png" width="60px" alt="User avatar: Mark Amos" /></a><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><!-- sponsors -->
## 🏅 Thanks to all Contributors ## 🏅 Thanks to all Contributors
Thanks a lot for spending your time helping Winutil grow. Thanks a lot! Keep rocking 🍻. Thanks a lot for spending your time helping Winutil grow. Thanks a lot! Keep rocking 🍻.

View File

@@ -552,6 +552,14 @@
"link": "https://espanso.org/", "link": "https://espanso.org/",
"winget": "Espanso.Espanso" "winget": "Espanso.Espanso"
}, },
"ffmpeg": {
"category": "Utilities",
"choco": "na",
"content": "eibol.FFmpegBatchAVConverter",
"description": "FFmpeg Batch AV Converter is a universal audio and video encoder, that allows to use the full potential of ffmpeg command line with a few mouse clicks in a convenient GUI with drag and drop, progress information.",
"link": "https://ffmpeg-batch.sourceforge.io/",
"winget": "eibol.FFmpegBatchAVConverter"
},
"falkon": { "falkon": {
"category": "Browsers", "category": "Browsers",
"choco": "falkon", "choco": "falkon",
@@ -912,6 +920,14 @@
"link": "https://www.cpuid.com/softwares/hwmonitor.html", "link": "https://www.cpuid.com/softwares/hwmonitor.html",
"winget": "CPUID.HWMonitor" "winget": "CPUID.HWMonitor"
}, },
"imhex": {
"category": "Development",
"choco": "na",
"content": "ImHex (Hex Editor)",
"description": "A modern, featureful Hex Editor for Reverse Engineers and Developers.",
"link": "https://imhex.werwolv.net/",
"winget": "WerWolv.ImHex"
},
"imageglass": { "imageglass": {
"category": "Multimedia Tools", "category": "Multimedia Tools",
"choco": "imageglass", "choco": "imageglass",
@@ -1774,7 +1790,7 @@
"content": "Python3", "content": "Python3",
"description": "Python is a versatile programming language used for web development, data analysis, artificial intelligence, and more.", "description": "Python is a versatile programming language used for web development, data analysis, artificial intelligence, and more.",
"link": "https://www.python.org/", "link": "https://www.python.org/",
"winget": "Python.Python.3.13" "winget": "Python.Python.3.14"
}, },
"qbittorrent": { "qbittorrent": {
"category": "Utilities", "category": "Utilities",
@@ -2085,8 +2101,8 @@
"choco": "synctrayzor", "choco": "synctrayzor",
"content": "SyncTrayzor", "content": "SyncTrayzor",
"description": "Windows tray utility / filesystem watcher / launcher for Syncthing", "description": "Windows tray utility / filesystem watcher / launcher for Syncthing",
"link": "https://github.com/canton7/SyncTrayzor/", "link": "https://github.com/GermanCoding/SyncTrayzor",
"winget": "SyncTrayzor.SyncTrayzor" "winget": "GermanCoding.SyncTrayzor"
}, },
"sqlmanagementstudio": { "sqlmanagementstudio": {
"category": "Microsoft Tools", "category": "Microsoft Tools",
@@ -2186,7 +2202,7 @@
}, },
"thorium": { "thorium": {
"category": "Browsers", "category": "Browsers",
"choco": "na", "choco": "thorium",
"content": "Thorium Browser AVX2", "content": "Thorium Browser AVX2",
"description": "Browser built for speed over vanilla chromium. It is built with AVX2 optimizations and is the fastest browser on the market.", "description": "Browser built for speed over vanilla chromium. It is built with AVX2 optimizations and is the fastest browser on the market.",
"link": "https://thorium.rocks/", "link": "https://thorium.rocks/",

View File

@@ -3,6 +3,7 @@
"WPFTweaksActivity", "WPFTweaksActivity",
"WPFTweaksConsumerFeatures", "WPFTweaksConsumerFeatures",
"WPFTweaksDisableExplorerAutoDiscovery", "WPFTweaksDisableExplorerAutoDiscovery",
"WPFTweaksWPBT",
"WPFTweaksDVR", "WPFTweaksDVR",
"WPFTweaksLocation", "WPFTweaksLocation",
"WPFTweaksServices", "WPFTweaksServices",
@@ -16,6 +17,7 @@
"Minimal": [ "Minimal": [
"WPFTweaksConsumerFeatures", "WPFTweaksConsumerFeatures",
"WPFTweaksDisableExplorerAutoDiscovery", "WPFTweaksDisableExplorerAutoDiscovery",
"WPFTweaksWPBT",
"WPFTweaksServices", "WPFTweaksServices",
"WPFTweaksTelemetry" "WPFTweaksTelemetry"
] ]

View File

@@ -28,7 +28,7 @@
"OriginalValue": "<RemoveEntry>" "OriginalValue": "<RemoveEntry>"
} }
], ],
"link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/ah" "link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/activity"
}, },
"WPFTweaksHiber": { "WPFTweaksHiber": {
"Content": "Disable Hibernation", "Content": "Disable Hibernation",
@@ -58,14 +58,14 @@
"UndoScript": [ "UndoScript": [
"powercfg.exe /hibernate on" "powercfg.exe /hibernate on"
], ],
"link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/hiber" "link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/hibernation"
}, },
"WPFTweaksLaptopHibernation": { "WPFTweaksLaptopHibernation": {
"Content": "Set Hibernation as default (good for laptops)", "Content": "Set Hibernation as default (good for laptops)",
"Description": "Most modern laptops have connected standby enabled which drains the battery, this sets hibernation as default which will not drain the battery. See issue https://github.com/ChrisTitusTech/winutil/issues/1399", "Description": "Most modern laptops have connected standby enabled which drains the battery, this sets hibernation as default which will not drain the battery. See issue https://github.com/ChrisTitusTech/winutil/issues/1399",
"category": "z__Advanced Tweaks - CAUTION", "category": "z__Advanced Tweaks - CAUTION",
"panel": "1", "panel": "1",
"Order": "a027_", "Order": "a030_",
"registry": [ "registry": [
{ {
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Power\\PowerSettings\\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0", "Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Power\\PowerSettings\\238C9FA8-0AAD-41ED-83F4-97BE242C8F20\\7bc4a2f9-d8fc-4469-b07b-33eb785aaca0",
@@ -144,7 +144,7 @@
"OriginalValue": "1" "OriginalValue": "1"
} }
], ],
"link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/loc" "link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/location"
}, },
"WPFTweaksServices": { "WPFTweaksServices": {
"Content": "Set Services to Manual", "Content": "Set Services to Manual",
@@ -221,7 +221,7 @@
{ {
"Name": "BthAvctpSvc", "Name": "BthAvctpSvc",
"StartupType": "Automatic", "StartupType": "Automatic",
"OriginalType": "Automatic" "OriginalType": "Manual"
}, },
{ {
"Name": "CDPSvc", "Name": "CDPSvc",
@@ -356,7 +356,7 @@
{ {
"Name": "InventorySvc", "Name": "InventorySvc",
"StartupType": "Manual", "StartupType": "Manual",
"OriginalType": "Manual" "OriginalType": "Automatic"
}, },
{ {
"Name": "IpxlatCfgSvc", "Name": "IpxlatCfgSvc",
@@ -366,7 +366,7 @@
{ {
"Name": "KeyIso", "Name": "KeyIso",
"StartupType": "Automatic", "StartupType": "Automatic",
"OriginalType": "Automatic" "OriginalType": "Manual"
}, },
{ {
"Name": "KtmRm", "Name": "KtmRm",
@@ -448,11 +448,6 @@
"StartupType": "Disabled", "StartupType": "Disabled",
"OriginalType": "Disabled" "OriginalType": "Disabled"
}, },
{
"Name": "Netlogon",
"StartupType": "Automatic",
"OriginalType": "Automatic"
},
{ {
"Name": "Netman", "Name": "Netman",
"StartupType": "Manual", "StartupType": "Manual",
@@ -671,7 +666,7 @@
{ {
"Name": "TermService", "Name": "TermService",
"StartupType": "Automatic", "StartupType": "Automatic",
"OriginalType": "Automatic" "OriginalType": "Manual"
}, },
{ {
"Name": "Themes", "Name": "Themes",
@@ -731,7 +726,7 @@
{ {
"Name": "VaultSvc", "Name": "VaultSvc",
"StartupType": "Automatic", "StartupType": "Automatic",
"OriginalType": "Automatic" "OriginalType": "Manual"
}, },
{ {
"Name": "W32Time", "Name": "W32Time",
@@ -828,11 +823,6 @@
"StartupType": "Automatic", "StartupType": "Automatic",
"OriginalType": "Automatic" "OriginalType": "Automatic"
}, },
{
"Name": "WlanSvc",
"StartupType": "Automatic",
"OriginalType": "Automatic"
},
{ {
"Name": "WpcMonSvc", "Name": "WpcMonSvc",
"StartupType": "Manual", "StartupType": "Manual",
@@ -876,7 +866,7 @@
{ {
"Name": "camsvc", "Name": "camsvc",
"StartupType": "Manual", "StartupType": "Manual",
"OriginalType": "Manual" "OriginalType": "Automatic"
}, },
{ {
"Name": "cloudidsvc", "Name": "cloudidsvc",
@@ -1150,6 +1140,13 @@
"Type": "DWord", "Type": "DWord",
"Value": "0", "Value": "0",
"OriginalValue": "<RemoveEntry>" "OriginalValue": "<RemoveEntry>"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\BraveSoftware\\Brave",
"Name": "BraveStatsPingEnabled",
"Type": "DWord",
"Value": "0",
"OriginalValue": "<RemoveEntry>"
} }
] ]
}, },
@@ -1158,7 +1155,7 @@
"Description": "Disables various telemetry options, popups, and other annoyances in Edge.", "Description": "Disables various telemetry options, popups, and other annoyances in Edge.",
"category": "z__Advanced Tweaks - CAUTION", "category": "z__Advanced Tweaks - CAUTION",
"panel": "1", "panel": "1",
"Order": "a022_", "Order": "a026_",
"registry": [ "registry": [
{ {
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\EdgeUpdate", "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\EdgeUpdate",
@@ -1174,6 +1171,13 @@
"Value": "0", "Value": "0",
"OriginalValue": "<RemoveEntry>" "OriginalValue": "<RemoveEntry>"
}, },
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "ofefcgjbeghpigppfmkologfjadafddi",
"Type": "String",
"Value": "1",
"OriginalValue": "<RemoveEntry>"
},
{ {
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge", "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "ShowRecommendationsEnabled", "Name": "ShowRecommendationsEnabled",
@@ -1435,13 +1439,6 @@
"Value": "0", "Value": "0",
"Type": "DWord" "Type": "DWord"
}, },
{
"Path": "HKCU:\\SOFTWARE\\Microsoft\\Siuf\\Rules",
"OriginalValue": "<RemoveEntry>",
"Name": "PeriodInNanoSeconds",
"Value": "<RemoveEntry>",
"Type": "QWord"
},
{ {
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\DataCollection", "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\DataCollection",
"OriginalValue": "<RemoveEntry>", "OriginalValue": "<RemoveEntry>",
@@ -1601,71 +1598,26 @@
" "
# Disable Defender Auto Sample Submission # Disable Defender Auto Sample Submission
Set-MpPreference -SubmitSamplesConsent 2 Set-MpPreference -SubmitSamplesConsent 2
$Memory = (Get-CimInstance Win32_PhysicalMemory | Measure-Object Capacity -Sum).Sum / 1KB
Set-ItemProperty -Path \"HKLM:\\SYSTEM\\CurrentControlSet\\Control\" -Name SvcHostSplitThresholdInKB -Value $Memory
" "
], ],
"link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/tele" "link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/telemetry"
}, },
"WPFTweaksDisableEdge": { "WPFTweaksRemoveEdge": {
"Content": "Disable Edge", "Content": "Remove Microsoft Edge",
"Description": "Prevent msedge.exe from running with explorer policies.", "Description": "Unblocks Microsoft Edge uninstaller restrictions than uses that uninstaller to remove Microsoft Edge",
"category": "z__Advanced Tweaks - CAUTION", "category": "z__Advanced Tweaks - CAUTION",
"panel": "1", "panel": "1",
"Order": "a023_", "Order": "a028_",
"registry": [
{
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer\\DisallowRun",
"Name": "DisableEdge",
"Type": "String",
"Value": "msedge.exe",
"OriginalValue": "<RemoveEntry>"
},
{
"Path": "HKLM:\\Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer",
"Name": "DisallowRun",
"Type": "DWord",
"Value": "1",
"OriginalValue": "<RemoveEntry>"
}
],
"link": ""
},
"WPFTweaksMakeEdgeUninstallable": {
"Content": "Make Edge Uninstallable via settings",
"Description": "Makes it so you can uninstall edge via settings > installed apps",
"category": "z__Advanced Tweaks - CAUTION",
"panel": "1",
"Order": "a023_",
"registry": [
{
"Path": "HKLM:\\SOFTWARE\\WOW6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\Microsoft Edge",
"Name": "NoRemove",
"Type": "Dword",
"Value": "0",
"OriginalValue": "1"
}
],
"InvokeScript": [ "InvokeScript": [
" "Invoke-WinUtilRemoveEdge"
$File = \"C:\\Windows\\System32\\IntegratedServicesRegionPolicySet.json\"
takeown /f $File
icacls $File /grant \"Administrators:(F)\"
$FileContent = Get-Content $File
$FileContent[7] = $FileContent[7] -replace \"disabled\", \"enabled\"
Set-Content $File $FileContent
"
], ],
"UndoScript": [ "UndoScript": [
" "
$File = \"C:\\Windows\\System32\\IntegratedServicesRegionPolicySet.json\" Write-Host 'Installing Microsoft Edge...'
winget install Microsoft.Edge --source winget
takeown /f $File
icacls $File /grant \"Administrators:(F)\"
$FileContent = Get-Content $File
$FileContent[7] = $FileContent[7] -replace \"enabled\", \"disabled\"
Set-Content $File $FileContent
" "
], ],
"link": "" "link": ""
@@ -1675,18 +1627,50 @@
"Description": "Essential for computers that are dual booting. Fixes the time sync with Linux Systems.", "Description": "Essential for computers that are dual booting. Fixes the time sync with Linux Systems.",
"category": "z__Advanced Tweaks - CAUTION", "category": "z__Advanced Tweaks - CAUTION",
"panel": "1", "panel": "1",
"Order": "a027_", "Order": "a030_",
"registry": [ "registry": [
{ {
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation", "Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\TimeZoneInformation",
"Name": "RealTimeIsUniversal", "Name": "RealTimeIsUniversal",
"Type": "DWord", "Type": "QWord",
"Value": "1", "Value": "1",
"OriginalValue": "0" "OriginalValue": "0"
} }
], ],
"link": "https://winutil.christitus.com/dev/tweaks/z--advanced-tweaks---caution/utc" "link": "https://winutil.christitus.com/dev/tweaks/z--advanced-tweaks---caution/utc"
}, },
"WPFTweaksRemoveOneDrive": {
"Content": "Remove OneDrive",
"Description": "Denys permission to remove onedrive user files than uses its own uninstaller to remove it than brings back permissions",
"category": "z__Advanced Tweaks - CAUTION",
"panel": "1",
"Order": "a029_",
"InvokeScript": [
"
# Deny permission to remove OneDrive folder
icacls $Env:OneDrive /deny \"Administrators:(D,DC)\"
Write-Host \"Uninstalling OneDrive...\"
Start-Process 'C:\\Windows\\System32\\OneDriveSetup.exe' -ArgumentList '/uninstall' -Wait
# Some of OneDrive files use explorer, and OneDrive uses FileCoAuth
Write-Host \"Removing leftover OneDrive Files...\"
Stop-Process -Name FileCoAuth,Explorer
Remove-Item \"$Env:LocalAppData\\Microsoft\\OneDrive\" -Recurse -Force
Remove-Item \"C:\\ProgramData\\Microsoft OneDrive\" -Recurse -Force
# Grant back permission to accses OneDrive folder
icacls $Env:OneDrive /grant \"Administrators:(D,DC)\"
"
],
"UndoScript": [
"
Write-Host \"Installing OneDrive\"
winget install Microsoft.Onedrive --source winget
"
],
"link": "https://winutil.christitus.com/dev/tweaks/z--advanced-tweaks---caution/removeonedrive"
},
"WPFTweaksRemoveHome": { "WPFTweaksRemoveHome": {
"Content": "Remove Home from Explorer", "Content": "Remove Home from Explorer",
"Description": "Removes the Home from Explorer and sets This PC as default", "Description": "Removes the Home from Explorer and sets This PC as default",
@@ -1705,14 +1689,14 @@
Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\" -Name LaunchTo -Value 0 Set-ItemProperty -Path \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\" -Name LaunchTo -Value 0
" "
], ],
"link": "https://winutil.christitus.com/dev/tweaks/z--advanced-tweaks---caution/removehomegallery" "link": "https://winutil.christitus.com/dev/tweaks/z--advanced-tweaks---caution/removehome"
}, },
"WPFTweaksRemoveGallery": { "WPFTweaksRemoveGallery": {
"Content": "Remove Gallery from explorer", "Content": "Remove Gallery from explorer",
"Description": "Removes the Gallery from Explorer and sets This PC as default", "Description": "Removes the Gallery from Explorer and sets This PC as default",
"category": "z__Advanced Tweaks - CAUTION", "category": "z__Advanced Tweaks - CAUTION",
"panel": "1", "panel": "1",
"Order": "a030_", "Order": "a029_",
"InvokeScript": [ "InvokeScript": [
" "
Remove-Item \"HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Desktop\\NameSpace\\{e88865ea-0e1c-4e20-9aa6-edcd0212c87c}\" Remove-Item \"HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Desktop\\NameSpace\\{e88865ea-0e1c-4e20-9aa6-edcd0212c87c}\"
@@ -1723,14 +1707,14 @@
New-Item \"HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Desktop\\NameSpace\\{e88865ea-0e1c-4e20-9aa6-edcd0212c87c}\" New-Item \"HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Desktop\\NameSpace\\{e88865ea-0e1c-4e20-9aa6-edcd0212c87c}\"
" "
], ],
"link": "https://winutil.christitus.com/dev/tweaks/z--advanced-tweaks---caution/removehomegallery" "link": "https://winutil.christitus.com/dev/tweaks/z--advanced-tweaks---caution/removegallery"
}, },
"WPFTweaksDisplay": { "WPFTweaksDisplay": {
"Content": "Set Display for Performance", "Content": "Set Display for Performance",
"Description": "Sets the system preferences to performance. You can do this manually with sysdm.cpl as well.", "Description": "Sets the system preferences to performance. You can do this manually with sysdm.cpl as well.",
"category": "z__Advanced Tweaks - CAUTION", "category": "z__Advanced Tweaks - CAUTION",
"panel": "1", "panel": "1",
"Order": "a027_", "Order": "a030_",
"registry": [ "registry": [
{ {
"Path": "HKCU:\\Control Panel\\Desktop", "Path": "HKCU:\\Control Panel\\Desktop",
@@ -1802,13 +1786,6 @@
"Value": "0", "Value": "0",
"Type": "DWord" "Type": "DWord"
}, },
{
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
"OriginalValue": "1",
"Name": "TaskbarDa",
"Value": "0",
"Type": "DWord"
},
{ {
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced", "Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
"OriginalValue": "1", "OriginalValue": "1",
@@ -1970,7 +1947,7 @@
"Description": "This will create an Environment Variable called 'POWERSHELL_TELEMETRY_OPTOUT' with a value of '1' which will tell Powershell 7 to not send Telemetry Data.", "Description": "This will create an Environment Variable called 'POWERSHELL_TELEMETRY_OPTOUT' with a value of '1' which will tell Powershell 7 to not send Telemetry Data.",
"category": "Essential Tweaks", "category": "Essential Tweaks",
"panel": "1", "panel": "1",
"Order": "a009_", "Order": "a005_",
"InvokeScript": [ "InvokeScript": [
"[Environment]::SetEnvironmentVariable('POWERSHELL_TELEMETRY_OPTOUT', '1', 'Machine')" "[Environment]::SetEnvironmentVariable('POWERSHELL_TELEMETRY_OPTOUT', '1', 'Machine')"
], ],
@@ -2065,6 +2042,12 @@
Write-Host \"Remove Copilot\" Write-Host \"Remove Copilot\"
Get-AppxPackage -AllUsers *Copilot* | Remove-AppxPackage -AllUsers Get-AppxPackage -AllUsers *Copilot* | Remove-AppxPackage -AllUsers
Get-AppxPackage -AllUsers Microsoft.MicrosoftOfficeHub | Remove-AppxPackage -AllUsers Get-AppxPackage -AllUsers Microsoft.MicrosoftOfficeHub | Remove-AppxPackage -AllUsers
$Appx = (Get-AppxPackage MicrosoftWindows.Client.CoreAI).PackageFullName
$Sid = (Get-LocalUser $Env:UserName).Sid.Value
New-Item \"HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Appx\\AppxAllUserStore\\EndOfLife\\$Sid\\$Appx\" -Force
Remove-AppxPackage $Appx
" "
], ],
"UndoScript": [ "UndoScript": [
@@ -2078,9 +2061,9 @@
"WPFTweaksWPBT": { "WPFTweaksWPBT": {
"Content": "Disable Windows Platform Binary Table (WPBT)", "Content": "Disable Windows Platform Binary Table (WPBT)",
"Description": "If enabled then allows your computer vendor to execute a program each time it boots. It enables computer vendors to force install anti-theft software, software drivers, or a software program conveniently. This could also be a security risk.", "Description": "If enabled then allows your computer vendor to execute a program each time it boots. It enables computer vendors to force install anti-theft software, software drivers, or a software program conveniently. This could also be a security risk.",
"category": "z__Advanced Tweaks - CAUTION", "category": "Essential Tweaks",
"panel": "1", "panel": "1",
"Order": "a027_", "Order": "a005_",
"registry": [ "registry": [
{ {
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager", "Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager",
@@ -2171,7 +2154,7 @@
Copy-Item $hosts \"$hosts.bak\" Copy-Item $hosts \"$hosts.bak\"
Invoke-WebRequest $hostsUrl -OutFile $hosts Invoke-WebRequest $hostsUrl -OutFile $hosts
ipconfig flushdns ipconfig /flushdns
Write-Host \"Added Adobe url block list from host file\" Write-Host \"Added Adobe url block list from host file\"
" "
@@ -2183,7 +2166,7 @@
Copy-Item $backup $hosts Copy-Item $backup $hosts
Remove-Item $backup Remove-Item $backup
ipconfig flushdns ipconfig /flushdns
Write-Host \"Removed Adobe url block list from host file\" Write-Host \"Removed Adobe url block list from host file\"
" "
@@ -2195,7 +2178,7 @@
"Description": "Great Windows 11 tweak to bring back good context menus when right clicking things in explorer.", "Description": "Great Windows 11 tweak to bring back good context menus when right clicking things in explorer.",
"category": "z__Advanced Tweaks - CAUTION", "category": "z__Advanced Tweaks - CAUTION",
"panel": "1", "panel": "1",
"Order": "a027_", "Order": "a030_",
"InvokeScript": [ "InvokeScript": [
" "
New-Item -Path \"HKCU:\\Software\\Classes\\CLSID\\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\" -Name \"InprocServer32\" -force -value \"\" New-Item -Path \"HKCU:\\Software\\Classes\\CLSID\\{86ca1aa0-34aa-4e8b-a509-50c905bae2a2}\" -Name \"InprocServer32\" -force -value \"\"
@@ -2244,7 +2227,7 @@
"WPFTweaksDVR": { "WPFTweaksDVR": {
"Content": "Disable GameDVR", "Content": "Disable GameDVR",
"Description": "GameDVR is a Windows App that is a dependency for some Store Games. I've never met someone that likes it, but it's there for the XBOX crowd.", "Description": "GameDVR is a Windows App that is a dependency for some Store Games. I've never met someone that likes it, but it's there for the XBOX crowd.",
"category": "Essential Tweaks", "category": "z__Advanced Tweaks - CAUTION",
"panel": "1", "panel": "1",
"Order": "a005_", "Order": "a005_",
"registry": [ "registry": [
@@ -2284,14 +2267,14 @@
"Type": "DWord" "Type": "DWord"
} }
], ],
"link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/dvr" "link": "https://winutil.christitus.com/dev/tweaks/essential-tweaks/gamedvr"
}, },
"WPFTweaksIPv46": { "WPFTweaksIPv46": {
"Content": "Prefer IPv4 over IPv6", "Content": "Prefer IPv4 over IPv6",
"Description": "To set the IPv4 preference can have latency and security benefits on private networks where IPv6 is not configured.", "Description": "To set the IPv4 preference can have latency and security benefits on private networks where IPv6 is not configured.",
"category": "z__Advanced Tweaks - CAUTION", "category": "z__Advanced Tweaks - CAUTION",
"panel": "1", "panel": "1",
"Order": "a024_", "Order": "a027_",
"registry": [ "registry": [
{ {
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Services\\Tcpip6\\Parameters", "Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Services\\Tcpip6\\Parameters",
@@ -2347,7 +2330,7 @@
"UndoScript": [ "UndoScript": [
"Enable-NetAdapterBinding -Name * -ComponentID ms_tcpip6" "Enable-NetAdapterBinding -Name * -ComponentID ms_tcpip6"
], ],
"link": "https://winutil.christitus.com/dev/tweaks/z--advanced-tweaks---caution/disableipsix" "link": "https://winutil.christitus.com/dev/tweaks/z--advanced-tweaks---caution/disableipv6"
}, },
"WPFTweaksDisableBGapps": { "WPFTweaksDisableBGapps": {
"Content": "Disable Background Apps", "Content": "Disable Background Apps",
@@ -2554,83 +2537,6 @@
} }
] ]
}, },
"WPFToggleSnapWindow": {
"Content": "Snap Window",
"Description": "If enabled you can align windows by dragging them. | Relogin Required",
"category": "Customize Preferences",
"panel": "2",
"Order": "a106_",
"Type": "Toggle",
"registry": [
{
"Path": "HKCU:\\Control Panel\\Desktop",
"Name": "WindowArrangementActive",
"Value": "1",
"OriginalValue": "0",
"DefaultState": "true",
"Type": "String"
}
],
"link": "https://winutil.christitus.com/dev/tweaks/customize-preferences/snapwindow"
},
"WPFToggleSnapFlyout": {
"Content": "Snap Assist Flyout",
"Description": "If disabled then Snap preview is disabled when maximize button is hovered.",
"category": "Customize Preferences",
"panel": "2",
"Order": "a107_",
"Type": "Toggle",
"registry": [
{
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
"Name": "EnableSnapAssistFlyout",
"Value": "1",
"OriginalValue": "0",
"DefaultState": "true",
"Type": "DWord"
}
],
"InvokeScript": [
"
Invoke-WinUtilExplorerUpdate -action \"restart\"
"
],
"UndoScript": [
"
Invoke-WinUtilExplorerUpdate -action \"restart\"
"
],
"link": "https://winutil.christitus.com/dev/tweaks/customize-preferences/snapflyout"
},
"WPFToggleSnapSuggestion": {
"Content": "Snap Assist Suggestion",
"Description": "If enabled then you will get suggestions to snap other applications in the left over spaces.",
"category": "Customize Preferences",
"panel": "2",
"Order": "a108_",
"Type": "Toggle",
"registry": [
{
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
"Name": "SnapAssist",
"Value": "1",
"OriginalValue": "0",
"DefaultState": "true",
"Type": "DWord"
}
],
"InvokeScript": [
"
Invoke-WinUtilExplorerUpdate -action \"restart\"
"
],
"UndoScript": [
"
Invoke-WinUtilExplorerUpdate -action \"restart\"
"
],
"link": "https://winutil.christitus.com/dev/tweaks/customize-preferences/snapsuggestion"
},
"WPFToggleMouseAcceleration": { "WPFToggleMouseAcceleration": {
"Content": "Mouse Acceleration", "Content": "Mouse Acceleration",
"Description": "If Enabled then Cursor movement is affected by the speed of your physical mouse movements.", "Description": "If Enabled then Cursor movement is affected by the speed of your physical mouse movements.",
@@ -2844,25 +2750,6 @@
], ],
"link": "https://winutil.christitus.com/dev/tweaks/customize-preferences/taskview" "link": "https://winutil.christitus.com/dev/tweaks/customize-preferences/taskview"
}, },
"WPFToggleTaskbarWidgets": {
"Content": "Widgets Button in Taskbar",
"Description": "If Enabled then Widgets Button in Taskbar will be shown.",
"category": "Customize Preferences",
"panel": "2",
"Order": "a204_",
"Type": "Toggle",
"registry": [
{
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
"Name": "TaskbarDa",
"Value": "1",
"OriginalValue": "0",
"DefaultState": "true",
"Type": "DWord"
}
],
"link": "https://winutil.christitus.com/dev/tweaks/customize-preferences/taskbarwidgets"
},
"WPFToggleTaskbarAlignment": { "WPFToggleTaskbarAlignment": {
"Content": "Center Taskbar Items", "Content": "Center Taskbar Items",
"Description": "[Windows 11] If Enabled then the Taskbar Items will be shown on the Center, otherwise the Taskbar Items will be shown on the Left.", "Description": "[Windows 11] If Enabled then the Taskbar Items will be shown on the Center, otherwise the Taskbar Items will be shown on the Left.",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 532 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 570 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 572 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 535 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

View File

@@ -3,14 +3,8 @@ title: Known Issues
toc: true toc: true
--- ---
## Launch Issues
### Blocked by anti-virus
Windows Security (formerly Defender) and other anti-virus software are known to block the script. The script gets flagged due to the fact that it requires administrator privileges & makes drastic system changes.
To resolve this, allow/whitelist the script in your anti-virus software settings, or temporarily disable real-time protection. Since the project is open source, you may audit the code if security is a concern.
### Download not working ### Download not working
If `https://christitus.com/win` is not working, or you want to download the code from GitHub directly, you can use the direct download link: If `https://christitus.com/win` is not working, or you want to download the code from GitHub directly, you can use the direct download link:
``` ```
@@ -21,199 +15,215 @@ If you are seeing errors referencing TLS or security, you may be running an olde
``` ```
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
iex (New-Object Net.WebClient).DownloadString('https://github.com/ChrisTitusTech/Winutil/releases/latest/download/Winutil.ps1') iex https://christitus.com/win | iex
``` ```
If it still isn't working and you live in India, it might be due to India blocking GitHub's content domain and preventing downloads. See more on [Times of India](https://timesofindia.indiatimes.com/gadgets-news/github-content-domain-blocked-for-these-indian-users-reports/articleshow/96687992.cms). If it still isn't working and you live in India, it might be due to India blocking GitHub's content domain and preventing downloads. See more on [Times of India](https://timesofindia.indiatimes.com/gadgets-news/github-content-domain-blocked-for-these-indian-users-reports/articleshow/96687992.cms).
If you are still having issues, try using a **VPN**, or changing your **DNS provider** to one of following two providers: If you are still having issues, try using a **VPN**, or changing your **DNS provider** to one of following two providers:
| Provider | Primary DNS | Secondary DNS | | Provider | Primary DNS | Secondary DNS |
|:------------:|:------------:|:-------------:| | :--------: | :---------: | :-----------: |
| Cloudflare | `1.1.1.1` | `1.0.0.1` | | Cloudflare | `1.1.1.1` | `1.0.0.1` |
| Google | `8.8.8.8` | `8.8.4.4` | | Google | `8.8.8.8` | `8.8.4.4` |
### Script blocked by Execution Policy ### Script blocked by Execution Policy
1. Ensure you are running PowerShell as admin: Press `Windows Key`+`X` and select *PowerShell (Admin)* in Windows 10, or `Windows Terminal (Admin)` in Windows 11.
1. Ensure you are running PowerShell as admin: Press `Windows Key`+`X` and select _PowerShell (Admin)_ in Windows 10, or `Windows Terminal (Admin)` in Windows 11.
2. In the PowerShell window, type this to allow unsigned code to execute and run the installation script: 2. In the PowerShell window, type this to allow unsigned code to execute and run the installation script:
``` ```
Set-ExecutionPolicy Unrestricted -Scope Process -Force Set-ExecutionPolicy Unrestricted -Scope Process -Force
irm https://christitus.com/win | iex irm https://christitus.com/win | iex
``` ```
## Runtime Issues ## Runtime Issues
### WinGet configuration ### WinGet configuration
If you have not installed anything using PowerShell before, you may be prompted to configure WinGet. This requires user interaction on first run. You will need to manually type `y` into the PowerShell console and press enter to continue. Once you do it the first time, you will not be prompted again. If you have not installed anything using PowerShell before, you may be prompted to configure WinGet. This requires user interaction on first run. You will need to manually type `y` into the PowerShell console and press enter to continue. Once you do it the first time, you will not be prompted again.
### MicroWin: Error `0x80041031` ### MicroWin: Error `0x80041031`
This error code typically indicates an issue related to Windows Management Instrumentation (WMI). Here are a few steps you can try to resolve the issue: This error code typically indicates an issue related to Windows Management Instrumentation (WMI). Here are a few steps you can try to resolve the issue:
1. **Reboot Your Computer:** 1. **Reboot Your Computer:**
Sometimes, a simple reboot can resolve temporary issues. Restart your computer and try mounting the ISO again. Sometimes, a simple reboot can resolve temporary issues. Restart your computer and try mounting the ISO again.
3. **Check for System Corruption:** 2. **Check for System Corruption:**
Run the System File Checker (SFC) utility to scan and repair system files that may be corrupted. Run the System File Checker (SFC) utility to scan and repair system files that may be corrupted.
```powershell
sfc /scannow
```
4. **Update Your System:** ```powershell
sfc /scannow
```
Make sure your operating system is up-to-date. Check for Windows updates and install any pending updates. 3. **Update Your System:**
5. **Check WMI Service:** Make sure your operating system is up-to-date. Check for Windows updates and install any pending updates.
Ensure that the Windows Management Instrumentation (WMI) service is running. You can do this through the Services application: 4. **Check WMI Service:**
- Press `Win`+`R` to open the Run dialog.
- Type `services.msc` and press Enter.
- Locate *Windows Management Instrumentation* in the list.
- Make sure to set its status to "Running" and the startup type to "Automatic".
6. **Check for Security Software Interference:** Ensure that the Windows Management Instrumentation (WMI) service is running. You can do this through the Services application:
- Press `Win`+`R` to open the Run dialog.
- Type `services.msc` and press Enter.
- Locate _Windows Management Instrumentation_ in the list.
- Make sure to set its status to "Running" and the startup type to "Automatic".
Security software can sometimes interfere with WMI operations. Temporarily disable your anti-virus or security software and check if the issue persists. WMI is a common attack/infection vector, so many anti-virus programs will limit its usage. 5. **Check for Security Software Interference:**
7. **Event Viewer:** Security software can sometimes interfere with WMI operations. Temporarily disable your anti-virus or security software and check if the issue persists. WMI is a common attack/infection vector, so many anti-virus programs will limit its usage.
Check the Event Viewer for more detailed error information. Look for entries related to the `80041031` error and check if there are any additional details that can help identify the cause. 6. **Event Viewer:**
- Press `Win`+`X` and select *Event Viewer*. Check the Event Viewer for more detailed error information. Look for entries related to the `80041031` error and check if there are any additional details that can help identify the cause.
- Navigate to *Windows Logs* > *Application* or *System*. - Press `Win`+`X` and select _Event Viewer_.
- Look for entries with the source related to WMI or the application use to mount the ISO. - Navigate to _Windows Logs_ > _Application_ or _System_.
- Look for entries with the source related to WMI or the application use to mount the ISO.
8. **ISO File Integrity:** 7. **ISO File Integrity:**
Ensure that the ISO file you are trying to mount is uncorrupted. Try mounting a different ISO file to see if the issue persists. Ensure that the ISO file you are trying to mount is uncorrupted. Try mounting a different ISO file to see if the issue persists.
If the problem persists after trying these steps, additional troubleshooting is required. Consider seeking assistance from Microsoft support or community forums for more specific guidance based on your system configuration and the software you use to mount the ISO. If the problem persists after trying these steps, additional troubleshooting is required. Consider seeking assistance from Microsoft support or community forums for more specific guidance based on your system configuration and the software you use to mount the ISO.
## Windows Issues ## Windows Issues
### Windows takes longer to shut down ### Windows takes longer to shut down
This could be for a number of reasons: This could be for a number of reasons:
- Turn on fast startup: Press `Windows key`+`R`, then type: - Turn on fast startup: Press `Windows key`+`R`, then type:
```bat
control /name Microsoft.PowerOptions /page pageGlobalSettings ```bat
``` control /name Microsoft.PowerOptions /page pageGlobalSettings
- If that doesn't work, disable Hibernation: ```
- Press `Windows Key`+`X` and select *PowerShell (Admin)* in Windows 10, or `Windows Terminal (Admin)` in Windows 11.
- In the PowerShell window, type: If that doesn't work, disable Hibernation:
```bat
powercfg /H off - Press `Windows Key`+`X` and select _PowerShell (Admin)_ in Windows 10, or `Windows Terminal (Admin)` in Windows 11. then type:
```
```bat
powercfg /H off
```
Related issue: [#69](https://github.com/ChrisTitusTech/Winutil/issues/69) Related issue: [#69](https://github.com/ChrisTitusTech/Winutil/issues/69)
### Windows Search does not work ### Windows Search does not work
Enable Background Apps. Related issues: [#69](https://github.com/ChrisTitusTech/Winutil/issues/69) [95](https://github.com/ChrisTitusTech/Winutil/issues/95) [#232](https://github.com/ChrisTitusTech/Winutil/issues/232)
Enable Background Apps. Related issues: [#69](https://github.com/ChrisTitusTech/Winutil/issues/69) [#95](https://github.com/ChrisTitusTech/Winutil/issues/95) [#232](https://github.com/ChrisTitusTech/Winutil/issues/232)
### Xbox Game Bar Activation Broken ### Xbox Game Bar Activation Broken
Set the Xbox Accessory Management Service to Automatic: Set the Xbox Accessory Management Service to Automatic:
``` ```powershell
Get-Service -Name "XboxGipSvc" | Set-Service -StartupType Automatic Get-Service -Name "XboxGipSvc" | Set-Service -StartupType Automatic
``` ```
Related issue: [#198](https://github.com/ChrisTitusTech/Winutil/issues/198) Related issue: [#198](https://github.com/ChrisTitusTech/Winutil/issues/198)
### Windows 11: Quick Settings no longer works ### Windows 11: Quick Settings no longer works
Launch the Script and click *Enable Action Center*.
Launch the Script and click _Enable Action Center_.
### Explorer (file browser) no longer launches ### Explorer (file browser) no longer launches
- Press `Windows key`+`R` then type:
```bat - Press `Windows key`+`R` then type:
control /name Microsoft.FolderOptions
``` ```bat
- Change the *Open File Explorer to* option to *This PC*. control /name Microsoft.FolderOptions
```
- Change the _Open File Explorer to_ option to _This PC_.
### Battery drains too fast ### Battery drains too fast
If you're using a laptop or tablet and find your battery drains too fast, please try the below troubleshooting steps, and report the results back to the Winutil community. If you're using a laptop or tablet and find your battery drains too fast, please try the below troubleshooting steps, and report the results back to the Winutil community.
1. **Check Battery Health:** 1. **Check Battery Health:**
- Press `Windows Key`+`X` and select *PowerShell (Admin)* in Windows 10, or `Windows Terminal (Admin)` in Windows 11. - Press `Windows Key`+`X` and select _PowerShell (Admin)_ in Windows 10, or `Windows Terminal (Admin)` in Windows 11.
- Run the following command to generate a battery report: - Run the following command to generate a battery report:
```powershell ```powershell
powercfg /batteryreport /output "C:\battery_report.html" powercfg /batteryreport /output "C:\battery_report.html"
``` ```
- Open the generated HTML report to review information about battery health and usage. A battery with poor health may hold less charge, discharge faster, or cause other issues. - Open the generated HTML report to review information about battery health and usage. A battery with poor health may hold less charge, discharge faster, or cause other issues.
2. **Review Power Settings:** 2. **Review Power Settings:**
- Open the Settings app, and go to *System* > *Power & sleep*. - Open the Settings app, and go to _System_ > _Power & sleep_.
- Adjust power plan settings based on your preferences and usage patterns. - Adjust power plan settings based on your preferences and usage patterns.
- Click on *Additional power settings* to access advanced power settings that may help. - Click on _Additional power settings_ to access advanced power settings that may help.
3. **Identify Power-Hungry Apps:** 3. **Identify Power-Hungry Apps:**
- Right-click on the taskbar and select *Task Manager*. - Right-click on the taskbar and select _Task Manager_.
- Navigate to the *Processes* tab to identify applications with high CPU or memory usage. - Navigate to the _Processes_ tab to identify applications with high CPU or memory usage.
- Consider reconfiguring, closing, disabling, or uninstalling applications that use a lot of resources. - Consider reconfiguring, closing, disabling, or uninstalling applications that use a lot of resources.
4. **Update Drivers:** 4. **Update Drivers:**
- Visit your device manufacturer's website or use Windows Update to check for driver updates. - Visit your device manufacturer's website or use Windows Update to check for driver updates.
- Ensure graphics, chipset, and other essential drivers are up to date. - Ensure graphics, chipset, and other essential drivers are up to date.
5. **Check for Windows Updates:** 5. **Check for Windows Updates:**
- Open the Settings app, and go to *Update & Security* > *Windows Update*. - Open the Settings app, and go to _Update & Security_ > _Windows Update_.
- Check for and install any available updates for your operating system. - Check for and install any available updates for your operating system.
6. **Reduce Screen Brightness:** 6. **Reduce Screen Brightness:**
- Open the Settings app, and go to *System* > *Display*. - Open the Settings app, and go to _System_ > _Display_.
- Adjust screen brightness based on your preferences and lighting conditions. - Adjust screen brightness based on your preferences and lighting conditions.
7. **Enable Battery Saver:** 7. **Enable Battery Saver:**
- Open the Settings app, and go to *System* > *Battery*. - Open the Settings app, and go to _System_ > _Battery_.
- Turn on *Battery saver* to limit background activity and conserve power. - Turn on _Battery saver_ to limit background activity and conserve power.
8. **Check Power Usage in Settings:** 8. **Check Power Usage in Settings:**
- Open the Settings app, and go to *System* > *Battery* > *Battery usage by app*. - Open the Settings app, and go to _System_ > _Battery_ > _Battery usage by app_.
- Review the list of apps and their power usage. Disable or uninstall any you don't need. - Review the list of apps and their power usage. Disable or uninstall any you don't need.
9. **Check Background Apps:** 9. **Check Background Apps:**
- Open the Settings app, and go to *Privacy* > *Background apps*. - Open the Settings app, and go to _Privacy_ > _Background apps_.
- Disable or uninstall unnecessary apps running in the background. - Disable or uninstall unnecessary apps running in the background.
10. **Use `powercfg` for Analysis:** 10. **Use `powercfg` for Analysis:**
- Press `Windows Key`+`X` and select *PowerShell (Admin)* in Windows 10, or `Windows Terminal (Admin)` in Windows 11. - Press `Windows Key`+`X` and select _PowerShell (Admin)_ in Windows 10, or `Windows Terminal (Admin)` in Windows 11.
- Run the following command to analyze energy usage and generate a report: - Run the following command to analyze energy usage and generate a report:
```powershell ```powershell
powercfg /energy /output "C:\energy_report.html" powercfg /energy /output "C:\energy_report.html"
``` ```
- Open the generated HTML report to identify energy consumption patterns. - Open the generated HTML report to identify energy consumption patterns.
11. **Review Event Logs:** 11. **Review Event Logs:**
- Open Event Viewer by searching for it in the Start menu. - Open Event Viewer by searching for it in the Start menu.
- Navigate to *Windows Logs* > *System*. - Navigate to _Windows Logs_ > _System_.
- Look for events with the source *Power-Troubleshooter* to identify power-related events. These may highlight battery, input power, and other issues. - Look for events with the source _Power-Troubleshooter_ to identify power-related events. These may highlight battery, input power, and other issues.
12. **Check Wake-up Sources:** 12. **Check Wake-up Sources:**
- Press `Windows Key`+`X` and select *PowerShell (Admin)* in Windows 10, or `Windows Terminal (Admin)` in Windows 11. - Press `Windows Key`+`X` and select _PowerShell (Admin)_ in Windows 10, or `Windows Terminal (Admin)` in Windows 11.
- Use the command `powercfg /requests` to identify processes preventing sleep. - Use the command `powercfg /requests` to identify processes preventing sleep.
- Use the command `powercfg /waketimers` to view active wake timers. - Use the command `powercfg /waketimers` to view active wake timers.
- Check Task Scheduler to see if any of the discovered processes are scheduled to start on boot or at regular intervals. - Check Task Scheduler to see if any of the discovered processes are scheduled to start on boot or at regular intervals.
13. **Advanced Identification of Power-Hungry Apps:** 13. **Advanced Identification of Power-Hungry Apps:**
- Open Resource Monitor from the Start menu. - Open Resource Monitor from the Start menu.
- Navigate to the *CPU*, *Memory*, *Network*, and other tabs to identify processes with high resource usage. - Navigate to the _CPU_, _Memory_, _Network_, and other tabs to identify processes with high resource usage.
- Consider reconfiguring, closing, disabling, or uninstalling applications that use a lot of resources. - Consider reconfiguring, closing, disabling, or uninstalling applications that use a lot of resources.
14. **Disable Activity History:** 14. **Disable Activity History:**
- Open the Settings app, and go to *Privacy* > *Activity history*. - Open the Settings app, and go to _Privacy_ > _Activity history_.
- Turn off *Let Windows collect my activities from this PC*. - Turn off _Let Windows collect my activities from this PC_.
15. **Prevent Network Adapters From Waking PC:** 15. **Prevent Network Adapters From Waking PC:**
- Open Device Manager by searching for it in the Start menu. - Open Device Manager by searching for it in the Start menu.
- Locate your network adapter, right-click, and go to *Properties*. - Locate your network adapter, right-click, and go to _Properties_.
- Under the *Power Management* tab, uncheck the option that allows the device to wake the computer. - Under the _Power Management_ tab, uncheck the option that allows the device to wake the computer.
16. **Review Installed Applications:** 16. **Review Installed Applications:**
- Manually review installed applications by searching for *Add or remove programs* in the Start menu. - Manually review installed applications by searching for _Add or remove programs_ in the Start menu.
- Check settings/preferences of individual applications for power-related options. - Check settings/preferences of individual applications for power-related options.
- Uninstall unnecessary or problematic software. - Uninstall unnecessary or problematic software.
These troubleshooting steps are generic, but should help in most situations. You should have these key takeaways: These troubleshooting steps are generic, but should help in most situations. You should have these key takeaways:
- Battery health is the most significant limiter on your device's runtime. A battery in poor health usually cannot be made to last like it used to, simply by closing some applications. Consider replacing your battery. - Battery health is the most significant limiter on your device's runtime. A battery in poor health usually cannot be made to last like it used to, simply by closing some applications. Consider replacing your battery.
- Background applications that use CPU and memory, make lots of or large network requests, read/write to disk frequently, or that keep your PC awake when it could be conserving energy are the next major concern. Avoid installing programs you don't need, only use programs you trust, and configure applications to use as little power and run as infrequently as possible. - Background applications that use CPU and memory, make lots of or large network requests, read/write to disk frequently, or that keep your PC awake when it could be conserving energy are the next major concern. Avoid installing programs you don't need, only use programs you trust, and configure applications to use as little power and run as infrequently as possible.
- Windows performs a lot of tasks that may affect battery life by default. Changing settings, stopping scheduled tasks, and disabling features can help the system stay in lower power states to conserve battery. - Windows performs a lot of tasks that may affect battery life by default. Changing settings, stopping scheduled tasks, and disabling features can help the system stay in lower power states to conserve battery.

View File

@@ -1,108 +1,43 @@
# Table of Contents ---
title: Developer Reference
weight: 3
---
> [!NOTE]
> This section contains technical documentation for developers. For end-user documentation, see the [User Guide](../userguide/).
## Architecture
- [Architecture & Design](architecture/) - Code structure, data flow, and how Winutil works internally
## Tweaks ## Tweaks
### Essential Tweaks ### Essential Tweaks
- [Change Windows Terminal default: PowerShell 5 -> PowerShell 7](tweaks/essential-tweaks/powershell7/) {{< autolinks section="dev/tweaks/essential-tweaks" >}}
- [Create Restore Point](tweaks/essential-tweaks/restorepoint/)
- [Debloat Edge](tweaks/essential-tweaks/edgedebloat/)
- [Delete Temporary Files](tweaks/essential-tweaks/deletetempfiles/)
- [Disable Activity History](tweaks/essential-tweaks/ah/)
- [Disable ConsumerFeatures](tweaks/essential-tweaks/consumerfeatures/)
- [Disable GameDVR](tweaks/essential-tweaks/dvr/)
- [Disable Hibernation](tweaks/essential-tweaks/hiber/)
- [Disable Homegroup](tweaks/essential-tweaks/home/)
- [Disable Location Tracking](tweaks/essential-tweaks/loc/)
- [Disable Powershell 7 Telemetry](tweaks/essential-tweaks/powershell7tele/)
- [Disable Storage Sense](tweaks/essential-tweaks/storage/)
- [Disable Telemetry](tweaks/essential-tweaks/tele/)
- [Disable Wifi-Sense](tweaks/essential-tweaks/wifi/)
- [Enable End Task With Right Click](tweaks/essential-tweaks/endtaskontaskbar/)
- [Prefer IPv4 over IPv6](tweaks/essential-tweaks/ipv46/)
- [Run Disk Cleanup](tweaks/essential-tweaks/diskcleanup/)
- [Set Hibernation as default (good for laptops)](tweaks/essential-tweaks/laptophibernation/)
- [Set Services to Manual](tweaks/essential-tweaks/services/)
### Shortcuts
- [Create Winutil Shortcut](tweaks/shortcuts/shortcut/)
### Advanced Tweaks (CAUTION) ### Advanced Tweaks (CAUTION)
- [Adobe Debloat](tweaks/z--advanced-tweaks---caution/debloatadobe/) {{< autolinks section="dev/tweaks/z--advanced-tweaks---caution" >}}
- [Adobe Network Block](tweaks/z--advanced-tweaks---caution/blockadobenet/)
- [Disable Background Apps](tweaks/z--advanced-tweaks---caution/disablebgapps/)
- [Disable Fullscreen Optimizations](tweaks/z--advanced-tweaks---caution/disablefso/)
- [Disable Intel MM (vPro LMS)](tweaks/z--advanced-tweaks---caution/disablelms1/)
- [Disable IPv6](tweaks/z--advanced-tweaks---caution/disableipsix/)
- [Disable Microsoft Copilot](tweaks/z--advanced-tweaks---caution/removecopilot/)
- [Disable Notification Tray/Calendar](tweaks/z--advanced-tweaks---caution/disablenotifications/)
- [Disable Teredo](tweaks/z--advanced-tweaks---caution/teredo/)
- [DNS](tweaks/z--advanced-tweaks---caution/changedns/)
- [Remove ALL MS Store Apps - NOT RECOMMENDED](tweaks/z--advanced-tweaks---caution/debloat/)
- [Remove Home and Gallery from explorer](tweaks/z--advanced-tweaks---caution/removehomegallery/)
- [Remove Microsoft Edge](tweaks/z--advanced-tweaks---caution/removeedge/)
- [Remove OneDrive](tweaks/z--advanced-tweaks---caution/removeonedrive/)
- [Run OO Shutup 10](tweaks/z--advanced-tweaks---caution/oosubutton/)
- [Set Classic Right-Click Menu ](tweaks/z--advanced-tweaks---caution/rightclickmenu/)
- [Set Display for Performance](tweaks/z--advanced-tweaks---caution/display/)
- [Set Time to UTC (Dual Boot)](tweaks/z--advanced-tweaks---caution/utc/)
### Customize Preferences ### Customize Preferences
- [Bing Search in Start Menu](tweaks/customize-preferences/bingsearch/) {{< autolinks section="dev/tweaks/customize-preferences" >}}
- [Center Taskbar Items](tweaks/customize-preferences/taskbaralignment/)
- [Dark Theme for Windows](tweaks/customize-preferences/darkmode/)
- [Detailed BSoD](tweaks/customize-preferences/detailedbsod/)
- [Mouse Acceleration](tweaks/customize-preferences/mouseacceleration/)
- [NumLock on Startup](tweaks/customize-preferences/numlock/)
- [Search Button in Taskbar](tweaks/customize-preferences/taskbarsearch/)
- [Show File Extensions](tweaks/customize-preferences/showext/)
- [Show Hidden Files](tweaks/customize-preferences/hiddenfiles/)
- [Snap Assist Flyout](tweaks/customize-preferences/snapflyout/)
- [Snap Assist Suggestion](tweaks/customize-preferences/snapsuggestion/)
- [Snap Window](tweaks/customize-preferences/snapwindow/)
- [Sticky Keys](tweaks/customize-preferences/stickykeys/)
- [Task View Button in Taskbar](tweaks/customize-preferences/taskview/)
- [Verbose Messages During Logon](tweaks/customize-preferences/verboselogon/)
- [Widgets Button in Taskbar](tweaks/customize-preferences/taskbarwidgets/)
### Performance Plans ### Performance Plans
- [Add and Activate Ultimate Performance Profile](tweaks/performance-plans/addultperf/) {{< autolinks section="dev/tweaks/performance-plans" >}}
- [Remove Ultimate Performance Profile](tweaks/performance-plans/removeultperf/)
## Features ## Features
### Fixes ### Fixes
- [Remove Adobe Creative Cloud](features/fixes/runadobecccleanertool/) {{< autolinks section="dev/features/fixes" >}}
- [Reset Network](features/fixes/network/)
- [Reset Windows Update](features/fixes/update/)
- [Set Up Autologin](features/fixes/autologin/)
- [System Corruption Scan](features/fixes/dism/)
- [WinGet Reinstall](features/fixes/winget/)
### Legacy Windows Panels ### Legacy Windows Panels
- [Control Panel](features/legacy-windows-panels/control/) {{< autolinks section="dev/features/legacy-windows-panels" >}}
- [Network Connections](features/legacy-windows-panels/network/)
- [Power Panel](features/legacy-windows-panels/power/)
- [Printer Settings](features/legacy-windows-panels/printer/)
- [Region](features/legacy-windows-panels/region/)
- [Sound Settings](features/legacy-windows-panels/sound/)
- [System Properties](features/legacy-windows-panels/system/)
- [User Accounts](features/legacy-windows-panels/user/)
### Features ### Features
- [All .Net Framework (2,3,4)](features/features/dotnet/) {{< autolinks section="dev/features/features" >}}
- [Disable Legacy F8 Boot Recovery](features/features/disablelegacyrecovery/)
- [Disable Search Box Web Suggestions in Registry(explorer restart)](features/features/disablesearchsuggestions/)
- [Enable Daily Registry Backup Task 12.30am](features/features/regbackup/)
- [Enable Legacy F8 Boot Recovery](features/features/enablelegacyrecovery/)
- [Enable Search Box Web Suggestions in Registry(explorer restart)](features/features/enablesearchsuggestions/)
- [HyperV Virtualization](features/features/hyperv/)
- [Install Features](features/features/install/)
- [Legacy Media (wmp, directplay)](features/features/legacymedia/)
- [NFS - Network File System](features/features/nfs/)
- [Windows Sandbox](features/features/sandbox/)
- [Windows Subsystem for Linux](features/features/wsl/)

View File

@@ -0,0 +1,550 @@
---
title: Architecture & Design
weight: 1
toc: true
---
## Overview
Winutil is a PowerShell-based Windows utility with a WPF (Windows Presentation Foundation) GUI. This document explains the architecture, code structure, and how different components work together.
## High-Level Architecture
```
┌─────────────────────────────────────────────────────┐
│ Winutil GUI │
│ (WPF XAML Interface) │
└──────────────────┬──────────────────────────────────┘
┌─────────┴─────────┐
│ │
┌────────▼──────┐ ┌───────▼────────┐
│ Public APIs │ │ Private APIs │
│ (User-facing)│ │ (Internal) │
└───────┬───────┘ └───────┬────────┘
│ │
└────────┬──────────┘
┌────────────▼────────────┐
│ Configuration Files │
│ (JSON definitions) │
└────────────┬────────────┘
┌────────────▼────────────┐
│ External Tools │
│ (WinGet, Chocolatey) │
└─────────────────────────┘
```
## Project Structure
### Directory Layout
```
winutil/
├── Compile.ps1 # Build script that combines all files
├── winutil.ps1 # Compiled output (generated)
├── scripts/
│ ├── main.ps1 # Entry point and GUI initialization
│ └── start.ps1 # Startup logic
├── functions/
│ ├── private/ # Internal helper functions
│ │ ├── Get-WinUtilVariables.ps1
│ │ ├── Install-WinUtilWinget.ps1
│ │ └── ...
│ ├── public/ # User-facing functions
│ │ ├── Initialize-WPFUI.ps1
│ │ └── ...
│ └── microwin/ # MicroWin specific functions
│ ├── Invoke-Microwin.ps1
│ └── ...
├── config/ # JSON configuration files
│ ├── applications.json # Application definitions
│ ├── tweaks.json # Tweak definitions
│ ├── feature.json # Windows feature definitions
│ └── preset.json # Preset configurations
├── xaml/
│ └── inputXML.xaml # GUI layout definition
└── docs/ # Documentation
```
### Key Components
#### 1. Compile.ps1
**Purpose**: Combines all separate script files into a single `winutil.ps1` for distribution.
**Process**:
1. Reads all function files from `/functions/`
2. Includes configuration JSON files
3. Embeds XAML GUI definition
4. Combines into single script
5. Outputs `winutil.ps1`
**Why**: Makes distribution easier (single file) and improves load time.
#### 2. scripts/main.ps1
**Purpose**: Entry point that initializes the GUI and event system.
**Responsibilities**:
- Load XAML and create WPF window
- Initialize form elements
- Set up event handlers
- Load configurations
- Display the GUI
#### 3. functions/public/
**Purpose**: User-facing functions that implement main features.
**Key Functions**:
- `Initialize-WPFUI.ps1`: Sets up the GUI
- `Invoke-WPFTweak*`: Applies system tweaks
- `Invoke-WPFFeature*`: Enables Windows features
- `Install-WinUtilProgram*`: Installs applications
**Naming Convention**: Functions start with `WPF` or `Winutil` to be loaded into the runspace.
#### 4. functions/private/
**Purpose**: Internal helper functions not directly called by users.
**Key Functions**:
- `Get-WinUtilVariables.ps1`: Retrieves UI element references
- `Install-WinUtilWinget.ps1`: Ensures WinGet is installed
- `Get-WinUtilCheckBoxes.ps1`: Gets checkbox states
- `Invoke-WinUtilCurrentSystem.ps1`: Gets system information
#### 5. config/*.json
**Purpose**: Define available applications, tweaks, and features declaratively.
**Files**:
- `applications.json`: Application definitions with WinGet/Choco IDs
- `tweaks.json`: Registry tweaks and their undo actions
- `feature.json`: Windows features that can be enabled/disabled
- `preset.json`: Predefined tweak combinations
- `dns.json`: DNS provider configurations
#### 6. xaml/inputXML.xaml
**Purpose**: WPF GUI layout and design.
**Structure**:
- TabControl for main tabs (Install, Tweaks, Config, MicroWin)
- Buttons with event handlers
- TextBoxes for input
- CheckBoxes for options
- ListBoxes for selections
## Data Flow
### Application Installation Flow
```
User clicks "Install"
Get-WinUtilCheckBoxes → Retrieves selected apps
For each selected app:
Check if WinGet/Choco installed
Install-WinUtilWinget/Choco (if needed)
Install-WinUtilProgramWinget/Choco → Install app
Update UI with progress
Display completion message
```
### Tweak Application Flow
```
User selects tweaks and clicks "Run Tweaks"
Get-WinUtilCheckBoxes → Get selected tweaks
For each selected tweak:
Load tweak definition from tweaks.json
Invoke-WPFTweak → Apply registry/service changes
Log changes
Store original values (for undo)
Update UI
Display completion
```
### Undo Tweak Flow
```
User selects tweaks and clicks "Undo"
Get-WinUtilCheckBoxes → Get selected tweaks
For each tweak:
Retrieve "OriginalState" from tweak definition
Invoke-WPFUndoTweak → Restore original values
Remove from applied tweaks log
Update UI
```
## Configuration File Format
### applications.json Structure
```json
{
"WPFInstall<AppName>": {
"category": "Browsers",
"choco": "googlechrome",
"content": "Google Chrome",
"description": "Google Chrome browser",
"link": "https://chrome.google.com",
"winget": "Google.Chrome"
}
}
```
**Fields**:
- `category`: Which section in the Install tab
- `content`: Display name in GUI
- `description`: Tooltip/description text
- `winget`: WinGet package ID
- `choco`: Chocolatey package name
- `link`: Official website
### tweaks.json Structure
```json
{
"WPFTweaksTelemetry": {
"Content": "Disable Telemetry",
"Description": "Disables Microsoft Telemetry",
"category": "Essential Tweaks",
"panel": "1",
"Order": "a003_",
"registry": [
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\DataCollection",
"Name": "AllowTelemetry",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
}
],
"ScheduledTask": [
{
"Name": "Microsoft\\Windows\\Autochk\\Proxy",
"State": "Disabled",
"OriginalState": "Enabled"
}
]
}
}
```
**Fields**:
- `Content`: Display name
- `Description`: What it does
- `category`: Essential/Advanced/Customize
- `registry`: Registry changes to make
- `ScheduledTask`: Scheduled tasks to modify
- `service`: Services to change
- `OriginalValue/State`: For undo functionality
## PowerShell Runspace
Winutil uses PowerShell runspaces for the GUI to remain responsive:
```powershell
# Create runspace
$sync.runspace = [runspacefactory]::CreateRunspace()
$sync.runspace.Open()
$sync.runspace.SessionStateProxy.SetVariable("sync", $sync)
# Run code in background
$powershell = [powershell]::Create().AddScript($scriptblock)
$powershell.Runspace = $sync.runspace
$handle = $powershell.BeginInvoke()
```
**Why**: Prevents UI freezing during long-running operations.
## WPF Event Handling
Events are wired up via XAML element names:
```powershell
# Get all named elements
$sync.keys | ForEach-Object {
if($sync.$_.GetType().Name -eq "Button") {
$sync.$_.Add_Click({
$button = $sync.$($args[0].Name)
& "Invoke-$($args[0].Name)"
})
}
}
```
**Convention**: Button named `WPFInstallButton` calls function `Invoke-WPFInstallButton`.
## Package Manager Integration
### WinGet Integration
```powershell
# Check if installed
if (!(Get-Command winget -ErrorAction SilentlyContinue)) {
Install-WinUtilWinget
}
# Install package
winget install --id $app.winget --silent --accept-source-agreements
```
### Chocolatey Integration
```powershell
# Check if installed
if (!(Get-Command choco -ErrorAction SilentlyContinue)) {
Install-WinUtilChoco
}
# Install package
choco install $app.choco -y
```
## MicroWin Architecture
MicroWin operates in phases:
1. **Mount ISO**: Extract Windows image
2. **Modify Image**: Remove components, apply tweaks
3. **Inject Drivers**: Add custom drivers (optional)
4. **Create Unattend**: Generate automated install configuration
5. **Rebuild ISO**: Package modified image into new ISO
**Key Files**:
- `Invoke-Microwin.ps1`: Main orchestration
- `Microwin-RemovePackages.ps1`: Remove Windows packages
- `Microwin-RemoveFeatures.ps1`: Disable features
- `Microwin-NewUnattend.ps1`: Create unattend.xml
## Error Handling
Winutil uses PowerShell error handling:
```powershell
try {
# Attempt operation
Invoke-SomeOperation
}
catch {
Write-Host "Error: $_" -ForegroundColor Red
# Log error
Add-Content -Path $logfile -Value "ERROR: $_"
}
```
**Logging**: Errors and operations are logged for debugging.
## Configuration Loading
At startup, Winutil loads all configurations:
```powershell
# Load JSON configs
$sync.configs = @{}
$sync.configs.applications = Get-Content "config/applications.json" | ConvertFrom-Json
$sync.configs.tweaks = Get-Content "config/tweaks.json" | ConvertFrom-Json
$sync.configs.features = Get-Content "config/feature.json" | ConvertFrom-Json
```
**Sync Hash**: `$sync` hashtable shares state across runspaces.
## UI Update Pattern
UI updates must happen on the UI thread:
```powershell
$sync.form.Dispatcher.Invoke([action]{
$sync.WPFStatusLabel.Content = "Installing..."
}, "Normal")
```
**Why**: WPF requires UI updates on the main thread.
## Adding New Features
### Adding a New Application
1. Edit `config/applications.json`:
```json
{
"WPFInstallNewApp": {
"category": "Utilities",
"content": "New App",
"description": "Description of new app",
"winget": "Publisher.AppName",
"choco": "appname"
}
}
```
2. Recompile: `.\Compile.ps1`
3. The app appears automatically in Install tab
### Adding a New Tweak
1. Edit `config/tweaks.json`:
```json
{
"WPFTweaksNewTweak": {
"Content": "New Tweak",
"Description": "What it does",
"category": "Essential Tweaks",
"registry": [
{
"Path": "HKLM:\\Path\\To\\Key",
"Name": "ValueName",
"Type": "DWord",
"Value": "1",
"OriginalValue": "0"
}
]
}
}
```
2. Recompile: `.\Compile.ps1`
3. Tweak appears in Tweaks tab
### Adding a New Function
1. Create file in `functions/public/` or `functions/private/`:
```powershell
# functions/public/Invoke-WPFNewFeature.ps1
function Invoke-WPFNewFeature {
<#
.SYNOPSIS
Does something new
#>
# Implementation
}
```
2. File naming must include "WPF" or "Winutil" to load
3. Recompile: `.\Compile.ps1`
## Testing
### Manual Testing
```powershell
# Compile and run with -run flag
.\Compile.ps1 -run
```
### Automated Tests
Tests are in `/pester/`:
- `configs.Tests.ps1`: Validates JSON configurations
- `functions.Tests.ps1`: Tests PowerShell functions
Run tests:
```powershell
Invoke-Pester
```
## Build Process
### Development Build
```powershell
.\Compile.ps1
```
Outputs `winutil.ps1` in the root directory.
### Production Release
1. Tag release in Git
2. GitHub Actions builds and uploads `winutil.ps1`
3. Release appears on GitHub Releases
4. Users download via `irm christitus.com/win`
## Dependencies
**Required**:
- PowerShell 5.1+
- .NET Framework 4.5+
- Windows 10 1809+
**Optional (auto-installed)**:
- WinGet (Windows Package Manager)
- Chocolatey
- oscdimg.exe (for MicroWin)
## Performance Considerations
**Optimization Strategies**:
- Lazy-load configurations (only when needed)
- Use runspaces for long operations
- Cache expensive lookups
- Minimize registry reads/writes
- Batch operations when possible
## Security Considerations
**Safety Measures**:
- All operations logged
- Registry backups for undo
- No credential storage
- Open source (auditable)
- Digitally signed (future)
## Contributing Guidelines
**Code Standards**:
- Use proper PowerShell cmdlet naming (Verb-Noun)
- Include comment-based help
- Follow existing code style
- Test thoroughly before PR
- Document significant changes
**File Naming**:
- Public functions: `Invoke-WPF*.ps1` or `Invoke-Winutil*.ps1`
- Private functions: `Get-WinUtil*.ps1` or verb-WinUtil*.ps1`
- Must include "WPF" or "Winutil" to load
## Future Architecture Plans
**Roadmap Considerations**:
- Plugin system for community extensions
- Config import/export
- Cloud sync for configurations
- Enhanced logging dashboard
- Modular compilation (choose features)
## Related Documentation
- [Contributing Guide](../../contributing/) - How to contribute code
- [User Guide](../../userguide/) - End-user documentation
- [FAQ](../../faq/) - Common questions
## Additional Resources
- **GitHub Repository**: [ChrisTitusTech/winutil](https://github.com/ChrisTitusTech/winutil)
- **PowerShell Docs**: [Microsoft Docs](https://docs.microsoft.com/powershell/)
- **WPF Guide**: [WPF Documentation](https://docs.microsoft.com/dotnet/desktop/wpf/)
---
**Last Updated**: January 2026
**Maintainers**: Chris Titus Tech and contributors

View File

@@ -1,61 +1,14 @@
# Disable Legacy F8 Boot Recovery # Disable Legacy F8 Boot Recovery
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Disables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json ```json
{ "WPFFeatureEnableLegacyRecovery": {
"Content": "Disable Legacy F8 Boot Recovery", "Content": "Enable Legacy F8 Boot Recovery",
"Description": "Disables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.", "Description": "Enables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.",
"category": "Features", "category": "Features",
"panel": "1", "panel": "1",
"Order": "a019_", "Order": "a018_",
"feature": [], "feature": [],
"InvokeScript": [ "InvokeScript": [
" "bcdedit /set bootmenupolicy standard"
If (!(Test-Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood')) { ],
New-Item -Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood' -Force | Out-Null
}
New-ItemProperty -Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood' -Name 'Enabled' -Type DWord -Value 0 -Force
Start-Process -FilePath cmd.exe -ArgumentList '/c bcdedit /Set {Current} BootMenuPolicy Standard' -Wait
"
],
"link": "https://christitustech.github.io/Winutil/dev/features/Features/DisableLegacyRecovery"
}
``` ```
</details>
## Invoke Script
```powershell
If (!(Test-Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager\LastKnownGood')) {
New-Item -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager\LastKnownGood' -Force | Out-Null
}
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager\LastKnownGood' -Name 'Enabled' -Type DWord -Value 0 -Force
Start-Process -FilePath cmd.exe -ArgumentList '/c bcdedit /Set {Current} BootMenuPolicy Standard' -Wait
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)

View File

@@ -1,61 +0,0 @@
# Disable Search Box Web Suggestions in Registry(explorer restart)
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Disables web suggestions when searching using Windows Search.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Disable Search Box Web Suggestions in Registry(explorer restart)",
"Description": "Disables web suggestions when searching using Windows Search.",
"category": "Features",
"panel": "1",
"Order": "a016_",
"feature": [],
"InvokeScript": [
"
If (!(Test-Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer')) {
New-Item -Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer' -Force | Out-Null
}
New-ItemProperty -Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer' -Name 'DisableSearchBoxSuggestions' -Type DWord -Value 1 -Force
Stop-Process -name explorer -force
"
],
"link": "https://christitustech.github.io/Winutil/dev/features/Features/DisableSearchSuggestions"
}
```
</details>
## Invoke Script
```powershell
If (!(Test-Path 'HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer')) {
New-Item -Path 'HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer' -Force | Out-Null
}
New-ItemProperty -Path 'HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer' -Name 'DisableSearchBoxSuggestions' -Type DWord -Value 1 -Force
Stop-Process -name explorer -force
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)

View File

@@ -1,61 +1,14 @@
# Enable Legacy F8 Boot Recovery # Enable Legacy F8 Boot Recovery
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Enables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json ```json
{ "WPFFeatureEnableLegacyRecovery": {
"Content": "Enable Legacy F8 Boot Recovery", "Content": "Enable Legacy F8 Boot Recovery",
"Description": "Enables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.", "Description": "Enables Advanced Boot Options screen that lets you start Windows in advanced troubleshooting modes.",
"category": "Features", "category": "Features",
"panel": "1", "panel": "1",
"Order": "a018_", "Order": "a018_",
"feature": [], "feature": [],
"InvokeScript": [ "InvokeScript": [
" "bcdedit /set bootmenupolicy legacy"
If (!(Test-Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood')) { ],
New-Item -Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood' -Force | Out-Null
}
New-ItemProperty -Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager\\LastKnownGood' -Name 'Enabled' -Type DWord -Value 1 -Force
Start-Process -FilePath cmd.exe -ArgumentList '/c bcdedit /Set {Current} BootMenuPolicy Legacy' -Wait
"
],
"link": "https://christitustech.github.io/Winutil/dev/features/Features/EnableLegacyRecovery"
}
``` ```
</details>
## Invoke Script
```powershell
If (!(Test-Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager\LastKnownGood')) {
New-Item -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager\LastKnownGood' -Force | Out-Null
}
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager\LastKnownGood' -Name 'Enabled' -Type DWord -Value 1 -Force
Start-Process -FilePath cmd.exe -ArgumentList '/c bcdedit /Set {Current} BootMenuPolicy Legacy' -Wait
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)

View File

@@ -1,61 +0,0 @@
# Enable Search Box Web Suggestions in Registry(explorer restart)
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Enables web suggestions when searching using Windows Search.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Enable Search Box Web Suggestions in Registry(explorer restart)",
"Description": "Enables web suggestions when searching using Windows Search.",
"category": "Features",
"panel": "1",
"Order": "a015_",
"feature": [],
"InvokeScript": [
"
If (!(Test-Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer')) {
New-Item -Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer' -Force | Out-Null
}
New-ItemProperty -Path 'HKCU:\\SOFTWARE\\Policies\\Microsoft\\Windows\\Explorer' -Name 'DisableSearchBoxSuggestions' -Type DWord -Value 0 -Force
Stop-Process -name explorer -force
"
],
"link": "https://christitustech.github.io/Winutil/dev/features/Features/EnableSearchSuggestions"
}
```
</details>
## Invoke Script
```powershell
If (!(Test-Path 'HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer')) {
New-Item -Path 'HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer' -Force | Out-Null
}
New-ItemProperty -Path 'HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer' -Name 'DisableSearchBoxSuggestions' -Type DWord -Value 0 -Force
Stop-Process -name explorer -force
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)

View File

@@ -1,80 +0,0 @@
# Install Features
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Install Features",
"category": "Features",
"panel": "1",
"Order": "a060_",
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/Winutil/dev/features/Features/Install"
}
```
</details>
## Function: Invoke-WPFFeatureInstall
```powershell
function Invoke-WPFFeatureInstall {
<#
.SYNOPSIS
Installs selected Windows Features
#>
if($sync.ProcessRunning) {
$msg = "[Invoke-WPFFeatureInstall] Install process is currently running."
[System.Windows.MessageBox]::Show($msg, "Winutil", [System.Windows.MessageBoxButton]::OK, [System.Windows.MessageBoxImage]::Warning)
return
}
$Features = (Get-WinutilCheckBoxes)["WPFFeature"]
Invoke-WPFRunspace -ArgumentList $Features -DebugPreference $DebugPreference -ScriptBlock {
param($Features, $DebugPreference)
$sync.ProcessRunning = $true
if ($Features.count -eq 1) {
$sync.form.Dispatcher.Invoke([action]{ Set-WinutilTaskbaritem -state "Indeterminate" -value 0.01 -overlay "logo" })
} else {
$sync.form.Dispatcher.Invoke([action]{ Set-WinutilTaskbaritem -state "Normal" -value 0.01 -overlay "logo" })
}
Invoke-WinutilFeatureInstall $Features
$sync.ProcessRunning = $false
$sync.form.Dispatcher.Invoke([action]{ Set-WinutilTaskbaritem -state "None" -overlay "checkmark" })
Write-Host "==================================="
Write-Host "--- Features are Installed ---"
Write-Host "--- A Reboot may be required ---"
Write-Host "==================================="
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)

View File

@@ -1,61 +1,20 @@
# Enable Daily Registry Backup Task 12.30am # Enable Daily Registry Backup Task 12.30am
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Enables daily registry backup, previously disabled by Microsoft in Windows 10 1803.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json ```json
{ "WPFFeatureRegBackup": {
"Content": "Enable Daily Registry Backup Task 12.30am", "Content": "Enable Daily Registry Backup Task 12.30am",
"Description": "Enables daily registry backup, previously disabled by Microsoft in Windows 10 1803.", "Description": "Enables daily registry backup, previously disabled by Microsoft in Windows 10 1803.",
"category": "Features", "category": "Features",
"panel": "1", "panel": "1",
"Order": "a017_", "Order": "a017_",
"feature": [], "feature": [],
"InvokeScript": [ "InvokeScript": [
" "
New-ItemProperty -Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager' -Name 'EnablePeriodicBackup' -Type DWord -Value 1 -Force New-ItemProperty -Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager' -Name 'EnablePeriodicBackup' -Type DWord -Value 1 -Force
New-ItemProperty -Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager' -Name 'BackupCount' -Type DWord -Value 2 -Force New-ItemProperty -Path 'HKLM:\\SYSTEM\\CurrentControlSet\\Control\\Session Manager\\Configuration Manager' -Name 'BackupCount' -Type DWord -Value 2 -Force
$action = New-ScheduledTaskAction -Execute 'schtasks' -Argument '/run /i /tn \"\\Microsoft\\Windows\\Registry\\RegIdleBackup\"' $action = New-ScheduledTaskAction -Execute 'schtasks' -Argument '/run /i /tn \"\\Microsoft\\Windows\\Registry\\RegIdleBackup\"'
$trigger = New-ScheduledTaskTrigger -Daily -At 00:30 $trigger = New-ScheduledTaskTrigger -Daily -At 00:30
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName 'AutoRegBackup' -Description 'Create System Registry Backups' -User 'System' Register-ScheduledTask -Action $action -Trigger $trigger -TaskName 'AutoRegBackup' -Description 'Create System Registry Backups' -User 'System'
" "
], ],
"link": "https://christitustech.github.io/Winutil/dev/features/Features/RegBackup"
}
``` ```
</details>
## Invoke Script
```powershell
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager' -Name 'EnablePeriodicBackup' -Type DWord -Value 1 -Force
New-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Configuration Manager' -Name 'BackupCount' -Type DWord -Value 2 -Force
$action = New-ScheduledTaskAction -Execute 'schtasks' -Argument '/run /i /tn "\Microsoft\Windows\Registry\RegIdleBackup"'
$trigger = New-ScheduledTaskTrigger -Daily -At 00:30
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName 'AutoRegBackup' -Description 'Create System Registry Backups' -User 'System'
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)

View File

@@ -1,39 +1,13 @@
# Windows Sandbox # Windows Sandbox
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Windows Sandbox is a lightweight virtual machine that provides a temporary desktop environment to safely run applications and programs in isolation.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json ```json
{ "WPFFeaturesSandbox": {
"Content": "Windows Sandbox", "Content": "Windows Sandbox",
"category": "Features", "Description": "Windows Sandbox is a lightweight virtual machine that provides a temporary desktop environment to safely run applications and programs in isolation.",
"panel": "1", "category": "Features",
"Order": "a021_", "panel": "1",
"Description": "Windows Sandbox is a lightweight virtual machine that provides a temporary desktop environment to safely run applications and programs in isolation.", "Order": "a021_",
"link": "https://christitustech.github.io/Winutil/dev/features/Features/Sandbox" "feature": [
} "Containers-DisposableClientVM"
],
``` ```
</details>
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)

View File

@@ -1,20 +1,6 @@
--- ---
weight: 3 weight: 1
title: "Features"
--- ---
## Features {{< autolinks section="dev/features/features" >}}
### Features
- [All .Net Framework (2,3,4)](dotnet/)
- [Disable Legacy F8 Boot Recovery](disablelegacyrecovery/)
- [Disable Search Box Web Suggestions in Registry(explorer restart)](disablesearchsuggestions/)
- [Enable Daily Registry Backup Task 12.30am](regbackup/)
- [Enable Legacy F8 Boot Recovery](enablelegacyrecovery/)
- [Enable Search Box Web Suggestions in Registry(explorer restart)](enablesearchsuggestions/)
- [HyperV Virtualization](hyperv/)
- [Install Features](install/)
- [Legacy Media (WMP, DirectPlay)](legacymedia/)
- [NFS - Network File System](nfs/)
- [Windows Sandbox](sandbox/)
- [Windows Subsystem for Linux](wsl/)

View File

@@ -1,56 +1,14 @@
# All .Net Framework (2,3,4) # All .Net Framework (2,3,4)
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
.NET and .NET Framework is a developer platform made up of tools, programming languages, and libraries for building many different types of applications.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json ```json
{ "WPFFeaturesdotnet": {
"Content": "All .Net Framework (2,3,4)", "Content": "All .Net Framework (2,3,4)",
"Description": ".NET and .NET Framework is a developer platform made up of tools, programming languages, and libraries for building many different types of applications.", "Description": ".NET and .NET Framework is a developer platform made up of tools, programming languages, and libraries for building many different types of applications.",
"category": "Features", "category": "Features",
"panel": "1", "panel": "1",
"Order": "a010_", "Order": "a010_",
"feature": [ "feature": [
"NetFx4-AdvSrvs", "NetFx4-AdvSrvs",
"NetFx3" "NetFx3"
], ],
"InvokeScript": [],
"link": "https://christitustech.github.io/Winutil/dev/features/Features/dotnet"
}
``` ```
</details>
## Features
Optional Windows Features are additional functionalities or components in the Windows operating system that users can choose to enable or disable based on their specific needs and preferences.
You can find information about Optional Windows Features on [Microsoft's Website for Optional Features](https://learn.microsoft.com/en-us/windows/client-management/client-tools/add-remove-hide-features?pivots=windows-11).
### Features to install
- NetFx4-AdvSrvs
- NetFx3
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)

View File

@@ -1,76 +1,16 @@
# HyperV Virtualization # HyperV Virtualization
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Hyper-V is a hardware virtualization product developed by Microsoft that allows users to create and manage virtual machines.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json ```json
{ "WPFFeatureshyperv": {
"Content": "HyperV Virtualization", "Content": "HyperV Virtualization",
"Description": "Hyper-V is a hardware virtualization product developed by Microsoft that allows users to create and manage virtual machines.", "Description": "Hyper-V is a hardware virtualization product developed by Microsoft that allows users to create and manage virtual machines.",
"category": "Features", "category": "Features",
"panel": "1", "panel": "1",
"Order": "a011_", "Order": "a011_",
"feature": [ "feature": [
"HypervisorPlatform", "Microsoft-Hyper-V-All"
"Microsoft-Hyper-V-All", ],
"Microsoft-Hyper-V", "InvokeScript": [
"Microsoft-Hyper-V-Tools-All", "bcdedit /set hypervisorschedulertype classic"
"Microsoft-Hyper-V-Management-PowerShell", ],
"Microsoft-Hyper-V-Hypervisor",
"Microsoft-Hyper-V-Services",
"Microsoft-Hyper-V-Management-Clients"
],
"InvokeScript": [
"Start-Process -FilePath cmd.exe -ArgumentList '/c bcdedit /set hypervisorschedulertype classic' -Wait"
],
"link": "https://christitustech.github.io/Winutil/dev/features/Features/hyperv"
}
``` ```
</details>
## Features
Optional Windows Features are additional functionalities or components in the Windows operating system that users can choose to enable or disable based on their specific needs and preferences.
You can find information about Optional Windows Features on [Microsoft's Website for Optional Features](https://learn.microsoft.com/en-us/windows/client-management/client-tools/add-remove-hide-features?pivots=windows-11).
### Features to install
- HypervisorPlatform
- Microsoft-Hyper-V-All
- Microsoft-Hyper-V
- Microsoft-Hyper-V-Tools-All
- Microsoft-Hyper-V-Management-PowerShell
- Microsoft-Hyper-V-Hypervisor
- Microsoft-Hyper-V-Services
- Microsoft-Hyper-V-Management-Clients
## Invoke Script
```powershell
Start-Process -FilePath cmd.exe -ArgumentList '/c bcdedit /set hypervisorschedulertype classic' -Wait
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)

View File

@@ -1,60 +1,16 @@
# Legacy Media (WMP, DirectPlay) # Legacy Media (WMP, DirectPlay)
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Enables legacy programs from previous versions of windows
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json ```json
{ "WPFFeatureslegacymedia": {
"Content": "Legacy Media (WMP, DirectPlay)", "Content": "Legacy Media (WMP, DirectPlay)",
"Description": "Enables legacy programs from previous versions of windows", "Description": "Enables legacy programs from previous versions of windows",
"category": "Features", "category": "Features",
"panel": "1", "panel": "1",
"Order": "a012_", "Order": "a012_",
"feature": [ "feature": [
"WindowsMediaPlayer", "WindowsMediaPlayer",
"MediaPlayback", "MediaPlayback",
"DirectPlay", "DirectPlay",
"LegacyComponents" "LegacyComponents"
], ],
"InvokeScript": [],
"link": "https://christitustech.github.io/Winutil/dev/features/Features/legacymedia"
}
``` ```
</details>
## Features
Optional Windows Features are additional functionalities or components in the Windows operating system that users can choose to enable or disable based on their specific needs and preferences.
You can find information about Optional Windows Features on [Microsoft's Website for Optional Features](https://learn.microsoft.com/en-us/windows/client-management/client-tools/add-remove-hide-features?pivots=windows-11).
### Features to install
- WindowsMediaPlayer
- MediaPlayback
- DirectPlay
- LegacyComponents
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)

View File

@@ -1,74 +1,22 @@
# NFS - Network File System # NFS - Network File System
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Network File System (NFS) is a mechanism for storing files on a network.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json ```json
{ "WPFFeaturenfs": {
"Content": "NFS - Network File System", "Content": "NFS - Network File System",
"Description": "Network File System (NFS) is a mechanism for storing files on a network.", "Description": "Network File System (NFS) is a mechanism for storing files on a network.",
"category": "Features", "category": "Features",
"panel": "1", "panel": "1",
"Order": "a014_", "Order": "a014_",
"feature": [ "feature": [
"ServicesForNFS-ClientOnly", "ServicesForNFS-ClientOnly",
"ClientForNFS-Infrastructure", "ClientForNFS-Infrastructure",
"NFS-Administration" "NFS-Administration"
], ],
"InvokeScript": [ "InvokeScript": [
"nfsadmin client stop", "nfsadmin client stop",
"Set-ItemProperty -Path 'HKLM:\\SOFTWARE\\Microsoft\\ClientForNFS\\CurrentVersion\\Default' -Name 'AnonymousUID' -Type DWord -Value 0", "Set-ItemProperty -Path 'HKLM:\\SOFTWARE\\Microsoft\\ClientForNFS\\CurrentVersion\\Default' -Name 'AnonymousUID' -Type DWord -Value 0",
"Set-ItemProperty -Path 'HKLM:\\SOFTWARE\\Microsoft\\ClientForNFS\\CurrentVersion\\Default' -Name 'AnonymousGID' -Type DWord -Value 0", "Set-ItemProperty -Path 'HKLM:\\SOFTWARE\\Microsoft\\ClientForNFS\\CurrentVersion\\Default' -Name 'AnonymousGID' -Type DWord -Value 0",
"nfsadmin client start", "nfsadmin client start",
"nfsadmin client localhost config fileaccess=755 SecFlavors=+sys -krb5 -krb5i" "nfsadmin client localhost config fileaccess=755 SecFlavors=+sys -krb5 -krb5i"
], ],
"link": "https://christitustech.github.io/Winutil/dev/features/Features/nfs"
}
``` ```
</details>
## Features
Optional Windows Features are additional functionalities or components in the Windows operating system that users can choose to enable or disable based on their specific needs and preferences.
You can find information about Optional Windows Features on [Microsoft's Website for Optional Features](https://learn.microsoft.com/en-us/windows/client-management/client-tools/add-remove-hide-features?pivots=windows-11).
### Features to install
- ServicesForNFS-ClientOnly
- ClientForNFS-Infrastructure
- NFS-Administration
## Invoke Script
```powershell
nfsadmin client stop
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default' -Name 'AnonymousUID' -Type DWord -Value 0
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\ClientForNFS\CurrentVersion\Default' -Name 'AnonymousGID' -Type DWord -Value 0
nfsadmin client start
nfsadmin client localhost config fileaccess=755 SecFlavors=+sys -krb5 -krb5i
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)

View File

@@ -1,56 +1,14 @@
# Windows Subsystem for Linux # Windows Subsystem for Linux
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Windows Subsystem for Linux is an optional feature of Windows that allows Linux programs to run natively on Windows without the need for a separate virtual machine or dual booting.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json ```json
{ "WPFFeaturewsl": {
"Content": "Windows Subsystem for Linux", "Content": "Windows Subsystem for Linux",
"Description": "Windows Subsystem for Linux is an optional feature of Windows that allows Linux programs to run natively on Windows without the need for a separate virtual machine or dual booting.", "Description": "Windows Subsystem for Linux is an optional feature of Windows that allows Linux programs to run natively on Windows without the need for a separate virtual machine or dual booting.",
"category": "Features", "category": "Features",
"panel": "1", "panel": "1",
"Order": "a020_", "Order": "a020_",
"feature": [ "feature": [
"VirtualMachinePlatform", "VirtualMachinePlatform",
"Microsoft-Windows-Subsystem-Linux" "Microsoft-Windows-Subsystem-Linux"
], ],
"InvokeScript": [],
"link": "https://christitustech.github.io/Winutil/dev/features/Features/wsl"
}
``` ```
</details>
## Features
Optional Windows Features are additional functionalities or components in the Windows operating system that users can choose to enable or disable based on their specific needs and preferences.
You can find information about Optional Windows Features on [Microsoft's Website for Optional Features](https://learn.microsoft.com/en-us/windows/client-management/client-tools/add-remove-hide-features?pivots=windows-11).
### Features to install
- VirtualMachinePlatform
- Microsoft-Windows-Subsystem-Linux
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)

View File

@@ -1,35 +1,5 @@
# Set Up Autologin # Set Up Autologin
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Set Up Autologin",
"category": "Fixes",
"Order": "a040_",
"panel": "1",
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/Winutil/dev/features/Fixes/Autologin"
}
```
</details>
## Function: Invoke-WPFPanelAutologin
```powershell ```powershell
function Invoke-WPFPanelAutologin { function Invoke-WPFPanelAutologin {
<# <#
@@ -43,14 +13,4 @@ function Invoke-WPFPanelAutologin {
Invoke-WebRequest -Uri "https://live.sysinternals.com/Autologon.exe" -OutFile "$env:temp\autologin.exe" Invoke-WebRequest -Uri "https://live.sysinternals.com/Autologon.exe" -OutFile "$env:temp\autologin.exe"
cmd /c "$env:temp\autologin.exe" /accepteula cmd /c "$env:temp\autologin.exe" /accepteula
} }
``` ```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)

View File

@@ -0,0 +1,141 @@
# System Corruption Scan
```powershell
function Invoke-WPFSystemRepair {
<#
.SYNOPSIS
Checks for system corruption using Chkdsk, SFC, and DISM
.DESCRIPTION
1. Chkdsk - Fixes disk and filesystem corruption
2. SFC Run 1 - Fixes system file corruption, and fixes DISM if it was corrupted
3. DISM - Fixes system image corruption, and fixes SFC's system image if it was corrupted
4. SFC Run 2 - Fixes system file corruption, this time with an almost guaranteed uncorrupted system image
#>
function Invoke-Chkdsk {
<#
.SYNOPSIS
Runs chkdsk on the system drive
.DESCRIPTION
Chkdsk /Scan - Runs an online scan on the system drive, attempts to fix any corruption, and queues other corruption for fixing on reboot
#>
param(
[int]$parentProgressId = 0
)
Write-Progress -Id 1 -ParentId $parentProgressId -Activity $childProgressBarActivity -Status "Running chkdsk..." -PercentComplete 0
$oldpercent = 0
# 2>&1 redirects stdout, allowing iteration over the output
chkdsk.exe /scan /perf 2>&1 | ForEach-Object {
Write-Debug $_
# Regex to match the total percentage regardless of windows locale (it's always the second percentage in the status output)
if ($_ -match "%.*?(\d+)%") {
[int]$percent = $matches[1]
if ($percent -gt $oldpercent) {
Write-Progress -Id 1 -Activity $childProgressBarActivity -Status "Running chkdsk... ($percent%)" -PercentComplete $percent
$oldpercent = $percent
}
}
}
Write-Progress -Id 1 -Activity $childProgressBarActivity -Status "chkdsk Completed" -PercentComplete 100 -Completed
}
function Invoke-SFC {
<#
.SYNOPSIS
Runs sfc on the system drive
.DESCRIPTION
SFC /ScanNow - Performs a scan of the system files and fixes any corruption
.NOTES
ErrorActionPreference is set locally within a script block & {...} to isolate their effects.
ErrorActionPreference suppresses false errors caused by sfc.exe output redirection.
A bug in SFC output buffering causes progress updates to appear in chunks when redirecting output
#>
param(
[int]$parentProgressId = 0
)
& {
$ErrorActionPreference = "SilentlyContinue"
Write-Progress -Id 1 -ParentId $parentProgressId -Activity $childProgressBarActivity -Status "Running SFC..." -PercentComplete 0
$oldpercent = 0
sfc.exe /scannow 2>&1 | ForEach-Object {
Write-Debug $_
if ($_ -ne "") {
# sfc.exe /scannow outputs unicode characters, so we directly remove null characters for optimization
$utf8line = $_ -replace "`0", ""
if ($utf8line -match "(\d+)\s*%") {
[int]$percent = $matches[1]
if ($percent -gt $oldpercent) {
Write-Progress -Id 1 -Activity $childProgressBarActivity -Status "Running SFC... ($percent%)" -PercentComplete $percent
$oldpercent = $percent
}
}
}
}
Write-Progress -Id 1 -Activity $childProgressBarActivity -Status "SFC Completed" -PercentComplete 100 -Completed
}
}
function Invoke-DISM {
<#
.SYNOPSIS
Runs DISM on the system drive
.DESCRIPTION
DISM - Fixes system image corruption, and fixes SFC's system image if it was corrupted
/Online - Fixes the currently running system image
/Cleanup-Image - Performs cleanup operations on the image, could remove some unneeded temporary files
/Restorehealth - Performs a scan of the image and fixes any corruption
#>
param(
[int]$parentProgressId = 0
)
Write-Progress -Id 1 -ParentId $parentProgressId -Activity $childProgressBarActivity -Status "Running DISM..." -PercentComplete 0
$oldpercent = 0
DISM /Online /Cleanup-Image /RestoreHealth | ForEach-Object {
Write-Debug $_
# Filter for lines that contain a percentage that is greater than the previous one
if ($_ -match "(\d+)[.,]\d+%") {
[int]$percent = $matches[1]
if ($percent -gt $oldpercent) {
# Update the progress bar
Write-Progress -Id 1 -Activity $childProgressBarActivity -Status "Running DISM... ($percent%)" -PercentComplete $percent
$oldpercent = $percent
}
}
}
Write-Progress -Id 1 -Activity $childProgressBarActivity -Status "DISM Completed" -PercentComplete 100 -Completed
}
try {
Set-WinUtilTaskbaritem -state "Indeterminate" -overlay "logo"
$childProgressBarActivity = "Scanning for corruption"
Write-Progress -Id 0 -Activity "Repairing Windows" -PercentComplete 0
# Step 1: Run chkdsk to fix disk and filesystem corruption before proceeding with system file repairs
Invoke-Chkdsk
Write-Progress -Id 0 -Activity "Repairing Windows" -PercentComplete 25
# Step 2: Run SFC to fix system file corruption and ensure DISM can operate correctly
Invoke-SFC
Write-Progress -Id 0 -Activity "Repairing Windows" -PercentComplete 50
# Step 3: Run DISM to repair the system image, which SFC relies on for accurate repairs
Invoke-DISM
Write-Progress -Id 0 -Activity "Repairing Windows" -PercentComplete 75
# Step 4: Run SFC again to ensure system files are repaired using the now-fixed system image
Invoke-SFC
Write-Progress -Id 0 -Activity "Repairing Windows" -PercentComplete 100 -Completed
Set-WinUtilTaskbaritem -state "None" -overlay "checkmark"
} catch {
Write-Error "An error occurred while repairing the system: $_"
Set-WinUtilTaskbaritem -state "Error" -overlay "warning"
} finally {
Write-Host "==> Finished System Repair"
Set-WinUtilTaskbaritem -state "None" -overlay "checkmark"
}
}
```

View File

@@ -1,74 +0,0 @@
# System Corruption Scan
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "System Corruption Scan",
"category": "Fixes",
"panel": "1",
"Order": "a043_",
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/Winutil/dev/features/Fixes/DISM"
}
```
</details>
## Function: Invoke-WPFPanelDISM
```powershell
function Invoke-WPFPanelDISM {
<#
.SYNOPSIS
Checks for system corruption using Chkdsk, SFC, and DISM
.DESCRIPTION
1. Chkdsk - Fixes disk and filesystem corruption
2. SFC Run 1 - Fixes system file corruption, and fixes DISM if it was corrupted
3. DISM - Fixes system image corruption, and fixes SFC's system image if it was corrupted
4. SFC Run 2 - Fixes system file corruption, this time with an almost guaranteed uncorrupted system image
.NOTES
Command Arguments:
1. Chkdsk
/Scan - Runs an online scan on the system drive, attempts to fix any corruption, and queues other corruption for fixing on reboot
2. SFC
/ScanNow - Performs a scan of the system files and fixes any corruption
3. DISM - Fixes system image corruption, and fixes SFC's system image if it was corrupted
/Online - Fixes the currently running system image
/Cleanup-Image - Performs cleanup operations on the image, could remove some unneeded temporary files
/Restorehealth - Performs a scan of the image and fixes any corruption
#>
Start-Process PowerShell -ArgumentList "Write-Host '(1/4) Chkdsk' -ForegroundColor Green; Chkdsk /scan;
Write-Host '`n(2/4) SFC - 1st scan' -ForegroundColor Green; sfc /scannow;
Write-Host '`n(3/4) DISM' -ForegroundColor Green; DISM /Online /Cleanup-Image /Restorehealth;
Write-Host '`n(4/4) SFC - 2nd scan' -ForegroundColor Green; sfc /scannow;
Read-Host '`nPress Enter to Continue'" -verb runas
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)

View File

@@ -1,35 +1,5 @@
# Reset Network # Reset Network
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Reset Network",
"category": "Fixes",
"Order": "a042_",
"panel": "1",
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/Winutil/dev/features/Fixes/Network"
}
```
</details>
## Function: Invoke-WPFFixesNetwork
```powershell ```powershell
function Invoke-WPFFixesNetwork { function Invoke-WPFFixesNetwork {
<# <#
@@ -41,13 +11,20 @@ function Invoke-WPFFixesNetwork {
Write-Host "Resetting Network with netsh" Write-Host "Resetting Network with netsh"
Set-WinUtilTaskbaritem -state "Normal" -value 0.01 -overlay "logo"
# Reset WinSock catalog to a clean state # Reset WinSock catalog to a clean state
Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "winsock", "reset" Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "winsock", "reset"
Set-WinUtilTaskbaritem -state "Normal" -value 0.35 -overlay "logo"
# Resets WinHTTP proxy setting to DIRECT # Resets WinHTTP proxy setting to DIRECT
Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "winhttp", "reset", "proxy" Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "winhttp", "reset", "proxy"
Set-WinUtilTaskbaritem -state "Normal" -value 0.7 -overlay "logo"
# Removes all user configured IP settings # Removes all user configured IP settings
Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "int", "ip", "reset" Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "int", "ip", "reset"
Set-WinUtilTaskbaritem -state "None" -overlay "checkmark"
Write-Host "Process complete. Please reboot your computer." Write-Host "Process complete. Please reboot your computer."
$ButtonType = [System.Windows.MessageBoxButton]::OK $ButtonType = [System.Windows.MessageBoxButton]::OK
@@ -60,14 +37,4 @@ function Invoke-WPFFixesNetwork {
Write-Host "-- Network Configuration has been Reset --" Write-Host "-- Network Configuration has been Reset --"
Write-Host "==========================================" Write-Host "=========================================="
} }
``` ```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)

View File

@@ -1,35 +1,5 @@
# Remove Adobe Creative Cloud # Remove Adobe Creative Cloud
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Remove Adobe Creative Cloud",
"category": "Fixes",
"panel": "1",
"Order": "a045_",
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/Winutil/dev/features/Fixes/RunAdobeCCCleanerTool"
}
```
</details>
## Function: Invoke-WPFRunAdobeCCCleanerTool
```powershell ```powershell
function Invoke-WPFRunAdobeCCCleanerTool { function Invoke-WPFRunAdobeCCCleanerTool {
<# <#
@@ -63,14 +33,4 @@ function Invoke-WPFRunAdobeCCCleanerTool {
} }
} }
} }
``` ```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)

View File

@@ -1,35 +1,5 @@
# Reset Windows Update # Reset Windows Update
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Reset Windows Update",
"category": "Fixes",
"panel": "1",
"Order": "a041_",
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/Winutil/dev/features/Fixes/Update"
}
```
</details>
## Function: Invoke-WPFFixesUpdate
```powershell ```powershell
function Invoke-WPFFixesUpdate { function Invoke-WPFFixesUpdate {
@@ -39,19 +9,7 @@ function Invoke-WPFFixesUpdate {
Performs various tasks in an attempt to repair Windows Update Performs various tasks in an attempt to repair Windows Update
.DESCRIPTION .DESCRIPTION
1. (Aggressive Only) Scans the system for corruption using chkdsk, SFC, and DISM 1. (Aggressive Only) Scans the system for corruption using the Invoke-WPFSystemRepair function
Steps:
1. Runs chkdsk /scan /perf
/scan - Runs an online scan on the volume
/perf - Uses more system resources to complete a scan as fast as possible
2. Runs SFC /scannow
/scannow - Scans integrity of all protected system files and repairs files with problems when possible
3. Runs DISM /Online /Cleanup-Image /RestoreHealth
/Online - Targets the running operating system
/Cleanup-Image - Performs cleanup and recovery operations on the image
/RestoreHealth - Scans the image for component store corruption and attempts to repair the corruption using Windows Update
4. Runs SFC /scannow
Ran twice in case DISM repaired SFC
2. Stops Windows Update Services 2. Stops Windows Update Services
3. Remove the QMGR Data file, which stores BITS jobs 3. Remove the QMGR Data file, which stores BITS jobs
4. (Aggressive Only) Renames the DataStore and CatRoot2 folders 4. (Aggressive Only) Renames the DataStore and CatRoot2 folders
@@ -75,108 +33,13 @@ function Invoke-WPFFixesUpdate {
param($Aggressive = $false) param($Aggressive = $false)
Write-Progress -Id 0 -Activity "Repairing Windows Update" -PercentComplete 0 Write-Progress -Id 0 -Activity "Repairing Windows Update" -PercentComplete 0
Set-WinUtilTaskbaritem -state "Indeterminate" -overlay "logo"
Write-Host "Starting Windows Update Repair..."
# Wait for the first progress bar to show, otherwise the second one won't show # Wait for the first progress bar to show, otherwise the second one won't show
Start-Sleep -Milliseconds 200 Start-Sleep -Milliseconds 200
if ($Aggressive) { if ($Aggressive) {
# Scan system for corruption Invoke-WPFSystemRepair
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Scanning for corruption..." -PercentComplete 0
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Running chkdsk..." -PercentComplete 0
# 2>&1 redirects stdout, alowing iteration over the output
chkdsk.exe /scan /perf 2>&1 | ForEach-Object {
# Write stdout to the Verbose stream
Write-Verbose $_
# Get the index of the total percentage
$index = $_.IndexOf("Total:")
if (
# If the percent is found
($percent = try {(
$_.Substring(
$index + 6,
$_.IndexOf("%", $index) - $index - 6
)
).Trim()} catch {0}) `
<# And the current percentage is greater than the previous one #>`
-and $percent -gt $oldpercent
) {
# Update the progress bar
$oldpercent = $percent
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Running chkdsk... ($percent%)" -PercentComplete $percent
}
}
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Running SFC..." -PercentComplete 0
$oldpercent = 0
# SFC has a bug when redirected which causes it to output only when the stdout buffer is full, causing the progress bar to move in chunks
sfc /scannow 2>&1 | ForEach-Object {
# Write stdout to the Verbose stream
Write-Verbose $_
# Filter for lines that contain a percentage that is greater than the previous one
if (
(
# Use a different method to get the percentage that accounts for SFC's Unicode output
[int]$percent = try {(
(
$_.Substring(
$_.IndexOf("n") + 2,
$_.IndexOf("%") - $_.IndexOf("n") - 2
).ToCharArray() | Where-Object {$_}
) -join ''
).TrimStart()} catch {0}
) -and $percent -gt $oldpercent
) {
# Update the progress bar
$oldpercent = $percent
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Running SFC... ($percent%)" -PercentComplete $percent
}
}
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Running DISM..." -PercentComplete 0
$oldpercent = 0
DISM /Online /Cleanup-Image /RestoreHealth | ForEach-Object {
# Write stdout to the Verbose stream
Write-Verbose $_
# Filter for lines that contain a percentage that is greater than the previous one
if (
($percent = try {
[int]($_ -replace "\[" -replace "=" -replace " " -replace "%" -replace "\]")
} catch {0}) `
-and $percent -gt $oldpercent
) {
# Update the progress bar
$oldpercent = $percent
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Running DISM... ($percent%)" -PercentComplete $percent
}
}
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Running SFC again..." -PercentComplete 0
$oldpercent = 0
sfc /scannow 2>&1 | ForEach-Object {
# Write stdout to the Verbose stream
Write-Verbose $_
# Filter for lines that contain a percentage that is greater than the previous one
if (
(
[int]$percent = try {(
(
$_.Substring(
$_.IndexOf("n") + 2,
$_.IndexOf("%") - $_.IndexOf("n") - 2
).ToCharArray() | Where-Object {$_}
) -join ''
).TrimStart()} catch {0}
) -and $percent -gt $oldpercent
) {
# Update the progress bar
$oldpercent = $percent
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Running SFC... ($percent%)" -PercentComplete $percent
}
}
Write-Progress -Id 1 -ParentId 0 -Activity "Scanning for corruption" -Status "Completed" -PercentComplete 100
} }
@@ -220,9 +83,9 @@ function Invoke-WPFFixesUpdate {
# Reset the Security Descriptors on the Windows Update Services # Reset the Security Descriptors on the Windows Update Services
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Resetting the WU Service Security Descriptors..." -PercentComplete 25 Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Resetting the WU Service Security Descriptors..." -PercentComplete 25
Write-Progress -Id 4 -ParentId 0 -Activity "Resetting the WU Service Security Descriptors" -Status "Resetting the BITS Security Descriptor..." -PercentComplete 0 Write-Progress -Id 4 -ParentId 0 -Activity "Resetting the WU Service Security Descriptors" -Status "Resetting the BITS Security Descriptor..." -PercentComplete 0
Start-Process -NoNewWindow -FilePath "sc.exe" -ArgumentList "sdset", "bits", "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)" Start-Process -NoNewWindow -FilePath "sc.exe" -ArgumentList "sdset", "bits", "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)" -Wait
Write-Progress -Id 4 -ParentId 0 -Activity "Resetting the WU Service Security Descriptors" -Status "Resetting the wuauserv Security Descriptor..." -PercentComplete 50 Write-Progress -Id 4 -ParentId 0 -Activity "Resetting the WU Service Security Descriptors" -Status "Resetting the wuauserv Security Descriptor..." -PercentComplete 50
Start-Process -NoNewWindow -FilePath "sc.exe" -ArgumentList "sdset", "wuauserv", "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)" Start-Process -NoNewWindow -FilePath "sc.exe" -ArgumentList "sdset", "wuauserv", "D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;AU)(A;;CCLCSWRPWPDTLOCRRC;;;PU)" -Wait
Write-Progress -Id 4 -ParentId 0 -Activity "Resetting the WU Service Security Descriptors" -Status "Completed" -PercentComplete 100 Write-Progress -Id 4 -ParentId 0 -Activity "Resetting the WU Service Security Descriptors" -Status "Completed" -PercentComplete 100
} }
@@ -254,19 +117,53 @@ function Invoke-WPFFixesUpdate {
if (Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate") { if (Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate") {
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Removing WSUS client settings..." -PercentComplete 60 Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Removing WSUS client settings..." -PercentComplete 60
Write-Progress -Id 6 -ParentId 0 -Activity "Removing WSUS client settings" -PercentComplete 0 Write-Progress -Id 6 -ParentId 0 -Activity "Removing WSUS client settings" -PercentComplete 0
Start-Process -NoNewWindow -FilePath "REG" -ArgumentList "DELETE", "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate", "/v", "AccountDomainSid", "/f" -RedirectStandardError $true Start-Process -NoNewWindow -FilePath "REG" -ArgumentList "DELETE", "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate", "/v", "AccountDomainSid", "/f" -RedirectStandardError "NUL"
Start-Process -NoNewWindow -FilePath "REG" -ArgumentList "DELETE", "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate", "/v", "PingID", "/f" -RedirectStandardError $true Start-Process -NoNewWindow -FilePath "REG" -ArgumentList "DELETE", "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate", "/v", "PingID", "/f" -RedirectStandardError "NUL"
Start-Process -NoNewWindow -FilePath "REG" -ArgumentList "DELETE", "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate", "/v", "SusClientId", "/f" -RedirectStandardError $true Start-Process -NoNewWindow -FilePath "REG" -ArgumentList "DELETE", "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate", "/v", "SusClientId", "/f" -RedirectStandardError "NUL"
Write-Progress -Id 6 -ParentId 0 -Activity "Removing WSUS client settings" -Status "Completed" -PercentComplete 100 Write-Progress -Id 6 -ParentId 0 -Activity "Removing WSUS client settings" -Status "Completed" -PercentComplete 100
} }
# Remove Group Policy Windows Update settings
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Removing Group Policy Windows Update settings..." -PercentComplete 60
Write-Progress -Id 7 -ParentId 0 -Activity "Removing Group Policy Windows Update settings" -PercentComplete 0
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" -Name "ExcludeWUDriversInQualityUpdate" -ErrorAction SilentlyContinue
Write-Host "Defaulting driver offering through Windows Update..."
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\Device Metadata" -Name "PreventDeviceMetadataFromNetwork" -ErrorAction SilentlyContinue
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DontPromptForWindowsUpdate" -ErrorAction SilentlyContinue
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DontSearchWindowsUpdate" -ErrorAction SilentlyContinue
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\DriverSearching" -Name "DriverUpdateWizardWuSearchEnabled" -ErrorAction SilentlyContinue
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate" -Name "ExcludeWUDriversInQualityUpdate" -ErrorAction SilentlyContinue
Write-Host "Defaulting Windows Update automatic restart..."
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "NoAutoRebootWithLoggedOnUsers" -ErrorAction SilentlyContinue
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU" -Name "AUPowerManagement" -ErrorAction SilentlyContinue
Write-Host "Clearing ANY Windows Update Policy settings..."
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Name "BranchReadinessLevel" -ErrorAction SilentlyContinue
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Name "DeferFeatureUpdatesPeriodInDays" -ErrorAction SilentlyContinue
Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" -Name "DeferQualityUpdatesPeriodInDays" -ErrorAction SilentlyContinue
Remove-Item -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Policies" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item -Path "HKCU:\Software\Microsoft\WindowsSelfHost" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item -Path "HKCU:\Software\Policies" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item -Path "HKLM:\Software\Microsoft\Policies" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\WindowsStore\WindowsUpdate" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item -Path "HKLM:\Software\Microsoft\WindowsSelfHost" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item -Path "HKLM:\Software\Policies" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item -Path "HKLM:\Software\WOW6432Node\Microsoft\Policies" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item -Path "HKLM:\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Policies" -Recurse -Force -ErrorAction SilentlyContinue
Remove-Item -Path "HKLM:\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\WindowsStore\WindowsUpdate" -Recurse -Force -ErrorAction SilentlyContinue
Start-Process -NoNewWindow -FilePath "secedit" -ArgumentList "/configure", "/cfg", "$env:windir\inf\defltbase.inf", "/db", "defltbase.sdb", "/verbose" -Wait
Start-Process -NoNewWindow -FilePath "cmd.exe" -ArgumentList "/c RD /S /Q $env:WinDir\System32\GroupPolicyUsers" -Wait
Start-Process -NoNewWindow -FilePath "cmd.exe" -ArgumentList "/c RD /S /Q $env:WinDir\System32\GroupPolicy" -Wait
Start-Process -NoNewWindow -FilePath "gpupdate" -ArgumentList "/force" -Wait
Write-Progress -Id 7 -ParentId 0 -Activity "Removing Group Policy Windows Update settings" -Status "Completed" -PercentComplete 100
# Reset WinSock # Reset WinSock
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Resetting WinSock..." -PercentComplete 65 Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Resetting WinSock..." -PercentComplete 65
Write-Progress -Id 7 -ParentId 0 -Activity "Resetting WinSock" -Status "Resetting WinSock..." -PercentComplete 0 Write-Progress -Id 7 -ParentId 0 -Activity "Resetting WinSock" -Status "Resetting WinSock..." -PercentComplete 0
Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "winsock", "reset" -RedirectStandardOutput $true Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "winsock", "reset"
Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "winhttp", "reset", "proxy" -RedirectStandardOutput $true Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "winhttp", "reset", "proxy"
Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "int", "ip", "reset" -RedirectStandardOutput $true Start-Process -NoNewWindow -FilePath "netsh" -ArgumentList "int", "ip", "reset"
Write-Progress -Id 7 -ParentId 0 -Activity "Resetting WinSock" -Status "Completed" -PercentComplete 100 Write-Progress -Id 7 -ParentId 0 -Activity "Resetting WinSock" -Status "Completed" -PercentComplete 100
@@ -295,11 +192,18 @@ function Invoke-WPFFixesUpdate {
# Force Windows Update to check for updates # Force Windows Update to check for updates
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Forcing discovery..." -PercentComplete 95 Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Forcing discovery..." -PercentComplete 95
Write-Progress -Id 10 -ParentId 0 -Activity "Forcing discovery" -Status "Forcing discovery..." -PercentComplete 0 Write-Progress -Id 10 -ParentId 0 -Activity "Forcing discovery" -Status "Forcing discovery..." -PercentComplete 0
(New-Object -ComObject Microsoft.Update.AutoUpdate).DetectNow() try {
(New-Object -ComObject Microsoft.Update.AutoUpdate).DetectNow()
} catch {
Set-WinUtilTaskbaritem -state "Error" -overlay "warning"
Write-Warning "Failed to create Windows Update COM object: $_"
}
Start-Process -NoNewWindow -FilePath "wuauclt" -ArgumentList "/resetauthorization", "/detectnow" Start-Process -NoNewWindow -FilePath "wuauclt" -ArgumentList "/resetauthorization", "/detectnow"
Write-Progress -Id 10 -ParentId 0 -Activity "Forcing discovery" -Status "Completed" -PercentComplete 100 Write-Progress -Id 10 -ParentId 0 -Activity "Forcing discovery" -Status "Completed" -PercentComplete 100
Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Completed" -PercentComplete 100 Write-Progress -Id 0 -Activity "Repairing Windows Update" -Status "Completed" -PercentComplete 100
Set-WinUtilTaskbaritem -state "None" -overlay "checkmark"
$ButtonType = [System.Windows.MessageBoxButton]::OK $ButtonType = [System.Windows.MessageBoxButton]::OK
$MessageboxTitle = "Reset Windows Update " $MessageboxTitle = "Reset Windows Update "
$Messageboxbody = ("Stock settings loaded.`n Please reboot your computer") $Messageboxbody = ("Stock settings loaded.`n Please reboot your computer")
@@ -317,7 +221,7 @@ function Invoke-WPFFixesUpdate {
Write-Progress -Id 3 -Activity "Renaming/Removing Files" -Completed Write-Progress -Id 3 -Activity "Renaming/Removing Files" -Completed
Write-Progress -Id 4 -Activity "Resetting the WU Service Security Descriptors" -Completed Write-Progress -Id 4 -Activity "Resetting the WU Service Security Descriptors" -Completed
Write-Progress -Id 5 -Activity "Reregistering DLLs" -Completed Write-Progress -Id 5 -Activity "Reregistering DLLs" -Completed
Write-Progress -Id 6 -Activity "Removing WSUS client settings" -Completed Write-Progress -Id 6 -Activity "Removing Group Policy Windows Update settings" -Completed
Write-Progress -Id 7 -Activity "Resetting WinSock" -Completed Write-Progress -Id 7 -Activity "Resetting WinSock" -Completed
Write-Progress -Id 8 -Activity "Deleting BITS jobs" -Completed Write-Progress -Id 8 -Activity "Deleting BITS jobs" -Completed
Write-Progress -Id 9 -Activity "Starting Windows Update Services" -Completed Write-Progress -Id 9 -Activity "Starting Windows Update Services" -Completed
@@ -325,12 +229,3 @@ function Invoke-WPFFixesUpdate {
} }
``` ```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)

View File

@@ -1,35 +1,5 @@
# WinGet Reinstall # WinGet Reinstall
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "WinGet Reinstall",
"category": "Fixes",
"panel": "1",
"Order": "a044_",
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/Winutil/dev/features/Fixes/Winget"
}
```
</details>
## Function: Invoke-WPFFixesWinget
```powershell ```powershell
function Invoke-WPFFixesWinget { function Invoke-WPFFixesWinget {
@@ -41,18 +11,17 @@ function Invoke-WPFFixesWinget {
BravoNorris for the fantastic idea of a button to reinstall winget BravoNorris for the fantastic idea of a button to reinstall winget
#> #>
# Install Choco if not already present # Install Choco if not already present
Install-WinutilChoco try {
Start-Process -FilePath "choco" -ArgumentList "install winget -y --force" -NoNewWindow -Wait Set-WinUtilTaskbaritem -state "Indeterminate" -overlay "logo"
Write-Host "==> Starting Winget Repair"
Install-WinUtilWinget -Force
} catch {
Write-Error "Failed to install winget: $_"
Set-WinUtilTaskbaritem -state "Error" -overlay "warning"
} finally {
Write-Host "==> Finished Winget Repair"
Set-WinUtilTaskbaritem -state "None" -overlay "checkmark"
}
} }
``` ```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)

View File

@@ -1,14 +1,6 @@
--- ---
weight: 3 weight: 2
title: "Fixes"
--- ---
## Features {{< autolinks section="dev/features/fixes" >}}
### Fixes
- [Remove Adobe Creative Cloud](runadobecccleanertool/)
- [Reset Network](network/)
- [Reset Windows Update](update/)
- [Set Up Autologin](autologin/)
- [System Corruption Scan](dism/)
- [WinGet Reinstall](winget/)

View File

@@ -1,16 +1,6 @@
--- ---
weight: 3 weight: 3
title: "Legacy Windows Panels"
--- ---
## Features {{< autolinks section="dev/features/legacy-windows-panels" >}}
### Legacy Windows Panels
- [Control Panel](control/)
- [Network Connections](network/)
- [Power Panel](power/)
- [Printer Settings](printer/)
- [Region](region/)
- [Sound Settings](sound/)
- [System Properties](system/)
- [User Accounts](user/)

View File

@@ -1,34 +1,5 @@
# Control Panel # Control Panel
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Control Panel",
"category": "Legacy Windows Panels",
"panel": "2",
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/Winutil/dev/features/Legacy-Windows-Panels/control"
}
```
</details>
## Function: Invoke-WPFControlPanel
```powershell ```powershell
function Invoke-WPFControlPanel { function Invoke-WPFControlPanel {
<# <#
@@ -43,23 +14,17 @@ function Invoke-WPFControlPanel {
param($Panel) param($Panel)
switch ($Panel) { switch ($Panel) {
"WPFPanelcontrol" {cmd /c control} "WPFPanelControl" {control}
"WPFPanelnetwork" {cmd /c ncpa.cpl} "WPFPanelComputer" {compmgmt.msc}
"WPFPanelpower" {cmd /c powercfg.cpl} "WPFPanelNetwork" {ncpa.cpl}
"WPFPanelregion" {cmd /c intl.cpl} "WPFPanelPower" {powercfg.cpl}
"WPFPanelsound" {cmd /c mmsys.cpl} "WPFPanelPrinter" {Start-Process "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"}
"WPFPanelsystem" {cmd /c sysdm.cpl} "WPFPanelRegion" {intl.cpl}
"WPFPaneluser" {cmd /c "control userpasswords2"} "WPFPanelRestore" {rstrui.exe}
"WPFPanelSound" {mmsys.cpl}
"WPFPanelSystem" {sysdm.cpl}
"WPFPanelTimedate" {timedate.cpl}
"WPFPanelUser" {control userpasswords2}
} }
} }
``` ```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)

View File

@@ -1,34 +1,5 @@
# Network Connections # Network Connections
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Network Connections",
"category": "Legacy Windows Panels",
"panel": "2",
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/Winutil/dev/features/Legacy-Windows-Panels/network"
}
```
</details>
## Function: Invoke-WPFControlPanel
```powershell ```powershell
function Invoke-WPFControlPanel { function Invoke-WPFControlPanel {
<# <#
@@ -43,23 +14,17 @@ function Invoke-WPFControlPanel {
param($Panel) param($Panel)
switch ($Panel) { switch ($Panel) {
"WPFPanelcontrol" {cmd /c control} "WPFPanelControl" {control}
"WPFPanelnetwork" {cmd /c ncpa.cpl} "WPFPanelComputer" {compmgmt.msc}
"WPFPanelpower" {cmd /c powercfg.cpl} "WPFPanelNetwork" {ncpa.cpl}
"WPFPanelregion" {cmd /c intl.cpl} "WPFPanelPower" {powercfg.cpl}
"WPFPanelsound" {cmd /c mmsys.cpl} "WPFPanelPrinter" {Start-Process "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"}
"WPFPanelsystem" {cmd /c sysdm.cpl} "WPFPanelRegion" {intl.cpl}
"WPFPaneluser" {cmd /c "control userpasswords2"} "WPFPanelRestore" {rstrui.exe}
"WPFPanelSound" {mmsys.cpl}
"WPFPanelSystem" {sysdm.cpl}
"WPFPanelTimedate" {timedate.cpl}
"WPFPanelUser" {control userpasswords2}
} }
} }
``` ```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)

View File

@@ -1,34 +1,5 @@
# Power Panel # Power Panel
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Power Panel",
"category": "Legacy Windows Panels",
"panel": "2",
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/Winutil/dev/features/Legacy-Windows-Panels/power"
}
```
</details>
## Function: Invoke-WPFControlPanel
```powershell ```powershell
function Invoke-WPFControlPanel { function Invoke-WPFControlPanel {
<# <#
@@ -43,23 +14,17 @@ function Invoke-WPFControlPanel {
param($Panel) param($Panel)
switch ($Panel) { switch ($Panel) {
"WPFPanelcontrol" {cmd /c control} "WPFPanelControl" {control}
"WPFPanelnetwork" {cmd /c ncpa.cpl} "WPFPanelComputer" {compmgmt.msc}
"WPFPanelpower" {cmd /c powercfg.cpl} "WPFPanelNetwork" {ncpa.cpl}
"WPFPanelregion" {cmd /c intl.cpl} "WPFPanelPower" {powercfg.cpl}
"WPFPanelsound" {cmd /c mmsys.cpl} "WPFPanelPrinter" {Start-Process "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"}
"WPFPanelsystem" {cmd /c sysdm.cpl} "WPFPanelRegion" {intl.cpl}
"WPFPaneluser" {cmd /c "control userpasswords2"} "WPFPanelRestore" {rstrui.exe}
"WPFPanelSound" {mmsys.cpl}
"WPFPanelSystem" {sysdm.cpl}
"WPFPanelTimedate" {timedate.cpl}
"WPFPanelUser" {control userpasswords2}
} }
} }
``` ```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)

View File

@@ -1,33 +1,5 @@
# Printer Settings # Printer Settings
Last Updated: 2024-08-31
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Printer Settings",
"category": "Legacy Windows Panels",
"panel": "2",
"Type": "Button",
"ButtonWidth": "300"
}
```
</details>
## Function: Invoke-WPFControlPanel
```powershell ```powershell
function Invoke-WPFControlPanel { function Invoke-WPFControlPanel {
<# <#
@@ -42,24 +14,17 @@ function Invoke-WPFControlPanel {
param($Panel) param($Panel)
switch ($Panel) { switch ($Panel) {
"WPFPanelcontrol" {cmd /c control} "WPFPanelControl" {control}
"WPFPanelnetwork" {cmd /c ncpa.cpl} "WPFPanelComputer" {compmgmt.msc}
"WPFPanelpower" {cmd /c powercfg.cpl} "WPFPanelNetwork" {ncpa.cpl}
"WPFPanelregion" {cmd /c intl.cpl} "WPFPanelPower" {powercfg.cpl}
"WPFPanelsound" {cmd /c mmsys.cpl} "WPFPanelPrinter" {Start-Process "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"}
"WPFPanelprinter" {Start-Process "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"} "WPFPanelRegion" {intl.cpl}
"WPFPanelsystem" {cmd /c sysdm.cpl} "WPFPanelRestore" {rstrui.exe}
"WPFPaneluser" {cmd /c "control userpasswords2"} "WPFPanelSound" {mmsys.cpl}
"WPFPanelSystem" {sysdm.cpl}
"WPFPanelTimedate" {timedate.cpl}
"WPFPanelUser" {control userpasswords2}
} }
} }
``` ```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/../config/feature.json)

View File

@@ -1,34 +1,5 @@
# Region # Region
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Region",
"category": "Legacy Windows Panels",
"panel": "2",
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/Winutil/dev/features/Legacy-Windows-Panels/region"
}
```
</details>
## Function: Invoke-WPFControlPanel
```powershell ```powershell
function Invoke-WPFControlPanel { function Invoke-WPFControlPanel {
<# <#
@@ -43,23 +14,17 @@ function Invoke-WPFControlPanel {
param($Panel) param($Panel)
switch ($Panel) { switch ($Panel) {
"WPFPanelcontrol" {cmd /c control} "WPFPanelControl" {control}
"WPFPanelnetwork" {cmd /c ncpa.cpl} "WPFPanelComputer" {compmgmt.msc}
"WPFPanelpower" {cmd /c powercfg.cpl} "WPFPanelNetwork" {ncpa.cpl}
"WPFPanelregion" {cmd /c intl.cpl} "WPFPanelPower" {powercfg.cpl}
"WPFPanelsound" {cmd /c mmsys.cpl} "WPFPanelPrinter" {Start-Process "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"}
"WPFPanelsystem" {cmd /c sysdm.cpl} "WPFPanelRegion" {intl.cpl}
"WPFPaneluser" {cmd /c "control userpasswords2"} "WPFPanelRestore" {rstrui.exe}
"WPFPanelSound" {mmsys.cpl}
"WPFPanelSystem" {sysdm.cpl}
"WPFPanelTimedate" {timedate.cpl}
"WPFPanelUser" {control userpasswords2}
} }
} }
``` ```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)

View File

@@ -1,34 +1,5 @@
# Sound Settings # Sound Settings
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Sound Settings",
"category": "Legacy Windows Panels",
"panel": "2",
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/Winutil/dev/features/Legacy-Windows-Panels/sound"
}
```
</details>
## Function: Invoke-WPFControlPanel
```powershell ```powershell
function Invoke-WPFControlPanel { function Invoke-WPFControlPanel {
<# <#
@@ -43,23 +14,17 @@ function Invoke-WPFControlPanel {
param($Panel) param($Panel)
switch ($Panel) { switch ($Panel) {
"WPFPanelcontrol" {cmd /c control} "WPFPanelControl" {control}
"WPFPanelnetwork" {cmd /c ncpa.cpl} "WPFPanelComputer" {compmgmt.msc}
"WPFPanelpower" {cmd /c powercfg.cpl} "WPFPanelNetwork" {ncpa.cpl}
"WPFPanelregion" {cmd /c intl.cpl} "WPFPanelPower" {powercfg.cpl}
"WPFPanelsound" {cmd /c mmsys.cpl} "WPFPanelPrinter" {Start-Process "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"}
"WPFPanelsystem" {cmd /c sysdm.cpl} "WPFPanelRegion" {intl.cpl}
"WPFPaneluser" {cmd /c "control userpasswords2"} "WPFPanelRestore" {rstrui.exe}
"WPFPanelSound" {mmsys.cpl}
"WPFPanelSystem" {sysdm.cpl}
"WPFPanelTimedate" {timedate.cpl}
"WPFPanelUser" {control userpasswords2}
} }
} }
``` ```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)

View File

@@ -1,34 +1,5 @@
# System Properties # System Properties
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "System Properties",
"category": "Legacy Windows Panels",
"panel": "2",
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/Winutil/dev/features/Legacy-Windows-Panels/system"
}
```
</details>
## Function: Invoke-WPFControlPanel
```powershell ```powershell
function Invoke-WPFControlPanel { function Invoke-WPFControlPanel {
<# <#
@@ -43,23 +14,17 @@ function Invoke-WPFControlPanel {
param($Panel) param($Panel)
switch ($Panel) { switch ($Panel) {
"WPFPanelcontrol" {cmd /c control} "WPFPanelControl" {control}
"WPFPanelnetwork" {cmd /c ncpa.cpl} "WPFPanelComputer" {compmgmt.msc}
"WPFPanelpower" {cmd /c powercfg.cpl} "WPFPanelNetwork" {ncpa.cpl}
"WPFPanelregion" {cmd /c intl.cpl} "WPFPanelPower" {powercfg.cpl}
"WPFPanelsound" {cmd /c mmsys.cpl} "WPFPanelPrinter" {Start-Process "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"}
"WPFPanelsystem" {cmd /c sysdm.cpl} "WPFPanelRegion" {intl.cpl}
"WPFPaneluser" {cmd /c "control userpasswords2"} "WPFPanelRestore" {rstrui.exe}
"WPFPanelSound" {mmsys.cpl}
"WPFPanelSystem" {sysdm.cpl}
"WPFPanelTimedate" {timedate.cpl}
"WPFPanelUser" {control userpasswords2}
} }
} }
``` ```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)

View File

@@ -1,34 +1,5 @@
# User Accounts # User Accounts
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "User Accounts",
"category": "Legacy Windows Panels",
"panel": "2",
"Type": "Button",
"ButtonWidth": "300",
"link": "https://christitustech.github.io/Winutil/dev/features/Legacy-Windows-Panels/user"
}
```
</details>
## Function: Invoke-WPFControlPanel
```powershell ```powershell
function Invoke-WPFControlPanel { function Invoke-WPFControlPanel {
<# <#
@@ -43,23 +14,17 @@ function Invoke-WPFControlPanel {
param($Panel) param($Panel)
switch ($Panel) { switch ($Panel) {
"WPFPanelcontrol" {cmd /c control} "WPFPanelControl" {control}
"WPFPanelnetwork" {cmd /c ncpa.cpl} "WPFPanelComputer" {compmgmt.msc}
"WPFPanelpower" {cmd /c powercfg.cpl} "WPFPanelNetwork" {ncpa.cpl}
"WPFPanelregion" {cmd /c intl.cpl} "WPFPanelPower" {powercfg.cpl}
"WPFPanelsound" {cmd /c mmsys.cpl} "WPFPanelPrinter" {Start-Process "shell:::{A8A91A66-3A7D-4424-8D24-04E180695C7A}"}
"WPFPanelsystem" {cmd /c sysdm.cpl} "WPFPanelRegion" {intl.cpl}
"WPFPaneluser" {cmd /c "control userpasswords2"} "WPFPanelRestore" {rstrui.exe}
"WPFPanelSound" {mmsys.cpl}
"WPFPanelSystem" {sysdm.cpl}
"WPFPanelTimedate" {timedate.cpl}
"WPFPanelUser" {control userpasswords2}
} }
} }
``` ```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/feature.json)

View File

@@ -1,40 +1,16 @@
--- ---
weight: 2 weight: 1
title: "Features"
--- ---
# Table of Contents
## Features
### Fixes ### Fixes
- [Remove Adobe Creative Cloud](fixes/runadobecccleanertool/) {{< autolinks section="dev/features/fixes" >}}
- [Reset Network](fixes/network/)
- [Reset Windows Update](fixes/update/)
- [Set Up Autologin](fixes/autologin/)
- [System Corruption Scan](fixes/dism/)
- [WinGet Reinstall](fixes/winget/)
### Legacy Windows Panels ### Legacy Windows Panels
- [Control Panel](legacy-windows-panels/control/) {{< autolinks section="dev/features/legacy-windows-panels" >}}
- [Network Connections](legacy-windows-panels/network/)
- [Power Panel](legacy-windows-panels/power/)
- [Printer Settings](legacy-windows-panels/printer/)
- [Region](legacy-windows-panels/region/)
- [Sound Settings](legacy-windows-panels/sound/)
- [System Properties](legacy-windows-panels/system/)
- [User Accounts](legacy-windows-panels/user/)
### Features ### Features
- [All .Net Framework (2,3,4)](features/dotnet/) {{< autolinks section="dev/features/features" >}}
- [Disable Legacy F8 Boot Recovery](features/disablelegacyrecovery/)
- [Disable Search Box Web Suggestions in Registry(explorer restart)](features/disablesearchsuggestions/)
- [Enable Daily Registry Backup Task 12.30am](features/regbackup/)
- [Enable Legacy F8 Boot Recovery](features/enablelegacyrecovery/)
- [Enable Search Box Web Suggestions in Registry(explorer restart)](features/enablesearchsuggestions/)
- [HyperV Virtualization](features/hyperv/)
- [Install Features](features/install/)
- [Legacy Media (wmp, directplay)](features/legacymedia/)
- [NFS - Network File System](features/nfs/)
- [Windows Sandbox](features/sandbox/)
- [Windows Subsystem for Linux](features/wsl/)

View File

@@ -1,76 +1,26 @@
# Bing Search in Start Menu # Bing Search in Start Menu
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
If enable then includes web search results from Bing in your Start Menu search.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json ```json
{ "WPFToggleBingSearch": {
"Content": "Bing Search in Start Menu", "Content": "Bing Search in Start Menu",
"Description": "If enable then includes web search results from Bing in your Start Menu search.", "Description": "If enable then includes web search results from Bing in your Start Menu search.",
"category": "Customize Preferences", "category": "Customize Preferences",
"panel": "2", "panel": "2",
"Order": "a101_", "Order": "a101_",
"Type": "Toggle", "Type": "Toggle",
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Customize-Preferences/BingSearch" "registry": [
} {
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Search",
"Name": "BingSearchEnabled",
"Value": "1",
"OriginalValue": "0",
"DefaultState": "true",
"Type": "DWord"
}
],
``` ```
</details> ## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
## Function: Invoke-WinutilBingSearch
```powershell
function Invoke-WinutilBingSearch {
<#
.SYNOPSIS
Disables/Enables Bing Search
.PARAMETER Enabled
Indicates whether to enable or disable Bing Search
#>
Param($Enabled)
try {
if ($Enabled -eq $false) {
Write-Host "Enabling Bing Search"
$value = 1
} else {
Write-Host "Disabling Bing Search"
$value = 0
}
$Path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Search"
Set-ItemProperty -Path $Path -Name BingSearchEnabled -Value $value
} catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
} catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).

View File

@@ -1,78 +1,50 @@
# Dark Theme for Windows # Dark Theme for Windows
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Enable/Disable Dark Mode.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json ```json
{ "WPFToggleDarkMode": {
"Content": "Dark Theme for Windows", "Content": "Dark Theme for Windows",
"Description": "Enable/Disable Dark Mode.", "Description": "Enable/Disable Dark Mode.",
"category": "Customize Preferences", "category": "Customize Preferences",
"panel": "2", "panel": "2",
"Order": "a100_", "Order": "a100_",
"Type": "Toggle", "Type": "Toggle",
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Customize-Preferences/DarkMode" "registry": [
} {
"Path": "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize",
"Name": "AppsUseLightTheme",
"Value": "0",
"OriginalValue": "1",
"DefaultState": "false",
"Type": "DWord"
},
{
"Path": "HKCU:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize",
"Name": "SystemUsesLightTheme",
"Value": "0",
"OriginalValue": "1",
"DefaultState": "false",
"Type": "DWord"
}
],
"InvokeScript": [
"
Invoke-WinUtilExplorerUpdate
if ($sync.ThemeButton.Content -eq [char]0xF08C) {
Invoke-WinutilThemeChange -theme \"Auto\"
}
"
],
"UndoScript": [
"
Invoke-WinUtilExplorerUpdate
if ($sync.ThemeButton.Content -eq [char]0xF08C) {
Invoke-WinutilThemeChange -theme \"Auto\"
}
"
],
``` ```
</details> ## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
## Function: Invoke-WinutilDarkMode
```powershell
Function Invoke-WinutilDarkMode {
<#
.SYNOPSIS
Enables/Disables Dark Mode
.PARAMETER DarkMoveEnabled
Indicates the current dark mode state
#>
Param($DarkMoveEnabled)
try {
if ($DarkMoveEnabled -eq $false) {
Write-Host "Enabling Dark Mode"
$DarkMoveValue = 0
} else {
Write-Host "Disabling Dark Mode"
$DarkMoveValue = 1
}
$Path = "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Themes\Personalize"
Set-ItemProperty -Path $Path -Name AppsUseLightTheme -Value $DarkMoveValue
Set-ItemProperty -Path $Path -Name SystemUsesLightTheme -Value $DarkMoveValue
} catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
} catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).

View File

@@ -1,76 +1,34 @@
# Detailed BSoD # Detailed BSoD
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
If Enabled then you will see a detailed Blue Screen of Death (BSOD) with more information.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json ```json
{ "WPFToggleDetailedBSoD": {
"Content": "Detailed BSoD", "Content": "Detailed BSoD",
"Description": "If Enabled then you will see a detailed Blue Screen of Death (BSOD) with more information.", "Description": "If Enabled then you will see a detailed Blue Screen of Death (BSOD) with more information.",
"category": "Customize Preferences", "category": "Customize Preferences",
"panel": "2", "panel": "2",
"Order": "a205_", "Order": "a205_",
"Type": "Toggle", "Type": "Toggle",
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Customize-Preferences/DetailedBSoD" "registry": [
} {
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\CrashControl",
"Name": "DisplayParameters",
"Value": "1",
"OriginalValue": "0",
"DefaultState": "false",
"Type": "DWord"
},
{
"Path": "HKLM:\\SYSTEM\\CurrentControlSet\\Control\\CrashControl",
"Name": "DisableEmoticon",
"Value": "1",
"OriginalValue": "0",
"DefaultState": "false",
"Type": "DWord"
}
],
``` ```
</details> ## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
## Function: Invoke-WinutilDetailedBSoD
```powershell
Function Invoke-WinutilDetailedBSoD {
<#
.SYNOPSIS
Enables/Disables Detailed BSoD
(Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl' -Name 'DisplayParameters').DisplayParameters
#>
Param($Enabled)
try {
if ($Enabled -eq $false) {
Write-Host "Enabling Detailed BSoD"
$value = 1
} else {
Write-Host "Disabling Detailed BSoD"
$value =0
}
$Path = "HKLM:\SYSTEM\CurrentControlSet\Control\CrashControl"
Set-ItemProperty -Path $Path -Name DisplayParameters -Value $value
} catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
} catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).

View File

@@ -1,76 +1,36 @@
# Show Hidden Files # Show Hidden Files
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
If Enabled then Hidden Files will be shown.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json ```json
{ "WPFToggleHiddenFiles": {
"Content": "Show Hidden Files", "Content": "Show Hidden Files",
"Description": "If Enabled then Hidden Files will be shown.", "Description": "If Enabled then Hidden Files will be shown.",
"category": "Customize Preferences", "category": "Customize Preferences",
"panel": "2", "panel": "2",
"Order": "a200_", "Order": "a200_",
"Type": "Toggle", "Type": "Toggle",
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Customize-Preferences/HiddenFiles" "registry": [
} {
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
"Name": "Hidden",
"Value": "1",
"OriginalValue": "0",
"DefaultState": "false",
"Type": "DWord"
}
],
"InvokeScript": [
"
Invoke-WinUtilExplorerUpdate -action \"restart\"
"
],
"UndoScript": [
"
Invoke-WinUtilExplorerUpdate -action \"restart\"
"
],
``` ```
</details> ## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
## Function: Invoke-WinutilHiddenFiles
```powershell
function Invoke-WinutilHiddenFiles {
<#
.SYNOPSIS
Enable/Disable Hidden Files
.PARAMETER Enabled
Indicates whether to enable or disable Hidden Files
#>
Param($Enabled)
try {
if ($Enabled -eq $false) {
Write-Host "Enabling Hidden Files"
$value = 1
} else {
Write-Host "Disabling Hidden Files"
$value = 0
}
$Path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
Set-ItemProperty -Path $Path -Name Hidden -Value $value
} catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
} catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).

View File

@@ -1,84 +1,42 @@
# Mouse Acceleration # Mouse Acceleration
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
If Enabled then Cursor movement is affected by the speed of your physical mouse movements.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json ```json
{ "WPFToggleMouseAcceleration": {
"Content": "Mouse Acceleration", "Content": "Mouse Acceleration",
"Description": "If Enabled then Cursor movement is affected by the speed of your physical mouse movements.", "Description": "If Enabled then Cursor movement is affected by the speed of your physical mouse movements.",
"category": "Customize Preferences", "category": "Customize Preferences",
"panel": "2", "panel": "2",
"Order": "a107_", "Order": "a109_",
"Type": "Toggle", "Type": "Toggle",
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Customize-Preferences/MouseAcceleration" "registry": [
} {
"Path": "HKCU:\\Control Panel\\Mouse",
"Name": "MouseSpeed",
"Value": "1",
"OriginalValue": "0",
"DefaultState": "true",
"Type": "DWord"
},
{
"Path": "HKCU:\\Control Panel\\Mouse",
"Name": "MouseThreshold1",
"Value": "6",
"OriginalValue": "0",
"DefaultState": "true",
"Type": "DWord"
},
{
"Path": "HKCU:\\Control Panel\\Mouse",
"Name": "MouseThreshold2",
"Value": "10",
"OriginalValue": "0",
"DefaultState": "true",
"Type": "DWord"
}
],
``` ```
</details> ## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
## Function: Invoke-WinutilMouseAcceleration
```powershell
Function Invoke-WinutilMouseAcceleration {
<#
.SYNOPSIS
Enables/Disables Mouse Acceleration
.PARAMETER DarkMoveEnabled
Indicates the current Mouse Acceleration State
#>
Param($MouseAccelerationEnabled)
try {
if ($MouseAccelerationEnabled -eq $false) {
Write-Host "Enabling Mouse Acceleration"
$MouseSpeed = 1
$MouseThreshold1 = 6
$MouseThreshold2 = 10
} else {
Write-Host "Disabling Mouse Acceleration"
$MouseSpeed = 0
$MouseThreshold1 = 0
$MouseThreshold2 = 0
}
$Path = "HKCU:\Control Panel\Mouse"
Set-ItemProperty -Path $Path -Name MouseSpeed -Value $MouseSpeed
Set-ItemProperty -Path $Path -Name MouseThreshold1 -Value $MouseThreshold1
Set-ItemProperty -Path $Path -Name MouseThreshold2 -Value $MouseThreshold2
} catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
} catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).

View File

@@ -1,77 +1,34 @@
# NumLock on Startup # NumLock on Startup
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Toggle the Num Lock key state when your computer starts.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json ```json
{ "WPFToggleNumLock": {
"Content": "NumLock on Startup", "Content": "NumLock on Startup",
"Description": "Toggle the Num Lock key state when your computer starts.", "Description": "Toggle the Num Lock key state when your computer starts.",
"category": "Customize Preferences", "category": "Customize Preferences",
"panel": "2", "panel": "2",
"Order": "a102_", "Order": "a102_",
"Type": "Toggle", "Type": "Toggle",
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Customize-Preferences/NumLock" "registry": [
} {
"Path": "HKU:\\.Default\\Control Panel\\Keyboard",
"Name": "InitialKeyboardIndicators",
"Value": "2",
"OriginalValue": "0",
"DefaultState": "false",
"Type": "DWord"
},
{
"Path": "HKCU:\\Control Panel\\Keyboard",
"Name": "InitialKeyboardIndicators",
"Value": "2",
"OriginalValue": "0",
"DefaultState": "false",
"Type": "DWord"
}
],
``` ```
</details> ## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
## Function: Invoke-WinutilNumLock
```powershell
function Invoke-WinutilNumLock {
<#
.SYNOPSIS
Disables/Enables NumLock on startup
.PARAMETER Enabled
Indicates whether to enable or disable Numlock on startup
#>
Param($Enabled)
try {
if ($Enabled -eq $false) {
Write-Host "Enabling Numlock on startup"
$value = 2
} else {
Write-Host "Disabling Numlock on startup"
$value = 0
}
New-PSDrive -PSProvider Registry -Name HKU -Root HKEY_USERS
$HKUPath = "HKU:\.Default\Control Panel\Keyboard"
$HKCUPath = "HKCU:\Control Panel\Keyboard"
Set-ItemProperty -Path $HKUPath -Name InitialKeyboardIndicators -Value $value
Set-ItemProperty -Path $HKCUPath -Name InitialKeyboardIndicators -Value $value
}
Catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
} catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).

View File

@@ -1,73 +1,36 @@
# Show File Extensions # Show File Extensions
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
If enabled then File extensions (e.g., .txt, .jpg) are visible.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json ```json
{ "WPFToggleShowExt": {
"Content": "Show File Extensions", "Content": "Show File Extensions",
"Description": "If enabled then File extensions (e.g., .txt, .jpg) are visible.", "Description": "If enabled then File extensions (e.g., .txt, .jpg) are visible.",
"category": "Customize Preferences", "category": "Customize Preferences",
"panel": "2", "panel": "2",
"Order": "a201_", "Order": "a201_",
"Type": "Toggle", "Type": "Toggle",
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Customize-Preferences/ShowExt" "registry": [
} {
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
"Name": "HideFileExt",
"Value": "0",
"OriginalValue": "1",
"DefaultState": "false",
"Type": "DWord"
}
],
"InvokeScript": [
"
Invoke-WinUtilExplorerUpdate -action \"restart\"
"
],
"UndoScript": [
"
Invoke-WinUtilExplorerUpdate -action \"restart\"
"
],
``` ```
</details> ## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
## Function: Invoke-WinutilShowExt
```powershell
function Invoke-WinutilShowExt {
<#
.SYNOPSIS
Disables/Enables Show file Extentions
.PARAMETER Enabled
Indicates whether to enable or disable Show file extentions
#>
Param($Enabled)
try {
if ($Enabled -eq $false) {
Write-Host "Showing file extentions"
$value = 0
} else {
Write-Host "hiding file extensions"
$value = 1
}
$Path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
Set-ItemProperty -Path $Path -Name HideFileExt -Value $value
} catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
} catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).

View File

@@ -1,76 +1,36 @@
# Snap Assist Flyout # Snap Assist Flyout
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
If enabled then Snap preview is disabled when maximize button is hovered.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json ```json
{ "WPFToggleSnapFlyout": {
"Content": "Snap Assist Flyout", "Content": "Snap Assist Flyout",
"Description": "If enabled then Snap preview is disabled when maximize button is hovered.", "Description": "If disabled then Snap preview is disabled when maximize button is hovered.",
"category": "Customize Preferences", "category": "Customize Preferences",
"panel": "2", "panel": "2",
"Order": "a105_", "Order": "a107_",
"Type": "Toggle", "Type": "Toggle",
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Customize-Preferences/SnapFlyout" "registry": [
} {
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
"Name": "EnableSnapAssistFlyout",
"Value": "1",
"OriginalValue": "0",
"DefaultState": "true",
"Type": "DWord"
}
],
"InvokeScript": [
"
Invoke-WinUtilExplorerUpdate -action \"restart\"
"
],
"UndoScript": [
"
Invoke-WinUtilExplorerUpdate -action \"restart\"
"
],
``` ```
</details> ## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
## Function: Invoke-WinutilSnapFlyout
```powershell
function Invoke-WinutilSnapFlyout {
<#
.SYNOPSIS
Disables/Enables Snap Assist Flyout on startup
.PARAMETER Enabled
Indicates whether to enable or disable Snap Assist Flyout on startup
#>
Param($Enabled)
try {
if ($Enabled -eq $false) {
Write-Host "Enabling Snap Assist Flyout On startup"
$value = 1
} else {
Write-Host "Disabling Snap Assist Flyout On startup"
$value = 0
}
# taskkill.exe /F /IM "explorer.exe"
$Path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
taskkill.exe /F /IM "explorer.exe"
Set-ItemProperty -Path $Path -Name EnableSnapAssistFlyout -Value $value
Start-Process "explorer.exe"
} catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
} catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).

View File

@@ -1,76 +1,36 @@
# Snap Assist Suggestion # Snap Assist Suggestion
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
If enabled then you will get suggestions to snap other applications in the left over spaces.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json ```json
{ "WPFToggleSnapSuggestion": {
"Content": "Snap Assist Suggestion", "Content": "Snap Assist Suggestion",
"Description": "If enabled then you will get suggestions to snap other applications in the left over spaces.", "Description": "If enabled then you will get suggestions to snap other applications in the left over spaces.",
"category": "Customize Preferences", "category": "Customize Preferences",
"panel": "2", "panel": "2",
"Order": "a106_", "Order": "a108_",
"Type": "Toggle", "Type": "Toggle",
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Customize-Preferences/SnapSuggestion" "registry": [
} {
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
"Name": "SnapAssist",
"Value": "1",
"OriginalValue": "0",
"DefaultState": "true",
"Type": "DWord"
}
],
"InvokeScript": [
"
Invoke-WinUtilExplorerUpdate -action \"restart\"
"
],
"UndoScript": [
"
Invoke-WinUtilExplorerUpdate -action \"restart\"
"
],
``` ```
</details> ## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
## Function: Invoke-WinutilSnapSuggestion
```powershell
function Invoke-WinutilSnapSuggestion {
<#
.SYNOPSIS
Disables/Enables Snap Assist Suggestions on startup
.PARAMETER Enabled
Indicates whether to enable or disable Snap Assist Suggestions on startup
#>
Param($Enabled)
try {
if ($Enabled -eq $false) {
Write-Host "Enabling Snap Assist Suggestion On startup"
$value = 1
} else {
Write-Host "Disabling Snap Assist Suggestion On startup"
$value = 0
}
# taskkill.exe /F /IM "explorer.exe"
$Path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
taskkill.exe /F /IM "explorer.exe"
Set-ItemProperty -Path $Path -Name SnapAssist -Value $value
Start-Process "explorer.exe"
} catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
} catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).

View File

@@ -1,73 +1,26 @@
# Snap Window # Snap Window
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
If enabled you can align windows by dragging them. | Relogin Required
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json ```json
{ "WPFToggleSnapWindow": {
"Content": "Snap Window", "Content": "Snap Window",
"Description": "If enabled you can align windows by dragging them. | Relogin Required", "Description": "If enabled you can align windows by dragging them. | Relogin Required",
"category": "Customize Preferences", "category": "Customize Preferences",
"panel": "2", "panel": "2",
"Order": "a104_", "Order": "a106_",
"Type": "Toggle", "Type": "Toggle",
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Customize-Preferences/SnapWindow" "registry": [
} {
"Path": "HKCU:\\Control Panel\\Desktop",
"Name": "WindowArrangementActive",
"Value": "1",
"OriginalValue": "0",
"DefaultState": "true",
"Type": "String"
}
],
``` ```
</details> ## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
## Function: Invoke-WinutilSnapWindow
```powershell
function Invoke-WinutilSnapWindow {
<#
.SYNOPSIS
Disables/Enables Snapping Windows on startup
.PARAMETER Enabled
Indicates whether to enable or disable Snapping Windows on startup
#>
Param($Enabled)
try {
if ($Enabled -eq $false) {
Write-Host "Enabling Snap Windows On startup | Relogin Required"
$value = 1
} else {
Write-Host "Disabling Snap Windows On startup | Relogin Required"
$value = 0
}
$Path = "HKCU:\Control Panel\Desktop"
Set-ItemProperty -Path $Path -Name WindowArrangementActive -Value $value
} catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
} catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).

View File

@@ -1,73 +1,26 @@
# Sticky Keys # Sticky Keys
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
If Enabled then Sticky Keys is activated - Sticky keys is an accessibility feature of some graphical user interfaces which assists users who have physical disabilities or help users reduce repetitive strain injury.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json ```json
{ "WPFToggleStickyKeys": {
"Content": "Sticky Keys", "Content": "Sticky Keys",
"Description": "If Enabled then Sticky Keys is activated - Sticky keys is an accessibility feature of some graphical user interfaces which assists users who have physical disabilities or help users reduce repetitive strain injury.", "Description": "If Enabled then Sticky Keys is activated - Sticky keys is an accessibility feature of some graphical user interfaces which assists users who have physical disabilities or help users reduce repetitive strain injury.",
"category": "Customize Preferences", "category": "Customize Preferences",
"panel": "2", "panel": "2",
"Order": "a108_", "Order": "a110_",
"Type": "Toggle", "Type": "Toggle",
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Customize-Preferences/StickyKeys" "registry": [
} {
"Path": "HKCU:\\Control Panel\\Accessibility\\StickyKeys",
"Name": "Flags",
"Value": "510",
"OriginalValue": "58",
"DefaultState": "true",
"Type": "DWord"
}
],
``` ```
</details> ## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
## Function: Invoke-WinutilStickyKeys
```powershell
Function Invoke-WinutilStickyKeys {
<#
.SYNOPSIS
Disables/Enables Sticky Keyss on startup
.PARAMETER Enabled
Indicates whether to enable or disable Sticky Keys on startup
#>
Param($Enabled)
try {
if ($Enabled -eq $false) {
Write-Host "Enabling Sticky Keys On startup"
$value = 510
} else {
Write-Host "Disabling Sticky Keys On startup"
$value = 58
}
$Path = "HKCU:\Control Panel\Accessibility\StickyKeys"
Set-ItemProperty -Path $Path -Name Flags -Value $value
} catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
} catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).

View File

@@ -1,76 +1,26 @@
# Task View Button in Taskbar # Task View Button in Taskbar
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
If Enabled then Task View Button in Taskbar will be shown.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json ```json
{ "WPFToggleTaskView": {
"Content": "Task View Button in Taskbar", "Content": "Task View Button in Taskbar",
"Description": "If Enabled then Task View Button in Taskbar will be shown.", "Description": "If Enabled then Task View Button in Taskbar will be shown.",
"category": "Customize Preferences", "category": "Customize Preferences",
"panel": "2", "panel": "2",
"Order": "a203_", "Order": "a203_",
"Type": "Toggle", "Type": "Toggle",
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Customize-Preferences/TaskView" "registry": [
} {
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
"Name": "ShowTaskViewButton",
"Value": "1",
"OriginalValue": "0",
"DefaultState": "true",
"Type": "DWord"
}
],
``` ```
</details> ## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
## Function: Invoke-WinutilTaskView
```powershell
function Invoke-WinutilTaskView {
<#
.SYNOPSIS
Enable/Disable Task View
.PARAMETER Enabled
Indicates whether to enable or disable Task View
#>
Param($Enabled)
try {
if ($Enabled -eq $false) {
Write-Host "Enabling Task View"
$value = 1
} else {
Write-Host "Disabling Task View"
$value = 0
}
$Path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
Set-ItemProperty -Path $Path -Name ShowTaskViewButton -Value $value
} catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
} catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).

View File

@@ -1,76 +1,26 @@
# Center Taskbar Items # Center Taskbar Items
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
[Windows 11] If Enabled then the Taskbar Items will be shown on the Center, otherwise the Taskbar Items will be shown on the Left.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json ```json
{ "WPFToggleTaskbarAlignment": {
"Content": "Center Taskbar Items", "Content": "Center Taskbar Items",
"Description": "[Windows 11] If Enabled then the Taskbar Items will be shown on the Center, otherwise the Taskbar Items will be shown on the Left.", "Description": "[Windows 11] If Enabled then the Taskbar Items will be shown on the Center, otherwise the Taskbar Items will be shown on the Left.",
"category": "Customize Preferences", "category": "Customize Preferences",
"panel": "2", "panel": "2",
"Order": "a204_", "Order": "a204_",
"Type": "Toggle", "Type": "Toggle",
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Customize-Preferences/TaskbarAlignment" "registry": [
} {
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
"Name": "TaskbarAl",
"Value": "1",
"OriginalValue": "0",
"DefaultState": "true",
"Type": "DWord"
}
],
``` ```
</details> ## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
## Function: Invoke-WinutilTaskbarAlignment
```powershell
function Invoke-WinutilTaskbarAlignment {
<#
.SYNOPSIS
Switches between Center & Left Taskbar Alignment
.PARAMETER Enabled
Indicates whether to make Taskbar Alignment Center or Left
#>
Param($Enabled)
try {
if ($Enabled -eq $false) {
Write-Host "Making Taskbar Alignment to the Center"
$value = 1
} else {
Write-Host "Making Taskbar Alignment to the Left"
$value = 0
}
$Path = "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
Set-ItemProperty -Path $Path -Name "TaskbarAl" -Value $value
} catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $value due to a Security Exception"
} catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).

View File

@@ -1,76 +1,26 @@
# Search Button in Taskbar # Search Button in Taskbar
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
If Enabled Search Button will be on the taskbar.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json ```json
{ "WPFToggleTaskbarSearch": {
"Content": "Search Button in Taskbar", "Content": "Search Button in Taskbar",
"Description": "If Enabled Search Button will be on the taskbar.", "Description": "If Enabled Search Button will be on the taskbar.",
"category": "Customize Preferences", "category": "Customize Preferences",
"panel": "2", "panel": "2",
"Order": "a202_", "Order": "a202_",
"Type": "Toggle", "Type": "Toggle",
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Customize-Preferences/TaskbarSearch" "registry": [
} {
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Search",
"Name": "SearchboxTaskbarMode",
"Value": "1",
"OriginalValue": "0",
"DefaultState": "true",
"Type": "DWord"
}
],
``` ```
</details> ## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
## Function: Invoke-WinutilTaskbarSearch
```powershell
function Invoke-WinutilTaskbarSearch {
<#
.SYNOPSIS
Enable/Disable Taskbar Search Button.
.PARAMETER Enabled
Indicates whether to enable or disable Taskbar Search Button.
#>
Param($Enabled)
try {
if ($Enabled -eq $false) {
Write-Host "Enabling Search Button"
$value = 1
} else {
Write-Host "Disabling Search Button"
$value = 0
}
$Path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Search\"
Set-ItemProperty -Path $Path -Name SearchboxTaskbarMode -Value $value
} catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
} catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).

View File

@@ -1,76 +1,26 @@
# Widgets Button in Taskbar # Widgets Button in Taskbar
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
If Enabled then Widgets Button in Taskbar will be shown.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json ```json
{ "WPFToggleTaskbarWidgets": {
"Content": "Widgets Button in Taskbar", "Content": "Widgets Button in Taskbar",
"Description": "If Enabled then Widgets Button in Taskbar will be shown.", "Description": "If Enabled then Widgets Button in Taskbar will be shown.",
"category": "Customize Preferences", "category": "Customize Preferences",
"panel": "2", "panel": "2",
"Order": "a204_", "Order": "a204_",
"Type": "Toggle", "Type": "Toggle",
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Customize-Preferences/TaskbarWidgets" "registry": [
} {
"Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced",
"Name": "TaskbarDa",
"Value": "1",
"OriginalValue": "0",
"DefaultState": "true",
"Type": "DWord"
}
],
``` ```
</details> ## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
## Function: Invoke-WinutilTaskbarWidgets
```powershell
function Invoke-WinutilTaskbarWidgets {
<#
.SYNOPSIS
Enable/Disable Taskbar Widgets
.PARAMETER Enabled
Indicates whether to enable or disable Taskbar Widgets
#>
Param($Enabled)
try {
if ($Enabled -eq $false) {
Write-Host "Enabling Taskbar Widgets"
$value = 1
} else {
Write-Host "Disabling Taskbar Widgets"
$value = 0
}
$Path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced"
Set-ItemProperty -Path $Path -Name TaskbarDa -Value $value
} catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
} catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).

View File

@@ -1,73 +1,26 @@
# Verbose Messages During Logon # Verbose Messages During Logon
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Show detailed messages during the login process for troubleshooting and diagnostics.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json ```json
{ "WPFToggleVerboseLogon": {
"Content": "Verbose Messages During Logon", "Content": "Verbose Messages During Logon",
"Description": "Show detailed messages during the login process for troubleshooting and diagnostics.", "Description": "Show detailed messages during the login process for troubleshooting and diagnostics.",
"category": "Customize Preferences", "category": "Customize Preferences",
"panel": "2", "panel": "2",
"Order": "a103_", "Order": "a103_",
"Type": "Toggle", "Type": "Toggle",
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Customize-Preferences/VerboseLogon" "registry": [
} {
"Path": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Policies\\System",
"Name": "VerboseStatus",
"Value": "1",
"OriginalValue": "0",
"DefaultState": "false",
"Type": "DWord"
}
],
``` ```
</details> ## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
## Function: Invoke-WinutilVerboseLogon
```powershell
function Invoke-WinutilVerboseLogon {
<#
.SYNOPSIS
Disables/Enables VerboseLogon Messages
.PARAMETER Enabled
Indicates whether to enable or disable VerboseLogon messages
#>
Param($Enabled)
try {
if ($Enabled -eq $false) {
Write-Host "Enabling Verbose Logon Messages"
$value = 1
} else {
Write-Host "Disabling Verbose Logon Messages"
$value = 0
}
$Path = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System"
Set-ItemProperty -Path $Path -Name VerboseStatus -Value $value
} catch [System.Security.SecurityException] {
Write-Warning "Unable to set $Path\$Name to $Value due to a Security Exception"
} catch [System.Management.Automation.ItemNotFoundException] {
Write-Warning $psitem.Exception.ErrorRecord
} catch {
Write-Warning "Unable to set $Name due to unhandled exception"
Write-Warning $psitem.Exception.StackTrace
}
}
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).

View File

@@ -1,26 +1,8 @@
--- ---
weight: 3 weight: 3
title: "Customize Preferences"
--- ---
# Table of Contents
## Tweaks
### Customize Preferences ### Customize Preferences
- [Bing Search in Start Menu](bingsearch/) {{< autolinks section="dev/tweaks/customize-preferences" >}}
- [Center Taskbar Items](taskbaralignment/)
- [Dark Theme for Windows](darkmode/)
- [Detailed BSoD](detailedbsod/)
- [Mouse Acceleration](mouseacceleration/)
- [NumLock on Startup](numlock/)
- [Search Button in Taskbar](taskbarsearch/)
- [Show File Extensions](showext/)
- [Show Hidden Files](hiddenfiles/)
- [Snap Assist Flyout](snapflyout/)
- [Snap Assist Suggestion](snapsuggestion/)
- [Snap Window](snapwindow/)
- [Sticky Keys](stickykeys/)
- [Task View Button in Taskbar](taskview/)
- [Verbose Messages During Logon](verboselogon/)
- [Widgets Button in Taskbar](taskbarwidgets/)

View File

@@ -1,93 +0,0 @@
# Disable Activity History
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
This erases recent docs, clipboard, and run history.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Disable Activity History",
"Description": "This erases recent docs, clipboard, and run history.",
"category": "Essential Tweaks",
"panel": "1",
"Order": "a005_",
"registry": [
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\System",
"Name": "EnableActivityFeed",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\System",
"Name": "PublishUserActivities",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\System",
"Name": "UploadUserActivities",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
}
],
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Essential-Tweaks/AH"
}
```
</details>
## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
### Registry Key: EnableActivityFeed
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: PublishUserActivities
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: UploadUserActivities
**Type:** DWord
**Original Value:** 1
**New Value:** 0
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)

View File

@@ -0,0 +1,38 @@
# Disable Activity History
```json
"WPFTweaksActivity": {
"Content": "Disable Activity History",
"Description": "This erases recent docs, clipboard, and run history.",
"category": "Essential Tweaks",
"panel": "1",
"Order": "a005_",
"registry": [
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\System",
"Name": "EnableActivityFeed",
"Type": "DWord",
"Value": "0",
"OriginalValue": "<RemoveEntry>"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\System",
"Name": "PublishUserActivities",
"Type": "DWord",
"Value": "0",
"OriginalValue": "<RemoveEntry>"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\System",
"Name": "UploadUserActivities",
"Type": "DWord",
"Value": "0",
"OriginalValue": "<RemoveEntry>"
}
],
```
## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).

View File

@@ -1,63 +1,24 @@
# Disable ConsumerFeatures # Disable ConsumerFeatures
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Windows 10 will not automatically install any games, third-party apps, or application links from the Windows Store for the signed-in user. Some default Apps will be inaccessible (eg. Phone Link)
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json ```json
{ "WPFTweaksConsumerFeatures": {
"Content": "Disable ConsumerFeatures", "Content": "Disable ConsumerFeatures",
"Description": "Windows 10 will not automatically install any games, third-party apps, or application links from the Windows Store for the signed-in user. Some default Apps will be inaccessible (eg. Phone Link)", "Description": "Windows will not automatically install any games, third-party apps, or application links from the Windows Store for the signed-in user. Some default Apps will be inaccessible (eg. Phone Link)",
"category": "Essential Tweaks", "category": "Essential Tweaks",
"panel": "1", "panel": "1",
"Order": "a003_", "Order": "a003_",
"registry": [ "registry": [
{ {
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\CloudContent", "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\CloudContent",
"OriginalValue": "0", "OriginalValue": "<RemoveEntry>",
"Name": "DisableWindowsConsumerFeatures", "Name": "DisableWindowsConsumerFeatures",
"Value": "1", "Value": "1",
"Type": "DWord" "Type": "DWord"
} }
], ],
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Essential-Tweaks/ConsumerFeatures"
}
``` ```
</details>
## Registry Changes ## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place. Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
### Registry Key: DisableWindowsConsumerFeatures
**Type:** DWord
**Original Value:** 0
**New Value:** 1
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)

View File

@@ -1,123 +0,0 @@
# Disable GameDVR
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
GameDVR is a Windows App that is a dependency for some Store Games. I've never met someone that likes it, but it's there for the XBOX crowd.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Disable GameDVR",
"Description": "GameDVR is a Windows App that is a dependency for some Store Games. I've never met someone that likes it, but it's there for the XBOX crowd.",
"category": "Essential Tweaks",
"panel": "1",
"Order": "a005_",
"registry": [
{
"Path": "HKCU:\\System\\GameConfigStore",
"Name": "GameDVR_FSEBehavior",
"Value": "2",
"OriginalValue": "1",
"Type": "DWord"
},
{
"Path": "HKCU:\\System\\GameConfigStore",
"Name": "GameDVR_Enabled",
"Value": "0",
"OriginalValue": "1",
"Type": "DWord"
},
{
"Path": "HKCU:\\System\\GameConfigStore",
"Name": "GameDVR_HonorUserFSEBehaviorMode",
"Value": "1",
"OriginalValue": "0",
"Type": "DWord"
},
{
"Path": "HKCU:\\System\\GameConfigStore",
"Name": "GameDVR_EFSEFeatureFlags",
"Value": "0",
"OriginalValue": "1",
"Type": "DWord"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\GameDVR",
"Name": "AllowGameDVR",
"Value": "0",
"OriginalValue": "1",
"Type": "DWord"
}
],
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Essential-Tweaks/DVR"
}
```
</details>
## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
### Registry Key: GameDVR_FSEBehavior
**Type:** DWord
**Original Value:** 1
**New Value:** 2
### Registry Key: GameDVR_Enabled
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: GameDVR_HonorUserFSEBehaviorMode
**Type:** DWord
**Original Value:** 0
**New Value:** 1
### Registry Key: GameDVR_EFSEFeatureFlags
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: AllowGameDVR
**Type:** DWord
**Original Value:** 1
**New Value:** 0
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)

View File

@@ -1,50 +1,16 @@
# Delete Temporary Files # Delete Temporary Files
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Erases TEMP Folders
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json ```json
{ "WPFTweaksDeleteTempFiles": {
"Content": "Delete Temporary Files", "Content": "Delete Temporary Files",
"Description": "Erases TEMP Folders", "Description": "Erases TEMP Folders",
"category": "Essential Tweaks", "category": "Essential Tweaks",
"panel": "1", "panel": "1",
"Order": "a002_", "Order": "a002_",
"InvokeScript": [ "InvokeScript": [
"Get-ChildItem -Path \"C:\\Windows\\Temp\" *.* -Recurse | Remove-Item -Force -Recurse "
Get-ChildItem -Path $env:TEMP *.* -Recurse | Remove-Item -Force -Recurse" Remove-Item -Path \"$Env:Temp\\*\" -Recurse -Force
], Remove-Item -Path \"$Env:SystemRoot\\Temp\\*\" -Recurse -Force
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Essential-Tweaks/DeleteTempFiles" "
} ],
``` ```
</details>
## Invoke Script
```powershell
Get-ChildItem -Path "C:\Windows\Temp" *.* -Recurse | Remove-Item -Force -Recurse
Get-ChildItem -Path $env:TEMP *.* -Recurse | Remove-Item -Force -Recurse
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)

View File

@@ -1,91 +0,0 @@
# Disable Microsoft Recall
Last Updated: 2024-10-24
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Disables MS Recall built into Windows since 24H2.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
"WPFTweaksRecallOff": {
"Content": "Disable Recall",
"Description": "Turn Recall off",
"category": "Essential Tweaks",
"panel": "1",
"Order": "a011_",
"registry": [
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\WindowsAI",
"Name": "DisableAIDataAnalysis",
"Type": "DWord",
"Value": "1",
"OriginalValue": "0"
}
],
"InvokeScript": [
"
Write-Host \"Disable Recall\"
DISM /Online /Disable-Feature /FeatureName:Recall
"
],
"UndoScript": [
"
Write-Host \"Enable Recall\"
DISM /Online /Enable-Feature /FeatureName:Recall
"
],
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Essential-Tweaks/DisableRecall"
},
```
</details>
## Invoke Script
```powershell
Write-Host "Disable Recall"
DISM /Online /Disable-Feature /FeatureName:Recall
```
## Undo Script
```powershell
Write-Host "Enable Recall"
DISM /Online /Enable-Feature /FeatureName:Recall
```
## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
### Registry Key: DisableAIDataAnalysis
**Type:** DWord
**Original Value:** 0
**New Value:** 1
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)

View File

@@ -1,54 +1,16 @@
# Run Disk Cleanup # Run Disk Cleanup
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Runs Disk Cleanup on Drive C: and removes old Windows Updates.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json ```json
{ "WPFTweaksDiskCleanup": {
"Content": "Run Disk Cleanup", "Content": "Run Disk Cleanup",
"Description": "Runs Disk Cleanup on Drive C: and removes old Windows Updates.", "Description": "Runs Disk Cleanup on Drive C: and removes old Windows Updates.",
"category": "Essential Tweaks", "category": "Essential Tweaks",
"panel": "1", "panel": "1",
"Order": "a009_", "Order": "a009_",
"InvokeScript": [ "InvokeScript": [
" "
cleanmgr.exe /d C: /VERYLOWDISK cleanmgr.exe /d C: /VERYLOWDISK
Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase
" "
], ],
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Essential-Tweaks/DiskCleanup"
}
``` ```
</details>
## Invoke Script
```powershell
cleanmgr.exe /d C: /VERYLOWDISK
Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)

View File

@@ -1,179 +1,119 @@
# Debloat Edge # Debloat Edge
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Disables various telemetry options, popups, and other annoyances in Edge.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json ```json
{ "WPFTweaksEdgeDebloat": {
"Content": "Debloat Edge", "Content": "Edge Debloat",
"Description": "Disables various telemetry options, popups, and other annoyances in Edge.", "Description": "Disables various telemetry options, popups, and other annoyances in Edge.",
"category": "Essential Tweaks", "category": "z__Advanced Tweaks - CAUTION",
"panel": "1", "panel": "1",
"Order": "a016_", "Order": "a026_",
"registry": [ "registry": [
{ {
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\EdgeUpdate", "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\EdgeUpdate",
"Name": "CreateDesktopShortcutDefault", "Name": "CreateDesktopShortcutDefault",
"Type": "DWord", "Type": "DWord",
"Value": "0", "Value": "0",
"OriginalValue": "1" "OriginalValue": "<RemoveEntry>"
}, },
{ {
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge", "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "EdgeEnhanceImagesEnabled", "Name": "PersonalizationReportingEnabled",
"Type": "DWord", "Type": "DWord",
"Value": "0", "Value": "0",
"OriginalValue": "1" "OriginalValue": "<RemoveEntry>"
}, },
{ {
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge", "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "PersonalizationReportingEnabled", "Name": "ShowRecommendationsEnabled",
"Type": "DWord", "Type": "DWord",
"Value": "0", "Value": "0",
"OriginalValue": "1" "OriginalValue": "<RemoveEntry>"
}, },
{ {
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge", "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "ShowRecommendationsEnabled", "Name": "HideFirstRunExperience",
"Type": "DWord", "Type": "DWord",
"Value": "0", "Value": "1",
"OriginalValue": "1" "OriginalValue": "<RemoveEntry>"
}, },
{ {
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge", "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "HideFirstRunExperience", "Name": "UserFeedbackAllowed",
"Type": "DWord", "Type": "DWord",
"Value": "1", "Value": "0",
"OriginalValue": "0" "OriginalValue": "<RemoveEntry>"
}, },
{ {
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge", "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "UserFeedbackAllowed", "Name": "ConfigureDoNotTrack",
"Type": "DWord", "Type": "DWord",
"Value": "0", "Value": "1",
"OriginalValue": "1" "OriginalValue": "<RemoveEntry>"
}, },
{ {
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge", "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "ConfigureDoNotTrack", "Name": "AlternateErrorPagesEnabled",
"Type": "DWord", "Type": "DWord",
"Value": "1", "Value": "0",
"OriginalValue": "0" "OriginalValue": "<RemoveEntry>"
}, },
{ {
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge", "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "AlternateErrorPagesEnabled", "Name": "EdgeCollectionsEnabled",
"Type": "DWord", "Type": "DWord",
"Value": "0", "Value": "0",
"OriginalValue": "1" "OriginalValue": "<RemoveEntry>"
}, },
{ {
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge", "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "EdgeCollectionsEnabled", "Name": "EdgeShoppingAssistantEnabled",
"Type": "DWord", "Type": "DWord",
"Value": "0", "Value": "0",
"OriginalValue": "1" "OriginalValue": "<RemoveEntry>"
}, },
{ {
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge", "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "EdgeFollowEnabled", "Name": "MicrosoftEdgeInsiderPromotionEnabled",
"Type": "DWord", "Type": "DWord",
"Value": "0", "Value": "0",
"OriginalValue": "1" "OriginalValue": "<RemoveEntry>"
}, },
{ {
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge", "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "EdgeShoppingAssistantEnabled", "Name": "ShowMicrosoftRewards",
"Type": "DWord", "Type": "DWord",
"Value": "0", "Value": "0",
"OriginalValue": "1" "OriginalValue": "<RemoveEntry>"
}, },
{ {
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge", "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "MicrosoftEdgeInsiderPromotionEnabled", "Name": "WebWidgetAllowed",
"Type": "DWord", "Type": "DWord",
"Value": "0", "Value": "0",
"OriginalValue": "1" "OriginalValue": "<RemoveEntry>"
}, },
{ {
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge", "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "PersonalizationReportingEnabled", "Name": "DiagnosticData",
"Type": "DWord", "Type": "DWord",
"Value": "0", "Value": "0",
"OriginalValue": "1" "OriginalValue": "<RemoveEntry>"
}, },
{ {
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge", "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "ShowMicrosoftRewards", "Name": "EdgeAssetDeliveryServiceEnabled",
"Type": "DWord", "Type": "DWord",
"Value": "0", "Value": "0",
"OriginalValue": "1" "OriginalValue": "<RemoveEntry>"
}, },
{ {
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge", "Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "WebWidgetAllowed", "Name": "WalletDonationEnabled",
"Type": "DWord", "Type": "DWord",
"Value": "0", "Value": "0",
"OriginalValue": "1" "OriginalValue": "<RemoveEntry>"
}, }
{ ],
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "DiagnosticData",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "EdgeAssetDeliveryServiceEnabled",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "EdgeCollectionsEnabled",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "CryptoWalletEnabled",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "ConfigureDoNotTrack",
"Type": "DWord",
"Value": "1",
"OriginalValue": "0"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Edge",
"Name": "WalletDonationEnabled",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
}
],
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Essential-Tweaks/EdgeDebloat"
}
``` ```
</details> </details>
@@ -181,183 +121,4 @@ Disables various telemetry options, popups, and other annoyances in Edge.
## Registry Changes ## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place. Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry). You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
### Registry Key: CreateDesktopShortcutDefault
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: EdgeEnhanceImagesEnabled
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: PersonalizationReportingEnabled
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: ShowRecommendationsEnabled
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: HideFirstRunExperience
**Type:** DWord
**Original Value:** 0
**New Value:** 1
### Registry Key: UserFeedbackAllowed
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: ConfigureDoNotTrack
**Type:** DWord
**Original Value:** 0
**New Value:** 1
### Registry Key: AlternateErrorPagesEnabled
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: EdgeCollectionsEnabled
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: EdgeFollowEnabled
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: EdgeShoppingAssistantEnabled
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: MicrosoftEdgeInsiderPromotionEnabled
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: PersonalizationReportingEnabled
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: ShowMicrosoftRewards
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: WebWidgetAllowed
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: DiagnosticData
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: EdgeAssetDeliveryServiceEnabled
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: EdgeCollectionsEnabled
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: CryptoWalletEnabled
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: ConfigureDoNotTrack
**Type:** DWord
**Original Value:** 0
**New Value:** 1
### Registry Key: WalletDonationEnabled
**Type:** DWord
**Original Value:** 1
**New Value:** 0
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)

View File

@@ -1,97 +1,24 @@
# Enable End Task With Right Click # Enable End Task With Right Click
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Enables option to end task when right clicking a program in the taskbar
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json ```json
{ "WPFTweaksEndTaskOnTaskbar": {
"Content": "Enable End Task With Right Click", "Content": "Enable End Task With Right Click",
"Description": "Enables option to end task when right clicking a program in the taskbar", "Description": "Enables option to end task when right clicking a program in the taskbar",
"category": "Essential Tweaks", "category": "Essential Tweaks",
"panel": "1", "panel": "1",
"Order": "a006_", "Order": "a006_",
"InvokeScript": [ "registry": [
"$path = \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\\TaskbarDeveloperSettings\" {
$name = \"TaskbarEndTask\" "Path": "HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\\TaskbarDeveloperSettings",
$value = 1 "Name": "TaskbarEndTask",
"Type": "DWord",
# Ensure the registry key exists "Value": "1",
if (-not (Test-Path $path)) { "OriginalValue": "<RemoveEntry>"
New-Item -Path $path -Force | Out-Null
} }
],
# Set the property, creating it if it doesn't exist
New-ItemProperty -Path $path -Name $name -PropertyType DWord -Value $value -Force | Out-Null"
],
"UndoScript": [
"$path = \"HKCU:\\Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Advanced\\TaskbarDeveloperSettings\"
$name = \"TaskbarEndTask\"
$value = 0
# Ensure the registry key exists
if (-not (Test-Path $path)) {
New-Item -Path $path -Force | Out-Null
}
# Set the property, creating it if it doesn't exist
New-ItemProperty -Path $path -Name $name -PropertyType DWord -Value $value -Force | Out-Null"
],
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Essential-Tweaks/EndTaskOnTaskbar"
}
``` ```
</details> ## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
## Invoke Script
```powershell
$path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\TaskbarDeveloperSettings"
$name = "TaskbarEndTask"
$value = 1
# Ensure the registry key exists
if (-not (Test-Path $path)) {
New-Item -Path $path -Force | Out-Null
}
# Set the property, creating it if it doesn't exist
New-ItemProperty -Path $path -Name $name -PropertyType DWord -Value $value -Force | Out-Null
```
## Undo Script
```powershell
$path = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\TaskbarDeveloperSettings"
$name = "TaskbarEndTask"
$value = 0
# Ensure the registry key exists
if (-not (Test-Path $path)) {
New-Item -Path $path -Force | Out-Null
}
# Set the property, creating it if it doesn't exist
New-ItemProperty -Path $path -Name $name -PropertyType DWord -Value $value -Force | Out-Null
```
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).

View File

@@ -0,0 +1,52 @@
# Disable GameDVR
```json
"WPFTweaksDVR": {
"Content": "Disable GameDVR",
"Description": "GameDVR is a Windows App that is a dependency for some Store Games. I've never met someone that likes it, but it's there for the XBOX crowd.",
"category": "Essential Tweaks",
"panel": "1",
"Order": "a005_",
"registry": [
{
"Path": "HKCU:\\System\\GameConfigStore",
"Name": "GameDVR_FSEBehavior",
"Value": "2",
"OriginalValue": "1",
"Type": "DWord"
},
{
"Path": "HKCU:\\System\\GameConfigStore",
"Name": "GameDVR_Enabled",
"Value": "0",
"OriginalValue": "1",
"Type": "DWord"
},
{
"Path": "HKCU:\\System\\GameConfigStore",
"Name": "GameDVR_HonorUserFSEBehaviorMode",
"Value": "1",
"OriginalValue": "0",
"Type": "DWord"
},
{
"Path": "HKCU:\\System\\GameConfigStore",
"Name": "GameDVR_EFSEFeatureFlags",
"Value": "0",
"OriginalValue": "1",
"Type": "DWord"
},
{
"Path": "HKLM:\\SOFTWARE\\Policies\\Microsoft\\Windows\\GameDVR",
"Name": "AllowGameDVR",
"Value": "0",
"OriginalValue": "<RemoveEntry>",
"Type": "DWord"
}
],
```
## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).

View File

@@ -1,96 +0,0 @@
# Disable Hibernation
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Hibernation is really meant for laptops as it saves what's in memory before turning the pc off. It really should never be used, but some people are lazy and rely on it. Don't be like Bob. Bob likes hibernation.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Disable Hibernation",
"Description": "Hibernation is really meant for laptops as it saves what's in memory before turning the pc off. It really should never be used, but some people are lazy and rely on it. Don't be like Bob. Bob likes hibernation.",
"category": "Essential Tweaks",
"panel": "1",
"Order": "a005_",
"registry": [
{
"Path": "HKLM:\\System\\CurrentControlSet\\Control\\Session Manager\\Power",
"Name": "HibernateEnabled",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
},
{
"Path": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FlyoutMenuSettings",
"Name": "ShowHibernateOption",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
}
],
"InvokeScript": [
"powercfg.exe /hibernate off"
],
"UndoScript": [
"powercfg.exe /hibernate on"
],
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Essential-Tweaks/Hiber"
}
```
</details>
## Invoke Script
```powershell
powercfg.exe /hibernate off
```
## Undo Script
```powershell
powercfg.exe /hibernate on
```
## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).
### Registry Key: HibernateEnabled
**Type:** DWord
**Original Value:** 1
**New Value:** 0
### Registry Key: ShowHibernateOption
**Type:** DWord
**Original Value:** 1
**New Value:** 0
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)

View File

@@ -0,0 +1,37 @@
# Disable Hibernation
```json
"WPFTweaksHiber": {
"Content": "Disable Hibernation",
"Description": "Hibernation is really meant for laptops as it saves what's in memory before turning the pc off. It really should never be used",
"category": "Essential Tweaks",
"panel": "1",
"Order": "a005_",
"registry": [
{
"Path": "HKLM:\\System\\CurrentControlSet\\Control\\Session Manager\\Power",
"Name": "HibernateEnabled",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
},
{
"Path": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\FlyoutMenuSettings",
"Name": "ShowHibernateOption",
"Type": "DWord",
"Value": "0",
"OriginalValue": "1"
}
],
"InvokeScript": [
"powercfg.exe /hibernate off"
],
"UndoScript": [
"powercfg.exe /hibernate on"
],
```
## Registry Changes
Applications and System Components store and retrieve configuration data to modify windows settings, so we can use the registry to change many settings in one place.
You can find information about the registry on [Wikipedia](https://www.wikiwand.com/en/Windows_Registry) and [Microsoft's Website](https://learn.microsoft.com/en-us/windows/win32/sysinfo/registry).

View File

@@ -1,70 +0,0 @@
# Disable Homegroup
Last Updated: 2024-08-07
> [!NOTE]
The Development Documentation is auto generated for every compilation of Winutil, meaning a part of it will always stay up-to-date. **Developers do have the ability to add custom content, which won't be updated automatically.**
## Description
Disables HomeGroup - HomeGroup is a password-protected home networking service that lets you share your stuff with other PCs that are currently running and connected to your network.
<!-- BEGIN CUSTOM CONTENT -->
<!-- END CUSTOM CONTENT -->
<details>
<summary>Preview Code</summary>
```json
{
"Content": "Disable Homegroup",
"Description": "Disables HomeGroup - HomeGroup is a password-protected home networking service that lets you share your stuff with other PCs that are currently running and connected to your network.",
"category": "Essential Tweaks",
"panel": "1",
"Order": "a005_",
"service": [
{
"Name": "HomeGroupListener",
"StartupType": "Manual",
"OriginalType": "Automatic"
},
{
"Name": "HomeGroupProvider",
"StartupType": "Manual",
"OriginalType": "Automatic"
}
],
"link": "https://christitustech.github.io/Winutil/dev/tweaks/Essential-Tweaks/Home"
}
```
</details>
## Service Changes
Windows services are background processes for system functions or applications. Setting some to manual optimizes performance by starting them only when needed.
You can find information about services on [Wikipedia](https://www.wikiwand.com/en/Windows_service) and [Microsoft's Website](https://learn.microsoft.com/en-us/dotnet/framework/windows-services/introduction-to-windows-service-applications).
### Service Name: HomeGroupListener
**Startup Type:** Manual
**Original Type:** Automatic
### Service Name: HomeGroupProvider
**Startup Type:** Manual
**Original Type:** Automatic
<!-- BEGIN SECOND CUSTOM CONTENT -->
<!-- END SECOND CUSTOM CONTENT -->
[View the JSON file](https://github.com/ChrisTitusTech/Winutil/tree/main/config/tweaks.json)

Some files were not shown because too many files have changed in this diff Show More