* 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>
* 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>
* Delete WPFTweaksPowershell7 from tweaks.json
Removed WPFTweaksPowershell7 configuration for Windows Terminal.
* Delete functions/public/Invoke-WPFTweakPS7.ps1
* Update WPFTweaksRazerBlock's InvokeScript
* Format fix for WPFTweaksRazerBlock
* Update WPFTweaksRazerBlock
* Update WPFTweaksRazerBlock
* Update WPFTweaksRazerBlock
* Better format for WPFTweaksRazerBlock's InvokeScript
* Better format for WPFTweaksRazerBlock's InvokeScript
* Fomat fix on WPFTweaksRazerBlock
* Update WPFTweaksRemoveHome to use powershell
* Fix WPFTweaksRemoveGallery format
* Format fix for WPFTweaksRemoveHome
* Update tweaks.json
* fix my f up
* Update tweaks.json to use registry modifications
Replaced InvokeScript and UndoScript with registry modifications for removing Home from Explorer and setting This PC as default.
* fix missing comma from twitch chat
* [Tweaks] Conditionally determine when to use sc and Set-Service
* Clean up comments in Set-WinUtilService.ps1
Removed comments explaining the handling of auto delayed start for PWSH 5.
---------
Co-authored-by: Chris Titus <contact@christitus.com>
* Update tweaks.json
* Fix
* Final Fix
* Added comments to WPFTweaksBlockAdobeNet
* Syntax change for WPFTweaksBlockAdobeNet
* Removed double \ from WPFTweaksBlockAdobeNet
* Added back double \ for WPFTweaksBlockAdobeNet
* Syntax fix for WPFTweaksBlockAdobeNet
* Syntax fix for WPFTweaksBlockAdobeNet again
* Fix for WPFTweaksBlockAdobeNet
* Merge branch 'ChrisTitusTech:main' into Update-WPFTweaksBlockAdobeNet
* Rename m to M
* Update tweaks.json
* Update tweaks.json
* Update tweaks.json
* Merge branch 'ChrisTitusTech:main' into Typo-Fix
* Merge branch 'ChrisTitusTech:main' into Typo-Fix
* Extra space
* From Tweaks to Toggle
* Merge branch 'ChrisTitusTech:main' into Typo-Fix
* Added Proton Authenticator to applications.json
Proton Authenticator is a popular open source 2fa app from proton.
* Update name in applications.json
---------
Co-authored-by: CyberSphinx <202843220+CyberSphonx@users.noreply.github.com>
The Invoke-WinUtilTweaks function was using the '-contains' operator on a string variable to check for toggle-type tweaks. This operator is intended for collections (arrays), not for substring matching within a string, leading to incorrect logic flow.
This caused an issue where selecting one tweak (e.g., WPFTweaksRightClickMenu) could erroneously trigger the action of another (e.g., WPFTweaksDisableCrossDeviceResume).
This commit replaces the incorrect '-contains' operator with the '-like' operator and appropriate wildcards ('*Toggle*'). This ensures that tweak types are identified correctly, resolving the bug and preventing unintended system modifications.
* feat: Add Beeper to Messaging applications
This commit adds the Beeper desktop application to the list of installable packages in the "Messaging" category.
The entry has been added to `config/applications.json` with the official download URL and the correct silent installation arguments.
Fixes#3608
* Fix job failure: ensure excluded directory exists before processing
This commit updates the Invoke-Preprocessing function to prevent workflow failures caused by missing excluded directories.
Previously, the script would attempt to recursively list files in excluded paths, resulting in an error if a directory did not exist.
The updated logic checks if the excluded path refers to a directory (ends with a backslash) and creates it if necessary before proceeding. This avoids "Cannot find path" errors and ensures smoother preprocessing, especially for jobs that depend on directory existence for exclusion logic.
No changes are made for excluded files or wildcard patterns.
* [Applications] DISM utility changes, app description fixes
- NTLite has been added to the list of apps to give the user some choice
- Both DISMTools and NTLite have been moved to a new section so they can be identified more easily by what they do, and because the former is not a tool made by either Microsoft or Sysinternals. The former now has its description pulled from WinGet (and summarized using Copilot)
- Em-dashes in some app descriptions have been replaced with semicolons to avoid question marks in tooltips
* Change category from 'DISM Utilities' to 'Microsoft Tools'
---------
Co-authored-by: Chris Titus <contact@christitus.com>
* [Enhance] Configure all apps view in start menu
To keep look consistent with older Win11
* [Enhance] Additional Start menu settings
* [MicroWin] Change Write-Host to Write-Debug on debug lines. (#13)
* Add a resolution to scripts being disabled (#14)
* [MicroWin] Change Write-Host to Write-Debug on debug lines.
* Add a resolution to scripts being disabled
* Add skip first logon anim option
* Unrelated: indentation fixes from compile script
* Some little touches to the first-run script
---------
Co-authored-by: Real-MullaC <callumjanes2007new+github@gmail.com>
* Disable "Microsoft account" notification source
* [WinPE] Remove driver addition block for WinPE
WE DO NOT TOUCH THE DRIVERS IN WinPE. There are reports of people getting "Install driver to show hardware" screens all over this repository, and on Discord; and the less drivers we touch in WinPE, the better.
Drivers can still be added to Preinstallation Environments in the following ways:
- Using the driver installation screens
- Firing up "drvload.exe <driver>" in cmd
* [Fix] Added fallback for DISM export command
This is a port of the fix in #3305
* [Cleanup] Removed some comments that no longer make sense
* [Fix] Same DISM export image fallback fix
* Merge branch 'main' into microwin-202506
* [Fix] Improve UI consistency for instructions
Fixes#3394
* Merge branch 'main' into microwin-202506
* [Unattended answer file] Remove it from drive root
The answer file, on the drive root, is not necessary for us to apply it. In fact, it's not even used there
* Merge branch 'main' into microwin-202506
* [MicroWin] June-August 2025 Update (#3) -- Contributions from Callum
* Allow people without compatible hardware or a USB to use MicroWin.
* Update functions/microwin/Microwin-NewUnattend.ps1
Co-authored-by: CodingWonders <101426328+CodingWonders@users.noreply.github.com>
* Update Invoke-Microwin.ps1
* Update Microwin-NewUnattend.ps1
* Update Microwin-NewUnattend.ps1
* Add error pop up if ISO Creation fails.
Issue 2653
* Add Disable WPBT Execution to MicroWin.
* Update functions/microwin/Invoke-Microwin.ps1
Co-authored-by: CodingWonders <101426328+CodingWonders@users.noreply.github.com>
* modified: functions/microwin/Invoke-Microwin.ps1
modified: xaml/inputXML.xaml
---------
Co-authored-by: CodingWonders <101426328+CodingWonders@users.noreply.github.com>
* Add conversion to ESD (#4)
* Add conversion to ESD
Issue - #3450
* Update Invoke-Microwin.ps1
Added quotes to the file paths. Put all the arguments in 1 string (as that also works fine)
---------
Co-authored-by: CodingWonders <101426328+CodingWonders@users.noreply.github.com>
* Update MicroWin contributor list
* Merge branch 'main' into microwin-202506
* Merge branch 'main' into microwin-202506
* [MicroWin] Add automatic configuration settings
Originally implemented in #2618. Adapted to follow the new file structure. And it works.
Though there are issues that will be detailed very soon
* [Fix] Fixed typos, updated descriptions
* Re-add WinPE driver addition
We're not yet sure if that is the actual problem of missing storage controllers. Logs can tell us more about this. Maybe for a future PR?
* [Fix/WPBT] Add spaces to reg key path
Avoid REG failure
* [Fix/XAML] Fix word wrapping issue for checkboxes
* add TIMEDATE.cpl Panel
* Fix standardization
---------
Co-authored-by: Chris Titus <contact@christitus.com>
Co-authored-by: Chris Titus Tech <dfm.titus@gmail.com>
* Checks if password exists for the user, if it doesn't the user is prompted to create one.
It checks if the password is equal to $null using `ValidateCredentials` and if it isn't the variable will be created. If it is equal to $null, a window with text, a textbox and a button will appear asking the user to create a password. That password is then set for the user and the winget installation continues.
* Made this a little more secure
Securing the password variable when it gets created and deleting it after it's done being used.
* Forces the user to input their password and automatically puts their username into the credentials box
* Removed the second greater than 0 check
* Adaptive Busy Icon + Message
- added adaptive color & message of busy indicator
- fixed placement at some places for "Set-WinUtilTaskbaritem" as dialogbox which waits for user input came before
* seperate long Errormessaged for BusyIndication
* add CharacterEllipsis as TextTrimming on BusyText
Co-authored-by: CodingWonders <101426328+CodingWonders@users.noreply.github.com>
* fix BusyIndication + add more detailed one
* removing wip busymessages before process
* Improve reporting of messages significantly (#15)
- Added parameter sets
- Implemented detections for interactive/noninteractive processes
* Fix hidden message action (#16)
---------
Co-authored-by: CodingWonders <101426328+CodingWonders@users.noreply.github.com>
It just adds the `$null =` from the else to the start of the add line if the package is equal to `na`.
For winget the package added is put into an extra set of $(), because of how it is in the else. I haven't tested it without.
* Implement app installation progress overlay and refactor progress bar handling
* Add overlay background color settings and ensure minimum progress bar value
* Add busy overlay functionality and progress bar updates for installation process
* Refactor busy overlay implementation to dynamically adjust size based on app area dimensions
🚨 Spotube is banned from using "Spotify™ API" 🚨
The developer of Spotube has received a cease and desist letter from Spotify USA Inc. and Spotify AB, asserting a legal threat concerning the distribution and development of any application that utilizes Spotify’s data API in conjunction with content from YouTube® to facilitate ad-free playback of music tracks. The letter contends that this specific use of the Spotify™ APIs contravenes the Spotify™ Agreements and may also infringe upon the rights of music rights holders.
Consequently, as the official maintainer of Spotube, I will immediately cease all forms of official distribution and development of Spotube that continue to employ the aforementioned 'Spotify™ APIs'
Their exact reasoning: (any) "uses of Spotify’s data API in connection with content from YouTube to provide ad-free playback of music tracks. The use of the Spotify APIs in this manner violates the Spotify Agreements and may also violate the rights of music rights holders."
https://spotube.krtirtho.dev/
* Initial Remove Expanded View
* more cleanup
* Add word wrapping for Tooltips
* Update tooltip colors in themes and XAML styles
* Rename Properties for consistency
* More Cleanup, and simplification. Also added support for screenreaders
* Remove unused variables and shorten window naming
* Rename Invoke-WPFUIApps to Initialize-WPFUI and update function calls for consistency
* Rename Invoke-WPFUIApps.ps1 to Initialize-WPFUI.ps1
* Add TODO comments for sidebar UI generation in Initialize-WPFUI function
* Better formatting
A bit cleaner
* Remove unused scripts
This gets rid of file not found errors during setup
* Have a fallback method for Recall fixes
Go back to the delayed disablement procedure if we fail at modifying the manifest
* Ignore Recall disablement when disabled, and more
- If Recall is disabled, don't disable it again. This may be a waste of time
- Disable certain notification sources that I think are quite annoying, like those from Suggested or the Startup App Notification
* Hopefully? Get rid of News and Interests on Win10
Based on PR #3289, add News and Interests removal to MicroWin. Hopefully Windows 10 gets to cooperate this time, compared to last time, where it was quite stubborn.
*This means that people never give up trying to fight against something they don't like*
* Revert "Refactor preferChocolatey system to handle other package managers eas…" (#3323)
This reverts commit 89919494e5.
* Fixed all the things that could possibly break
* Get rid of extra parameter
Package removal fallback fails here. Quite likely a copy from feature disablement
---------
Co-authored-by: Chris Titus <contact@christitus.com>
* Refactor Invoke-WPFFixesUpdate and replace Invoke-WPFPanelDISM with Invoke-WPFSystemRepair. Streamline Windows Repair
* Refactor Invoke-WPFSystemRepair to improve function naming, scalablility and fix on english os
* Remove debug switches to minimize clutter and shorten the code
* Replace Write-Verbose with Write-Debug
* Modify preprocessor, to only process modified files
* Refactor Invoke-Preprocessing to remove ThrowExceptionOnEmptyFilesList parameter and switch to MD5 hashing
* Remove SkipExcludedFilesValidation parameter and update validation logic for ExcludedFiles
* Correct the Header Font Size naming and simplify the creation of the Selected Apps Button
* Adjust HeaderFontSize from 18 to 16 for improved readability
* Remove old Announcement about not adding any new applications to the app list
* Update '.gitignore' file
The generated 'site' folder, which contains the docs build result by 'mkdocs', in the same folder as 'mkdocs.yml' (i.e. under '.github' folder), so I've temporarily excluded with '.gitignore' file until we've fully migrated the docs site into another repo.
- use join method to parse $argList
- use $PSCommandPath instead of $MyInvocation.MyCommand.Path
- use ScriptBlock method to create request for latest winutil.ps1 with join $argList
- condition for $processCmd because in case when wt.exe is not available, there was double/redundant declaration of shell which lead to code mishmash (incorrect interpretation of quotes from Start-Process ArgumentList parameters
- changes in quotes and escape characters because command where not interpreted correctly in all possible cases of $powershellCmd and $processCmd
* initial visual implementation
- remove idiotic border logic from Invoke-WPFUIElements
- add "application" type & style
- add "radiobutton" type & style
- remove prefer choco checkbox (did not modify logic outside of xaml, so i currently get errors due to that)
* add image support via choco db
- add image support via choco db
- backup image should be taken from unigetui db
- backup backup image is some random package one rn
* add compatibility for every app
* performance improvements
- move get logo to runspace (not working rn)
- readd choco checkbox to mute errors
* add border name
* fix scrollviewer & reimplement logo logic into ui elements
* noimage fix
* add notes
* cleanup & remove nav from search effects
* add button action
* rename buttons
* add sort by options
* move scrollviewer & app buttons into uielements logic
* format logic for app action buttons
* fix app action button logic & move get & clear to sidepanel
* change category of new buttons
* add virtualisation & layouting fixes
- commented out prefer choco logic
- add virtualisation
- layouting improvements
* fix radiobuttons
* LETS GOOO (#12)
* Add Selected Apps Label, Reshuffel the nesting of the checkbox and the label to be able to reference the name from the actual checkbox
* Add visual selection and allow click on the whole app section
* Fix Theme definition to work with theme change
* Fix Highlight on if label or icon is clicked
* change applications.json to powershell object list and refactor UI Creation logic
* Optimization and Add Collapsable Categories
* Add Button functionality for install, uninstall, info, install selected, uninstall selected, clear and implement search
* Rest application.json to Main
* Reset Compile to main
* Pretty much revamp_apps but without changes to applications.json
* Small fixes
* Add Get-Installed Loading Indicator + small fixes
* Re-Add Choco Preference
* Remove Logic from Invoke-WPFUIElements that is Moved to Invoke-WPFUIApps
* Remove Alphabetical List, Sort Apps inside Category Alphabetically
* Small fixes to the Get-Installed function and formatting stuff
* Style for Hidden Checkbox but visible Content
* Hotfix for Category Expansion during search
* Replace Category Label with ToggleButton, Fix Search Bugs
* First Try at implementing a Compact Mode for the App page
* Fix Whitespace when using Search
* Keep the search status when switching between compact and full view
* Fix weird buggy behaviour in regards to switching the Display Mode and using Show-SelectedOnly
* Improve Togglebutton
- add initial implementation of togglebutton style
- add togglebuttons to appnavigation.json
- refractor UI element creation for Togglebutton
- commit preprocessing changes
* Togglebutton fixes
- move dot to the right in style
- cleanup code
- fix arrangement of content
* Add logic to the new ToggleButtons in the sidebar of the install tab and remove old buttons
* reorder buttons & fix Togglebutton toggling if action not possible
- reorder getinstalled and clearselection
- set togglebutton back if no app is selected
* Slight modificatoin to togglebutton style & fix sidebar width
* Add hover effect for the app tiles
* ToggleButtonStyle animation
- add hover animation to white dot
- remove IsPressed trigger
- improve some comments
* disable show selected filter on clear selection
* Add a Popup Dropdown for Selected Apps with the ability to deselect them
* Split up the functions to seperate files like the rest of the repo
* Fix Bug where Scrollviewer dosnt work
* disable autofallback checkbox
* run preprocessing
* remove installation scope
- remove all 3 radiobuttons from appnavigation.json
* remove scrollviewer from WPFUIElements
* toggle showselected on GetInstalled
* remove unused autofallback
---------
Co-authored-by: Martin Wiethan <47688561+Marterich@users.noreply.github.com>
Co-authored-by: Chris Titus <contact@christitus.com>
* use new issue preview
- convert existing issue templates to new template style
- move issue validation to start
- add important section at start
- improve checkbox UX
- improve wording a bit
- add config to link discord & remove blank issues
* remove description
* fix: nerdfonts uninstall now deletes corresponding registry keys
* change ErrorAction to SilentlyContinue
* fix some code styling
* removed unused files/docs as per Cryostrixx advice
* restored portions of the feature.json
* Fixed lock caused by expected input for DISM
This is the main event
* Miscellaneous file
Don't know why this file was modified by the compile preprocessor
* add WPFToggleRemoveRecommended
- add WPFToggleStartMenuRecommendations
- add reg entrys to modify for toggle
- add non working link bc devdocs are broken in general
* add iseducationenvironment notice
* improve handling if entry does not exist
- add DefaultState property
- add handler for DefaultState in Get-WinUtilToggleStatus
* remove helper console logs
* fix search defaultstate
* added missing default states
* Set Boot Manager entry timeout to 0
Fixes#2562
* Exclude Windows Hello stuff from package removal
* Obscure passwords with Base64 and fix indentation
Fixes#3064
* Fix name of excluded package
* Update comment
It reflects my feelings towards Microsoft when it comes to security a lot better
* Remove jargon of scratch directory options
* Package exclusion improvements
- Removed AppX packages from OS package exclusion list
- Added exclusion of PowerShell ISE (source: Discord server - yes, some people still use the PowerShell ISE)
* Exclude Windows Photo Viewer from dir removal
* Improve copy operation to Ventoy drives
This change may fix the issues where there's a conflict between both Ventoy's and MicroWin's unattended answer files, causing target images to stop working as expected during OOBE
* Add VirtIO functionality and more enhancements
- Added the ability to grab VirtIO Guest Tools
- Modified the description of the Copy ISO files function because it basically had nonsense
* Fix typo (#3104)
* Access specific property of ISO image object
Only show the ISO path. No one is interested in the storage type
* Add detections for expedited app removal
They only affect 24H2 and newer. Earlier releases don't have these expedited apps
* Update message
* Add VirtIO instructions to MicroWin page
* Add DISM command fallback
This fallback is triggered if an exception occurs while getting information with the cmdlets (I couldn't test this on my host as everything magically works now - sometimes it threw the Class not registered error)
* Exclude OpenSSH from package removal
Some people need this to avoid installing third-party programs like PuTTY
* Fixed some more indentation
* move logic to json template
- remove Invoke-WPFToggle.ps1
- generalize Get-WinUtilToggleStatus
- add bingsearch reg key for testing
- use Invoke-WinUtilTweaks for actions
- replace Add-Click with checked & unchecked to make undo work
* add reg params for toggles into tweaks.json
- add all reg keys to tweaks.json into existing toggle entry
- remove unneeded scripts
* fix HKU
- load HKU if needed (for tweaks & GetToggleStatus)
- remove unneeded Invoke-WinUtilNumLock
- has loaded HKU does not load/not stay loaded
* add a lot of error handling
* Bugfix: New-PSDrive seems to return the "hku" itself so weirdly gets prepended to the return value so the result becomes ("hku", $false). In powershell pretty much every variable that exists is interpreted as $true so the toggle for numlock got incorrectly checked
* globally fix HKU error & minimize console feedback
- fix HKU issue globally
- remove some console logs, change some others to write-debug
* update Explorerrefresh
- change Invoke-WinUtilExplorerRefresh to handle refresh and restart
- add restart logic to window snapping Flyout & Suggestions
- rename Invoke-WinUtilExplorerRefresh to Invoke-WinUtilExplorerUpdate
* add explorer restart where needed to take effect
add explorer restart logic for hidden files + Fileextension toggles
* fix missing theme change logic in darkmode toggle
* fix window snapping
- fix issue defining WindowArrangementActive as dword instead of string
* fix bing search
- switch bing search enabled/disabled values
* add a little bit of error handling
- add error handling for Get-WinUtilToggleStatus
---------
Co-authored-by: Marterich <47688561+Marterich@users.noreply.github.com>
* Add @CodingWonders to the About page for his contribution and determination to make WinUtil (and MicroWin) the best software it can be!
* Remove the 'LogoSize' Parameter for About page - Make every sponsor in the sponsors list a link to ChrisTitusTech's Sponsors web link
* Change Theme Option name from 'ConfigTabButtonFontSize' to 'ConfigUpdateButtonFontSize' - Lower its value from 16 to 14
* Change Theme Option name from 'FontSizeHeading' to 'HeadingFontSize' for consistency
* Update 'LinkForegroundColor' for Light Theme to be lighter which'll make link hover color more noticeable
* Update 'Show-CustomDialog' Private Function
- Made a lot of theming/styling choices for Custom Dialogs exposed as parameters.
- Update the documentation for these new parameters in 'Show-CustomDialog' Function.
- Add a Link Hover Effect using 'Add_EVENT' methods (This can be tweaks/tuned-down if needed).
- Made use of 'Title' Parameter for 'Show-CustomDialog' Function inside 'scripts/main.ps1' script, to change Dialog Window Title.
- Now you can change the Logo Size of WinUtil through the 'LogoSize' Theming Option (the option was there, but not used in implementation).
* Preprocessing result
* Fix Settings Popup not closing after losing focus - Add trivial null checks for better debugging of UI code
* Remove unnecessary whitespace indentation in 'main.ps1' script
* Add a new 'Invoke-WPFPopup' Function to Better Handle Showing/Hiding/Toggling of Popups
* Improve 'Invoke-WPFPopup' by @MyDrift-user
Thanks for the improvements :)
---------
Co-authored-by: MyDrift <personal@mdiana.ch>
Co-authored-by: Chris Titus <contact@christitus.com>
* update issue commands workflow
- remove existing workflow
- copy linutil's workflow into winutil
- add @CodingWonders as allowed user
* remove op from rights
- op could spam and create a ton of new labels, or spam workflow to close, reopen and so one
* issue template update
- add issue validation inspired by https://github.com/ChrisTitusTech/linutil/pull/459
- standardize capitalisation of characters in titles
- update feature request to use headers instead of bold text for titles
* use "I checked" for Issue validation
* Improve 'Invoke-WPFTab' Parameter by specifying its type (as expected by the function) and make it Mandatory
* Simple performance increases in 'Invoke-WPFTab' function - Use where method instead of piping the result into Where-Object
* Remove commented-out code in 'Invoke-WPFTab' function
* Save WinUtil's json strings with DOS-Style Newline Character (CRLF) instead of Unix-Style Newline Character (LF)
Originated from PR #2816 by @ruxunderscore
* Exit Early when facing Syntax Errors, Solves a problem when passing '-Run' Argument with 'Compile.ps1' Script - Use 'Out-Null' to follow common project conventions
* KnownIssues: reformat, reorganize, clean up
- fix bad tabulation in rendered markdown. GFM is very forgiving with tabs, but most implementations require four spaces per level.
- fix headers and header depth (H3 should not be the toplevel...)
- convert some list items to headers
- fix some grammar and reword some parts
- reorganize some list elements and sections
- unify use of key shortcut presentation (`Win`+`X`)
- convert some quoted words to italics
- don't include punctuation in emphasized/quoted technical words
- better explain some of the troubleshooting steps
- add key takeaways to battery health section
- other general proofreading
* KnownIssues.md: add clarifying text
- Stray comma at the end of line 324.
- Since JSON handling is different between Powershell 5 and Powershell 7. You only notice the error during Compiling on Powershell 5. Fixes https://github.com/ChrisTitusTech/winutil/issues/2864
* Fix minor denomination problem for packages
* Fix incorrect filter of OS packages
Packages such as the metadata for capabilities (FoDs) or the foundation package were being incorrectly filtered. They were part of `Remove-ProvisionedPackages`, which only removes AppX packages. These are **OS packages**, something completely different
* Fixed indentation
* Exclude `Microsoft-RemoteDesktopConnection`
Exclude that from feature list. Fixes#2705
* Remove DISM from AppX removal listings
DISM is a system component. It will never be an AppX package. This is unnecessary
* Improve error handling for file copy
* Remove space (for some reason)
Compilation script is very adamant that this should be this way
* Exclude the VBSCRIPT Features on Demand from pkgs
Exclude the VBSCRIPT feature on demand (or capability) from package removal. Some people were reporting that excluding VBSCRIPT fixed problems with AMD chipset drivers on MicroWin
* Exclude Recall from feature listings
This fixes problems people were experiencing where the file explorer would go back to the Windows 10 layout
* Improve error output
* Add 24H2 to release list
* Detect Windows 10 and show compatibility dialog
* Disable some insane desktop stuff on Windows 10
I've only been able to disable Search Highlights. News and Interests persists
* Change policy for News and Interests
Avoid showing "Access denied" errors for this. This is still broken - News and Interests is still there. [louder]Linus Torvalds curse word here[/louder]
Anyway, if someone wants to give setting this up a shot, send me suggestions on how to do this
* Write suggestion for AV
* Hold errored packages in a list
Items are being added correctly, but I can't get that to show to the end-user. Perhaps a different approach will work
* Remove older Windows versions from download list
Sadly, the links for these had been removed by Microsoft, in favor of the latest version (24H2)
* Add sorting to error messages
Thanks @og-mrk for the suggestion and the patch (even though I applied it myself)
* Make error messages easier to view (#1)
* Make error messages easier to view
* Improve error output
---------
Co-authored-by: CodingWonders <101426328+CodingWonders@users.noreply.github.com>
* Disable Recall on first run
Keeps the Explorer look of modern Windows 11 builds whilst removing the Recall feature (which I think will manifest itself on PCs with Lunar Lake processors)
* Replace "C:\" with environment variable
This still works on single-boot configurations, but presents a more dynamic approach
* Fix Volume Mixer issues and removal of leftovers
Fix originally from @MyDrift-user on #2856
* Add missing piece to last commit
* Default to downloading OSCDIMG from GitHub repo
Chocolatey may not be the way to help us detect the presence of OSCDIMG.
Everyone, unless someone REALLY uses old deployment technology, has moved to Windows ADK 10.0
* Fix Sorting of Errored Packages by using 'Sort-Object' instead of 'IComparer' approach (#2)
Fixes startup issues in PWSH 7
* Remove reference to News and Interests from output
Even though the logic is still there, it doesn't work. I don't want to deal with that anymore. Search Highlights, on the other hand, is removed very easily
* Exclude License packages from removal
They throw an "Access denied" error when trying to remove them. This is a timesaver
---------
Co-authored-by: Mr.k <mineshtine28546271@gmail.com>
* Use here-strings for JSON in Compile.ps1
- Change Compile.ps1 to use here-strings with JSON, similar to my changes to Xaml being ingested using here-strings.
* Slight changes.
- Modifications, allowing for the removal of all .replace() functions in JSON handler.
- Changed formatting of here-string on line 91 -> 89 to prevent accidental double in winutil.ps1 (Doesn't cause an issue, but looks better.)
- Added here-string to 95 -> 93 (This allowed the removal of the final .replace())
* Added comment.
- Added comment to line 90.
* Squashed commit of the following:
commit c674d5eb605b549d8d8b247749954a98197277b4
Author: Saksham Singh <sakshamsingh.93502@gmail.com>
Date: Wed Sep 11 19:34:44 2024 +0530
desc update
commit 3d8bf2bdc9c382a9f087b9ac6e63cb8604c99698
Author: Saksham Singh <sakshamsingh.93502@gmail.com>
Date: Wed Sep 11 19:30:23 2024 +0530
Added Razer Block
Added the razer block by chris titus under the Fixes Section
* Moved razer-block from features to tweaks
* Updated tweaks.json
* Added option to enable ssh server under config tab
* Revert "Added option to enable ssh server under config tab"
This reverts commit ade414284d.
* Added Option to enable ssh server under config tab
* updated docs
* Removed #2715 from this PR
* update variable name
* Fixed authorized_keys file creation issue
auth key file was not being created due to incomplete file path from the $env:HOMEPATH and also corrected the ssh directory to .ssh
* Add 'dev' in 'docs' Folder to the Ignored Nav List to suppress mkdocs warnings on each site build
* Move '/.github/CONTRIBUTING.md' to '/docs' folder, and removed '/docs/contribute.md' as it's not needed any more
* Add GitHub Dark & Light Themes Tagging to Images found in the Docs
* Avoid duplicating items in lang list and fix issue
- Changed the first item in the language list to show "System language". Then we determine it and download it
- Fixed an issue where the entire contents of `gci` were being passed to the variable, which causes the rest to fail
* Add spaces for consistent indentation
* Modify current dir command to automatic variable
Thanks @ruxunderscore for suggesting
* Move downloaded ISO to user-specified path
* Indentation fixes for comments
* Update functions/public/Invoke-WPFGetIso.ps1
Co-authored-by: Luka Momčilović <l.momcilovic61@gmail.com>
* Modify first language item and add error handling
---------
Co-authored-by: Luka Momčilović <l.momcilovic61@gmail.com>
* try1
* little fix
* change back to using Fido
* little update
* fix some stuff
* fix (maybe?)
* remove architecture selection
* add somewhat of a lang support (needs improvement)
* WIP: refractor of existing logic & addition of language selection
* WIP: correct lang display (not working rn)
* improve, fix and more
- call ed with default windows edition (Home/Pro/Edu)
- fix language combobox logic
- add @CodingWonders 's "Get-FidoLangFromCulture"
- hide comboboxes if manual ISO selection is toggled
* little output fix
- added | Out-Null to combobox item additions to prevent unneeded console output
* improve coloring
- using ToggleButtonOnColor for Radiobuttons
- add theme color ToggleButtonOffColor and use where needed
* fix lang
* fix "en-" lang
remove (United States) bc it is wrong and not accepted by fido/ms
* always add "English"
* fix theming
- add ToggleButtonOffColor to all themes
* fix merge issue
* update instructions
* update ui
- manual download is primary option
- radiobuttons renamed to refrect what they are
- fix styling of instruction
- add margin to radiobuttons
* fix by adding line break to instructions
* fix merge issues
* Squashed commit of the following:
commit c674d5eb605b549d8d8b247749954a98197277b4
Author: Saksham Singh <sakshamsingh.93502@gmail.com>
Date: Wed Sep 11 19:34:44 2024 +0530
desc update
commit 3d8bf2bdc9c382a9f087b9ac6e63cb8604c99698
Author: Saksham Singh <sakshamsingh.93502@gmail.com>
Date: Wed Sep 11 19:30:23 2024 +0530
Added Razer Block
Added the razer block by chris titus under the Fixes Section
* Moved razer-block from features to tweaks
* Updated tweaks.json
* Added option to enable ssh server under config tab
* Undoing a accidental pushed commit
* minor change
* Setup for testing
* Working Example for Background
* Almost all MainBackgrounColor working
* Random Color PoC
* Fix DBorderColor
* prevent old logic from replacing colors in memory at startup
* Comment out resources in xaml
* Finish new Button
* Remove Pulse, Load Windows default Theme
* Fix Colors
* Fix Toggle Colors
* working version, with shared still being mostly applied be replace instead of resouces
* Load all entries in themes.json as Resource and reference them in inputXML.xaml
* Rename File to match Function Name
* Hotfix for Sync with main
* Remove Static Set-WinUtilUITheme function/file
* Rename File and Function
* Cleanup and Stuff
* Unify Button Theme with rest of UI
* Refactor/Optimazation
* Performance optimization
* Add Comments
* Rename Functions and Variables to be more concise and descriptive
* Add persistence to the user Theme Preference across winutil restarts
* Reimplement Theme Chagnes from #2722
* Add AUTO option to follow window theme and add dropdown instead toggle
* Formatting and deleting temp file
* Fix small display bug where Dropdown would remain open for settings and themes
* Remove terniary operators because only PS7+ is supported
* Run the Doubleclick action only on Grid and Stackpanel and cleanup the logic
* Remove ternary operator because it is only supported for powershell 7+
* Update Invoke-Preprocessing.ps1
- Added `-Force` argument to Get-ChildItem functions at lines 80 and 90.
* Update Invoke-Preprocessing.ps1
- Make changes to new Compile.ps1 file.
* fix winutil used by another process
- remove winutil.ps1 if it is readonly (also works if another process is using it) to minimize failed compiles.
* fix action error
* Oops, typo
* make it more compact
* enhance asset mgmt
- invoke ico directly
- invoke ico only at shortcut creation
- remove "ConvertTo-Icon" Function file
- removed image from xaml
- added stackpanel to xaml
- added functions to create viewbox with image
- added logic to add image via code to xaml & customdialog
- changed title color for customdialog
- remove webinvokes for assets from main.ps1
TODO: convert images into bitmap base64 string & add them directly into invoke-WinUtiltaskbaritem.ps1
* improve viewboxfunction
- add logo + checkmark + warning
- add params
- render on param "render"
- custom dialog logo function call fix
- main logo function call fix
- update winutiltaskbaritem to use new images
* fix sizing
- warning & checkmark sizing fix
- remove unneded comments
* fixes
- remove unneeded redundancy of "$canvas = New-Object Windows.Controls.Canvas"
- adjust empty lines
- use LimeGreen instead of Green
* fix layouting
* fixes
- use correct ctt blue color #0567ff
- remove unneeded comments
- rename Logoview to assets
* performance improvement
instead of rendering the image another time on each item switch, it caches it at the start and uses the render afterwards
* redo gray part of winutil logo
* correct gray shade
* fix coloring
* ise ico if available
---------
Co-authored-by: Chris Titus <contact@christitus.com>
* Update documentation for 'Invoke-Preprocessing' Script Tool
* Improve Compile Script a bit Deduplicating a lot of un-needed pre-fixes - Improve implementation for 'Invoke-Preprocessing' Script Tool
* Fix RegEx in 'Invoke-Preprocessing' Script Tool
* Result of Preprocessing
* Update Replace Regex for Code Formatting in 'Invoke-Preprocessing' Script Tool
* Result of Preprocessing
* Update Exclude Files List for Preprocessing in 'Compile.ps1' Script
* Remove Extra Whitespace in some place for 'Invoke-Preprocessing.ps1' Script Tool
* Simplified and Improved the Exclude List Validation Step in 'Invoke-Preprocessing.ps1' Script Tool
* Restore 'workingdir' variable when using '-Run' Parameter with 'Compile.ps1' Script
* Revert "Update Exclude Files List for Preprocessing in 'Compile.ps1' Script"
This reverts commit 674ab0308b.
* Result of Preprocessing
* fixes
- change fontsize back to 12
- add correct handling of windows
- removed double click handling of winutil
* readd double click
* fixes
- argument passing on elevation & to windev script
- remove shell output of log
* improve compile -run
- added $args param for args that get passed to winutil
- improved starting new Shell logic
* fix: compile's run logic
- removed old logic
- fixed command to run in new shell
- replaced $args with $arg
* fix: logs & border
- move log start to after admin elevation
- fix color of border on fixed tweaks button.
* fix: MicrowinInjectDrivers's Margin
- use theme value instead of custom value
* change microwin checkbox margin
- set cutom microwin checkbox margin due to cut off content
* fix layouting of nav bar
- replace strange collumndefinition to fix bugs, make sense and look better
* rename $arg to $Arguments
* change maxresolution from 1380 to 1280
* Improve 'Invoke-WPFPresets.ps1' Public Function as well as Simple Optimizations
* Simple Optimization by providing more info to 'Invoke-WPFPresets.ps1' function calls inside 'Invoke-WPFButton.ps1'
* Fix some logic issue in 'Invoke-WPFPresets.ps1' Public Function
* Rename Button Names to more clear and Make them follow CamelCase Naming
* Re-order some logic in 'main.ps1' script
* Use 'Write-Host' instead of 'Write-Warning' in 'main.ps1' script to make sure the output is seen in different environments
This'll make sure that the output is displayed in PowerShell 5 developing environments, and when outputing Warnings/Errors in Runspaces.
* enhance toggle logics
- cleanup Invoke-WPFToggle.ps1
- add attributes member to tweaks
- add "eprestart" for restart explorer to attributes.
- removed restart explorer logics from existing toggles.
- add restart explorer logics to Invoke-WPFToggle.ps1 depending on attribute content
* undo attributes
* admin titus version
* add proper method to launch correct script
* fix
* add .exe
* last fix
* remove ! that was for testing
---------
Co-authored-by: Chris Titus <contact@christitus.com>
* Move Disable Teredo to Advanced and Add prefer-ipv4 tweak
* Push DevDocs Update
* Fix DevDocs annoyance where the path is changed
* Fix DevDocs annoyance where the path is changed
* Remove leftover comment & update another comment in 'Get-TabXaml' Private Function
* Add new 'CloseIconFontSize' Theme Option
This's done to fix the Visual Issue of the Close Button being smaller than the Settings Button.
* Rename 'CheckBoxBulletDecoratorFontSize' to 'CheckBoxBulletDecoratorSize'
* Experiment with DPI Aware Units
* Remove extra whitespace characters in 'theme.json'
* Implement Default Theming - Add Error Checking & Quitting Early upon XML Related Failures - Simple Code Formatting here & there
* Replace Tabs with Spaces to follow the conventions
* Fix some logic issue in 'Set-WinUtilUITheme.ps1' Private Function - Rename 'Set-WinUtilUiTheme.ps1' -> 'Set-WinUtilUITheme.ps1'
* Change output info from 'Write-Warning' to 'Write-Host' to make sure it's displayed even in RunSpaces as well as PowerShell 5 Environments
* Revert back to default Unit of Measuring for WPF (1/96 in)
* Revert "Remove leftover comment & update another comment in 'Get-TabXaml' Private Function"
This reverts commit 368e5980df.
* Update 'themes.json' so the general changes will work with PR #2629
* Support the fallback to default theme (if it exists)
* Update 'Set-WinUtilUITheme' Documentation
---------
Co-authored-by: MyDrift <personal@mdiana.ch>
Change to line 654 from {SearchBarTextBoxFontSize} to 12. This now now allows the text to display correctly in the text box.
Change to line 666 from 16 to 180 for the margin. This now allows text to be visible when searching, also positions the magnify glass to the right side of the text box.
Change to line 678 from 193 to 205, which now places the clear button (X) on the outside of the text box for clearing the text in the textbox.
* Update 'github-pages.yaml' Workflow - Fix several warnings & enable Caching pip packages
* Fix 'github-pages.yaml' Syntax Error
* Make Install Dependencies step actually use the 'requirements.txt' File in 'github-pages.yaml' Workflow
* Update 'actions/setup-python' from v4 to v5 - Remove the Ignore Rule for Dependabot in '.github/dependabot.yml' File
* Gracefully nuke Edge and all its associates completely.
- me: same person from the stream chat today: Techie Jack (aka: Psyirius)
- cleaner script
- removes EdgeWebView
- most programs install it, if it's needed and not found
- removes EdgeUpdate (the updater)
* removed local copy of the RegionPolicy
- and Preprocessing refactor
* Omit Webview from Uninstall
---------
Co-authored-by: Chris Titus <contact@christitus.com>
* Compile Winutil
* pre-Releases (#1)
* Create pre-release.yaml
* Update release.yaml
* Update pre-release.yaml
* Create release-drafter.yml
* Update release-drafter.yml
* Update pre-release.yaml
* Update pre-release.yaml
* Update pre-release.yaml
* Update pre-release.yaml
* Update pre-release.yaml
* Update pre-release.yaml
* Update pre-release.yaml
* Update pre-release.yaml
* Update pre-release.yaml
* Update release-drafter.yml
* Update pre-release.yaml
* Update release-drafter.yml
* Update pre-release.yaml
* Update release-drafter.yml
* Update release-drafter.yml
* Update pre-release.yaml
* Update pre-release.yaml
* Update release-drafter.yml
* Update release-drafter.yml
* Update release.yaml
* Update release-drafter.yml
* Update release-drafter.yml
* Update pre-release.yaml
* Compile Winutil
* fixed end task with right click
* Compile Winutil
* code generator & compile integration
* Compile Winutil
* finish
- add autogenerated table of content page named "Dev Docs", with table of content to all .md files
- added invokescript & undoscript
- generate documentation files
* oops, remove dublicates
* undo winutil.ps1
* remove prefixes
WPF
WinUtil
Toggle
$category
Features
Tweaks
Panel
Fixes
* fixes
- fix inconsistency in Featurenaming
- add "Enable" & "Disable" as prefix to remove
* fix spellin mistake
* remove unneccesary whitespaces
update info
remove unnecessary whitespaces by only adding stuff to the md if it actually exists
* rewrite prefix removal into one line definition
* added taskscheduler support
* add support for function calling
add support for functioncalling
- replace code formatting for invoke & undo script from json to powershell
* content instead of displayname
* add last modified date
* contributing + docs generator
- moved contribute.md to root CONTRIBUTING.md
- referenced CONTRIBUTING.md in contribute.md
- added toggle & button reference to functions
- added function references in functions
- changed mkdocs site styling
* Use HashSet for processedFunctions
Use HashSet for processedFunctions:
- Ensures dynamic addition of functions without duplication.
Recursive Function Scanning:
- Includes all nested functions called by InvokeScript, UndoScript, ToggleScript, and ButtonScript.
* follow github standards
- add code of conduct
- reference code of conduct in docs
- regrouped docs navigation
- add comment about the sourced md file
* small fixes
* change color from teal to blue in light mode
* add links to tweaks
* add archiving feature to autodocs
* administrative
- add script to releases and remove from compile
- move link from after description to after category
* small fixes
- add S in feature.json
- fix dating
- move link to after category
* fix links
* undo link bc of bugs
* add progress bar to script
- add progress like in compile
- moved archive folder creation to the beginning of the script
* Simple improvements to 'auto-devdocs' branch (#3)
* Fix links for tweaks & features
* Make New Line characters work for Json Snippet
* Change NewLine Character from Unix Style (LF) to Windows/DOS Style (CRLF)
* rerun script
* und workflows & rearrange navigation items
* layer out itemname cutout
* rework links & temp removal of archivation
* fix adding link in json root
not adding link member to root in json files
* fix json generation
replace '\r\n',"`r`n" with ('\n',"`n")
* add features to auto md docs
* add minify plugin
* regex hotfix
* refractor
* add changelog to about section
add link to changelog in docs for about section
* undo changelog
* Cleanup 'devdocs-generator.ps1' - Implement Zig Multiline String Feature (#4)
* Cleanup 'devdocs-generator.ps1' - Implement Zig Multiline String Feature
* Fix NewLine character replace in 'devdocs-generator.ps1'
* run script
* run script
* Fix 'itemnametocut' RegEx in 'devdocs-generator.ps1' (#5)
* rerun script
* rework nav + remove code of conduct
* undo workflow changes
* run script
* remove changelog
---------
Co-authored-by: MyDrift-user <MyDrift-user@users.noreply.github.com>
Co-authored-by: Mr.k <mineshtine28546271@gmail.com>
* Replace Tabs with Spaces to follow the conventions
* Add Preprocessing in Compiler
* Compile from Anywhere you want - Running 'Compile.ps1' Works in any directory you call it from
* Code Formatting Changes
* Result of Preprocessing Step in 'Compile.ps1' Script - Remove Trailing Whitespace Characters
* Make Preprocessing more advanced
* Move Preprocessing to a separate script file
* Make Self Modification impossible for 'tools/Do-PreProcessing.ps1' Script - Make the workingdir same as sync.PSScriptRoot for consistency
* Revert commit b5dffd671f
* Patched a Bug of some Excluded Files not actually get excluded in 'Get-ChildItem' PS Cmdlet
* Update Replace Regex for Code Formatting in 'Do-PreProcessing' Script Tool
* Rename 'Do-PreProcessing' to 'Invoke-Preprocessing' - Update some Comments
* Make 'Invoke-Preprocessing' Modular - Update RegEx to handle more cases - Update Documentation - Add Validations & Useful feedback upon error
* Replace Tabs with Spaces to follow the conventions - 'applications.json' File
* Code Formatting Changes - 'Copy-Files' Private Function
* Update Replace Regex for Code Formatting in 'Invoke-Preprocessing' Script Tool
* Replace Tabs with Spaces to follow the conventions - Make 'ExcludedFiles' validation step check all filepaths before finally checking if any has failed
* Result of 'Invoke-Preprocessing' Script
* Update Replace Regex for Code Formatting in 'Invoke-Preprocessing' Script Tool
* fix shortcut creation
- using vars that actually exist instead of imaginary ones.
- remove empty row at the start of the file
* cleanup
remove unneccessary empty row
This is a pre-release and should be treated as such. It exists for developers to test the utility and report or fix bugs before they get added to the stable release. Don't use it in production!
* To test to see if your changes work as intended run following commands in a powershell teminal as admin:
* To test to see if your changes work as intended run following commands in a powershell terminal as admin:
* Change the directory where you are running the commands to the forked project.
* `cd {path to the folder with the compile.ps1}`
* Run the following command to compile and run WinUtil:
* `.\Compile.ps1 -run`
* 

* After seeing that your changes work properly, feel free to commit the changes to the repository and make a PR. For help on that, follow the documentation below.
### Committing the changes
* Before committing your changes, please discard changes made to the `winutil.ps1` file, like the following:
- 

* Now, commit your changes once you are happy with the result.

* Push the changes to upload them to your fork on github.com.

### Making a PR
* To make a PR on your repo under a new branch linking to the main branch, a button will show and say Preview and Create pull request. Click that button and fill in all the information that is provided on the template. Once all the information is filled in correctly, check your PR to make sure there is not a WinUtil.ps1 file attached to the PR. Once everything is good, make the PR and wait for Chris (the maintainer) to accept or deny your PR. Once it is accepted by Chris, you will be able to see your changes in the "/windev" build.
* If you do not see your feature in the main "/win" build, that is fine. All new changes go into the /windev build to make sure everything is working OK before going fully public.
* Congratulations! You just submitted your first PR. Thank you so much for contributing to WinUtil.
* Congratulations! You just submitted your first PR. Thank you so much for contributing to WinUtil.
description:"Report a bug to help us identify and fix issues in the project."
labels:["bug"]
body:
- type:markdown
attributes:
value:|
# 🐞 **Issue Report**
Thank you for taking the time to report an issue! Please provide as much detail as possible to help us address the problem efficiently.
## ⚠️ **IMPORTANT**
- 🛠️ **Supported environments only:** We only support Windows 11. Custom ISOs that are not made using Microwin are not supported.
- 💡 For general questions, use the [Discussions section](https://github.com/Christitustech/winutil/discussions) or join our Community-driven [Discord Server](https://discord.gg/RUbZUZyByQ).
- type:checkboxes
attributes:
label:⚙️ Issue Checklist
options:
- label:I have read the guidelines.
- label:I checked for duplicate issues.
- label:I searched for existing discussions.
- label:I checked for an existing pull request that addresses this issue.
validations:
required:true
- type:input
id:affected_part
attributes:
label:📜 What part of Winutil are you having issues with?
placeholder:"e.g., Microwin, Tweaks, etc."
validations:
required:true
- type:textarea
id:issue_description
attributes:
label:📝 Provide a clear and concise description of the issue.
validations:
required:true
- type:textarea
id:steps_to_reproduce
attributes:
label:🔄 Steps to reproduce the issue.
placeholder:"e.g., Step 1: ..., Step 2: ..."
validations:
required:true
- type:textarea
id:error_output
attributes:
label:❌ Paste the full error output (if available).
placeholder:"Include any relevant logs or error messages."
- type:textarea
id:additional_context
attributes:
label:🖼️ Additional context.
placeholder:"Include screenshots, code blocks (use triple backticks ```), or any other relevant information."
description:"Suggest a new feature or improvement for the project."
labels:["enhancement"]
body:
- type:markdown
attributes:
value:|
# ✨ **Feature request**
Thank you for taking the time to suggest a feature! Please provide as much detail as possible to help us understand and evaluate your request.
## ⚠️ **IMPORTANT**
- 🛠️ **Supported environments only:** We only support Windows 11.
- 💡 For general questions, use the [Discussions section](https://github.com/Christitustech/winutil/discussions) or join our Community-driven [Discord Server](https://discord.gg/RUbZUZyByQ).
- type:checkboxes
attributes:
label:⚙️ Issue Checklist
options:
- label:I have read the guidelines.
- label:I checked for duplicate issues.
- label:I searched for existing discussions.
- label:I checked for an existing pull request that addresses this request.
validations:
required:true
- type:textarea
id:problem_statement
attributes:
label:❓ Is your feature request related to a problem?
placeholder:"Provide a clear and concise description of the issue you're facing. Example: 'I'm always frustrated when [...]'"
validations:
required:false
- type:textarea
id:proposed_solution
attributes:
label:💡 Describe the solution you'd like
placeholder:"Provide a clear and concise description of what you want to happen."
validations:
required:true
- type:textarea
id:alternatives
attributes:
label:🔄 Describe alternatives you've considered
placeholder:"Provide details on any alternative solutions or features you've thought about."
validations:
required:false
- type:textarea
id:additional_context
attributes:
label:🖼️ Additional context
placeholder:"Include screenshots, code blocks (use triple backticks ```), or any other relevant information."
[Provide a succinct and descriptive title for the pull request.]
<!--Before you make this PR have you followed the docs here? - https://winutil.christitus.com/contributing/ -->
## Type of Change
- [ ] New feature
- [ ] Bug fix
- [ ] Documentation update
- [ ] Refactoring
- [ ] Hotfix
- [ ] Security patch
- [ ] UI/UX improvement
<!-- This automatically adds labels to your PR based on the selections above. -->
## 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.]
## 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.]
<!--[Provide a detailed explanation of the changes you have made. Include the reasons behind these changes and any relevant context. Link any related issues.]-->
## 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 #
## Additional Information
[Any additional information that reviewers should be aware of.]
## Checklist
- [ ] 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 made corresponding changes to the documentation.
- [ ] My changes generate no errors/warnings/merge conflicts.
- [ ] I have made corresponding changes to the documentation.
If you find a security issue please make post it in the issues tab. If you think it should be private you can email me at contact@christitus.com.
For immediate response check out our discord server @ [](https://discord.gg/RUbZUZyByQ)
echo "WinUtil change log received from GitHub Releases, it's autogenerated using GitHub Actions." >> $changelog_path
echo "" >> $changelog_path
echo "> [!WARNING]" >> $changelog_path
echo "> This file **SHOULD NOT** be edited directly, any PRs that tries changing it directly will either be requested on not changing it, or it'll get rejected." >> $changelog_path
$jsonAsObject.$firstLevelName.content=$jsonAsObject.$firstLevelName.content.replace('''',"'")# resolves the Double Apostrophe caused by the first replace function in the main loop
$jsonAsObject.$firstLevelName.description=$jsonAsObject.$firstLevelName.description.replace('''',"'")# resolves the Double Apostrophe caused by the first replace function in the main loop
This utility is a compilation of Windows tasks I perform on each Windows system I use. It is meant to streamline *installs*, debloat with *tweaks*, troubleshoot with *config*, and fix Windows *updates*. I am extremely picky about any contributions to keep this project clean and efficient.
If you have Issues, refer to [Known Issues](https://christitustech.github.io/winutil/KnownIssues/)
If you have Issues, refer to [Known Issues](https://winutil.christitus.com/knownissues/) or [Create Issue](https://github.com/ChrisTitusTech/winutil/issues)
## 🎓 Documentation
### [WinUtil Official Documentation](https://christitustech.github.io/winutil/)
### [WinUtil Official Documentation](https://winutil.christitus.com/)
> Winutil is a relatively large script, so it's split into multiple files which're combined into a single `.ps1` file using a custom compiler. This makes maintaining the project a lot easier.
Get a copy of the source code, this can be done using GitHub UI (`Code -> Download ZIP`), or by cloning (downloading) the repo using git.
If git is installed, run the following commands under a PowerShell window to clone and move into project's directory:
To build the project, run the Compile Script under a PowerShell window (admin permissions IS NOT required):
```ps1
.\Compile.ps1
```
You'll see a new file named `winutil.ps1`, which's created by `Compile.ps1` script, now you can run it as admin and a new window will popup, enjoy your own compiled version of WinUtil :)
> [!TIP]
> For more info on using WinUtil and how to develop for it, please consider reading [the Contribution Guidelines](https://winutil.christitus.com/contributing/), if you don't know where to start, or have questions, you can ask over on our [Discord Community Server](https://discord.gg/RUbZUZyByQ) and active project members will answer when they can.
## 💖 Support
- To morally and mentally support the project, make sure to leave a ⭐️!
- EXE Wrapper for $10 @ https://www.cttstore.com/windows-toolbox
@@ -52,7 +76,7 @@ If you have Issues, refer to [Known Issues](https://christitustech.github.io/win
These are the sponsors that help keep this project alive with monthly contributions.
"Description":"Windows Sandbox is a lightweight virtual machine that provides a temporary desktop environment to safely run applications and programs in isolation.",
"category":"Features",
"panel":"1",
"Order":"a021_",
"Description":"Windows Sandbox is a lightweight virtual machine that provides a temporary desktop environment to safely run applications and programs in isolation."
- 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.
- If possible: Allow script in Anti-Virus software settings.
- If you are having TLS 1.2 issues, or are having trouble resolving `christitus.com/win` then run with the following command:
- If you are unable to resolve `christitus.com/win` and are getting errors launching the tool, it might be due to India blocking GitHub's content domain and preventing downloads.
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 |
|:------------:|:------------:|:-------------:|
| Cloudflare | `1.1.1.1` | `1.0.0.1` |
| Google | `8.8.8.8` | `8.8.4.4` |
- Script doesn't run/PowerShell crashes:
1. Press Windows Key+X and select 'PowerShell (Admin)' (Windows 10) or 'Windows Terminal (Admin)' (Windows 11)
2. Run:
```ps1
Set-ExecutionPolicy Unrestricted -Scope Process -Force
```
3. Run:
```ps1
irm christitus.com/win | iex
```
### Other Issues:
- Windows taking longer to shut down:
- [#69](https://github.com/ChrisTitusTech/winutil/issues/69) Turn on fast startup: Press Windows key + R, then type:
```
control /name Microsoft.PowerOptions /page pageGlobalSettings
```
- If that doesn't work, Disable Hibernation: Press Windows Key+X and select 'PowerShell (Admin)' (Windows 10) or 'Windows Terminal (Admin)' (Windows 11) and enter:
```ps1
powercfg /H off
```
- [#69](https://github.com/ChrisTitusTech/winutil/issues/69) [95](https://github.com/ChrisTitusTech/winutil/issues/95) [#232](https://github.com/ChrisTitusTech/winutil/issues/232) Windows Search does not work: Enable Background Apps
- [#198](https://github.com/ChrisTitusTech/winutil/issues/198) Xbox Game Bar Activation Broken: Set the Xbox Accessory Management Service to Automatic
- Visit your laptop manufacturer's website or use Windows Update to check for driver updates.
- Ensure graphics, chipset, and other essential drivers are up to date.
5. **Check for Windows Updates:**
- Go to "Settings" > "Update & Security" > "Windows Update."
- Check for and install any available updates for your operating system.
6. **Reduce Screen Brightness:**
- Adjust screen brightness based on your preferences and lighting conditions.
- Go to "Settings" > "System" > "Display" to adjust brightness.
7. **Battery Saver Mode:**
- Go to "Settings" > "System" > "Battery."
- Turn on "Battery saver" to limit background activity and conserve power.
8. **Check Power Usage in Settings:**
- Go to "Settings" > "System" > "Battery" > "Battery usage by app."
- Review the list of apps and their power usage.
9. **Check Background Apps:**
- Go to "Settings" > "Privacy" > "Background apps."
- Disable unnecessary apps running in the background.
10. **Use Powercfg for Analysis:**
- Open a Command Prompt as an administrator.
- Run the following command to analyze energy usage and generate a report:
```powershell
powercfg /energy /output "C:\energy_report.html"
```
- Open the generated HTML report to identify energy consumption patterns.
11. **Review Event Viewer:**
- Open Event Viewer by searching for it in the Start menu.
- Navigate to "Windows Logs" > "System."
- Look for events with the source "Power-Troubleshooter" to identify power-related events.
12. **Check Wake-up Sources:**
- Open a Command Prompt as an administrator.
- Use the command `powercfg /requests` to identify processes preventing sleep.
- Check Task Scheduler for tasks waking up the computer.
- Use the command `powercfg /waketimers` to view active wake timers.
13. **Resource Monitor:**
- Open Resource Monitor from the Start menu.
- Navigate to the "CPU" tab and identify processes with high CPU usage.
14. **Windows Settings - Activity History:**
- In "Settings," go to "Privacy" > "Activity history."
- Turn off "Let Windows collect my activities from this PC."
15. **Network Adapters:**
- Open Device Manager by searching for it in the Start menu.
- 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.
16. **Review Installed Applications:**
- 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.
- Uninstall unnecessary or problematic software.
* By following these detailed instructions, you should be able to thoroughly diagnose and address battery drain issues on your Windows laptop. Adjust settings as needed to optimize power management and improve battery life.
### Troubleshoot errors during Microwin usage
#### 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:
1. **Reboot Your Computer:**
Sometimes, a simple reboot can resolve temporary issues. Restart your computer and try mounting the ISO again.
2. **Check for System Corruption:**
Run the System File Checker (SFC) utility to scan and repair system files that may be corrupted.
```powershell
sfc /scannow
```
3. **Update Your System:**
Make sure your operating system is up-to-date. Check for Windows updates and install any pending updates.
4. **Check WMI Service:**
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."
5. **Check for Security Software Interference:**
Security software can sometimes interfere with WMI operations. Temporarily disable your antivirus or security software and check if the issue persists.
6. **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.
- Press `Win + X` and select "Event Viewer."
- Navigate to "Windows Logs" -> "Application" or "System."
- Look for entries with the source related to WMI or the application use to mount the ISO.
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.
* 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.
WinUtil change log received from GitHub Releases, it's autogenerated using GitHub Actions.
> [!WARNING]
> This file **SHOULD NOT** be edited directly, any PRs that tries changing it directly will either be requested on not changing it, or it'll get rejected.
# Release 24.07.17

## What's Changed
* Pump up the value of 'operations-per-run' Field for 'Close Old Issues' Workflow by @og-mrk in https://github.com/ChrisTitusTech/winutil/pull/2219
* Improvements/Fixes for the Release Actions by @Marterich in https://github.com/ChrisTitusTech/winutil/pull/2221
* Move Launch Issues from ReadMe to Known Issues by @MyDrift-user in https://github.com/ChrisTitusTech/winutil/pull/2222
* [01] Refactoring UI code by @og-mrk in https://github.com/ChrisTitusTech/winutil/pull/2274
* Delete Un-used 'helperscript.ps1' File by @og-mrk in https://github.com/ChrisTitusTech/winutil/pull/2223
* Known Issues: Removed redundancy caused by resolving the merge conflict. by @MyDrift-user in https://github.com/ChrisTitusTech/winutil/pull/2224
* Redirect dev to latest Full Release if can't find prerelease by @MyDrift-user in https://github.com/ChrisTitusTech/winutil/pull/2225
* Add 'CONTRIBUTING.md' File by @og-mrk in https://github.com/ChrisTitusTech/winutil/pull/2227
* Update main.ps1 by @eltociear in https://github.com/ChrisTitusTech/winutil/pull/2229
* Added get installed check for classic right click menu tweak by @btstromberg in https://github.com/ChrisTitusTech/winutil/pull/2231
* fix syntax highlighting in .MDs by @MyDrift-user in https://github.com/ChrisTitusTech/winutil/pull/2235
* Add "Shotcut" in applications by @ksb2311 in https://github.com/ChrisTitusTech/winutil/pull/2238
* Fix Icon Support for Shortcut Creation by @og-mrk in https://github.com/ChrisTitusTech/winutil/pull/2242
* Allow for tasks to be distinguished by @CodingWonders in https://github.com/ChrisTitusTech/winutil/pull/2251
* Fix & Rename Nilesoft Shell by @MyDrift-user in https://github.com/ChrisTitusTech/winutil/pull/2261
* Fix: Ultimate Performance Plan by @MyDrift-user in https://github.com/ChrisTitusTech/winutil/pull/2267
* Change Main loop from 'ForEach' to 'For' inside 'Install-WinUtilProgramWinget' Private Function by @og-mrk in https://github.com/ChrisTitusTech/winutil/pull/2271
* Fix 'Close Old Issues' Workflow by @og-mrk in https://github.com/ChrisTitusTech/winutil/pull/2272
* Add new 'Disable Powershell 7 Telemetry' Tweak by @og-mrk in https://github.com/ChrisTitusTech/winutil/pull/2273
* Fix Typo in 'Invoke-WinUtilTaskbarSearch' Private Function by @og-mrk in https://github.com/ChrisTitusTech/winutil/pull/2275
* Update applications.json by @dhruvmistry2000 in https://github.com/ChrisTitusTech/winutil/pull/2290
* Add app: Modern Flyouts by @MyDrift-user in https://github.com/ChrisTitusTech/winutil/pull/2293
* Adds PR template by @Real-MullaC in https://github.com/ChrisTitusTech/winutil/pull/2299
* Add download counter by @Marterich in https://github.com/ChrisTitusTech/winutil/pull/2300
* Change Kicad category by @Joanty24 in https://github.com/ChrisTitusTech/winutil/pull/2302
* Fix: PR Template file extension by @MyDrift-user in https://github.com/ChrisTitusTech/winutil/pull/2304
* Rework JDK packages with Corretto LTS ones by @meenbeese in https://github.com/ChrisTitusTech/winutil/pull/2305
* Added IPv6 DNS by @Joanty24 in https://github.com/ChrisTitusTech/winutil/pull/2303
* Create createchangelog.yml for docs page by @Real-MullaC in https://github.com/ChrisTitusTech/winutil/pull/2346
* Adds all files for winutil docs by @Real-MullaC in https://github.com/ChrisTitusTech/winutil/pull/2342
* Adds Community Discord to ReadMe file by @Real-MullaC in https://github.com/ChrisTitusTech/winutil/pull/2343
* Discussions close on PR merge by @Real-MullaC in https://github.com/ChrisTitusTech/winutil/pull/2336
* Documentation & ReadMe Cleanup by @MyDrift-user in https://github.com/ChrisTitusTech/winutil/pull/2310
* Added MicroWin documentation by @CodingWonders in https://github.com/ChrisTitusTech/winutil/pull/2349
* Update Install-WinUtilProgramChoco.ps1 by @Real-MullaC in https://github.com/ChrisTitusTech/winutil/pull/2307
* Addition of Fork by @Real-MullaC in https://github.com/ChrisTitusTech/winutil/pull/2313
* Hidden File Tweaks by @Real-MullaC in https://github.com/ChrisTitusTech/winutil/pull/2320
* Optimized: Shortcut Creation and PS7 Tweak by @Marterich in https://github.com/ChrisTitusTech/winutil/pull/2314
* Addition of multiple applications by @Real-MullaC in https://github.com/ChrisTitusTech/winutil/pull/2316
* Add Application: ZoomIt by @MyDrift-user in https://github.com/ChrisTitusTech/winutil/pull/2319
* Fix Compile Errors on PowerShell 5 by @Marterich in https://github.com/ChrisTitusTech/winutil/pull/2322
* Add application: Lenovo Legion Toolkit by @Klusio19 in https://github.com/ChrisTitusTech/winutil/pull/2324
* Remove Edge leftovers from WOW6432Node by @CodingWonders in https://github.com/ChrisTitusTech/winutil/pull/2328
* Fix: End Task with right click by @MyDrift-user in https://github.com/ChrisTitusTech/winutil/pull/2331
* Adds Palemoon and closes old issues if not needed by @Real-MullaC in https://github.com/ChrisTitusTech/winutil/pull/2332
* Change the titles for each section from Bold Text to Header 2 in Bug Report Issue Template by @og-mrk in https://github.com/ChrisTitusTech/winutil/pull/2339
* Optimize badges by @Marterich in https://github.com/ChrisTitusTech/winutil/pull/2356
* Add New Windows 11 Specific Toggle - The 'Taskbar Alignment' Toggle by @og-mrk in https://github.com/ChrisTitusTech/winutil/pull/2347
* Make the 'Youtube Tutorial' Header be the link instead of the Youtube Thumbnail for it, Making the 'README.md' even shorter by @og-mrk in https://github.com/ChrisTitusTech/winutil/pull/2359
* Fix WinUtil Crashing on Startup - Xaml Error from Generated Applications List by @og-mrk in https://github.com/ChrisTitusTech/winutil/pull/2361
* [Wiki] Automatically enabling Dark/Light mode set by user's browser Preference by @Angxddeep in https://github.com/ChrisTitusTech/winutil/pull/2366
* Fixes an issue with create changelog not working by @Real-MullaC in https://github.com/ChrisTitusTech/winutil/pull/2375
* Updates PR template so disscussion and issue is on the same line. by @Real-MullaC in https://github.com/ChrisTitusTech/winutil/pull/2363
* Update close-discussion.yml so it detects based on new previous PR by @Real-MullaC in https://github.com/ChrisTitusTech/winutil/pull/2364
* Repo Cleanup by @MyDrift-user in https://github.com/ChrisTitusTech/winutil/pull/2367
* Add /close command for the active contributors to close issues by @Marterich in https://github.com/ChrisTitusTech/winutil/pull/2380
* Update workflows to remove `::set-output` by @wojsmol in https://github.com/ChrisTitusTech/winutil/pull/2384
* Fixes release log by @Real-MullaC in https://github.com/ChrisTitusTech/winutil/pull/2377
* Bump actions/checkout from 2 to 4 by @dependabot in https://github.com/ChrisTitusTech/winutil/pull/2389
* Bump actions/cache from 2 to 4 by @dependabot in https://github.com/ChrisTitusTech/winutil/pull/2390
## New Contributors
*@btstromberg made their first contribution in https://github.com/ChrisTitusTech/winutil/pull/2231
*@ksb2311 made their first contribution in https://github.com/ChrisTitusTech/winutil/pull/2238
*@dhruvmistry2000 made their first contribution in https://github.com/ChrisTitusTech/winutil/pull/2290
*@Klusio19 made their first contribution in https://github.com/ChrisTitusTech/winutil/pull/2324
*@Angxddeep made their first contribution in https://github.com/ChrisTitusTech/winutil/pull/2366
*@wojsmol made their first contribution in https://github.com/ChrisTitusTech/winutil/pull/2384
*@dependabot made their first contribution in https://github.com/ChrisTitusTech/winutil/pull/2389
From now on any pull request on the main branch generates a release like this, which ensures you can rewind in time to ANY version of winutil. Also this makes it easy to launch winutil from github.com instead of using raw GitHub which is blocked in some countries. Big shoutout to KonTy for the auto release idea!
## What's Changed
* Fix Numlock toggle by @ChrisTitusTech in https://github.com/ChrisTitusTech/winutil/pull/2044
* fix typo by @nikolan123 in https://github.com/ChrisTitusTech/winutil/pull/2041
* Simplify 'Close Old Issues' Workflow by using 'actions/stale' GitHub Action by @og-mrk in https://github.com/ChrisTitusTech/winutil/pull/2055
* Compile Cleanup and Tweak Fixes by @ChrisTitusTech in https://github.com/ChrisTitusTech/winutil/pull/2062
* Fix the URL of an Example in 'README.md' File by @og-mrk in https://github.com/ChrisTitusTech/winutil/pull/2063
## New Contributors
*@nikolan123 made their first contribution in https://github.com/ChrisTitusTech/winutil/pull/2041
This was a massive 100+ commit PR and the last of it's size. Going forward I will be making multiple branches to separate the pr's into. This will help seperate application PRs, GUI PRs, Tweaks, and others into their own branches based on features.
# WinUtil 2024.04.20 Bug Fixes and Issue Fixes
- Toggle Widgets fix @og-mrk
- Fix Special Characters causing errors in JSON files @og-mrk
- Restart explorer on classic right click tweak @og-mrk
- Fix Disable Storage Sense @og-mrk
- Robocopy fix when username has space in during OneDrive uninstall @og-mrk
- Multiple Winget Fixes made by @ruxunderscore
- Fix DISM Conversion for ESD files @CodingWonders
- Independent Edge Removal Update by @DaEpicR
- Disable SCOOBE @ICTdE
- O&O Tweaks update by @Marterich
- Bugfix for Window Restore Creation by @ChrisTitusTech
- Fix Winget Installs for Default -> User Scope -> Unelevated if one fails it trys the next method. @ChrisTitusTech
* Test the latest changes to Winutil by running the pre-release and reporting issues you are encountering to help us continually improve Winutil!
#### **Run the latest pre-release**
```
irm https://christitus.com/windev | iex
```
> [!WARNING]
> This is a pre-release and should be treated as such. It exists for developers to test the utility and report or fix bugs before they get added to the stable release. Don't use it in production!
## Issues
* If you encounter any challenges or problems with the script, I kindly request that you submit them via the "Issues" tab on the GitHub repository. By filling out the provided template, you can provide specific details about the issue, allowing me (and others in the community) to promptly address any bugs or consider feature requests.
## Contribute Code
* Pull requests are now handled directly on the **MAIN branch**. This was done since we can now select specific releases to launch via releases in GitHub.
* If you're doing code changes, then you can submit a PR to `main` branch, but I am very selective about these.
> [!IMPORTANT]
> Do not use a code formatter, make massive amounts of line changes, or make multiple feature changes. EACH FEATURE CHANGE SHOULD BE IT'S OWN PULL REQUEST!
* When creating pull requests, it is essential to thoroughly document all changes made. This includes, but is not limited to, documenting any additions made to the `tweaks` section and corresponding `undo tweak`, so users are able to remove the newly added tweaks if necessary, and comprehensive documentation is required for all code changes. Document your changes and briefly explain why you made your changes in your Pull Request Description. Failure to adhere to this format may result in the denial of the pull request. Additionally, any code lacking sufficient documentation may also be denied.
* By following these guidelines, we can maintain a high standard of quality and ensure that the codebase remains organized and well-documented.
> [!NOTE]
> When creating a function, please include "WPF" or "Winutil" in the file name so it can be loaded into the runspace.
## Walk through
* This is a guide for beginners. If you are still having issues, look at the following official GitHub documentation:
* [Commit through WEB](https://docs.github.com/en/pull-requests/committing-changes-to-your-project/creating-and-editing-commits/about-commits)
* [Commit through GitHub Desktop](https://docs.github.com/en/desktop/making-changes-in-a-branch/committing-and-reviewing-changes-to-your-project-in-github-desktop#about-commits)
* [Create a Pull Request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request)
> While you can make your changes directly through the Web, we recommend cloning the repo to your device using the application GitHub Desktop (available in Winutil) to test your fork easily.
* Install GitHub Desktop if it is not already installed.
* Log in using the same GitHub account you used to fork Winutil.
* Choose the fork under "Your Repositories" and press "clone {repo name}"
* Create a new branch and name it something relatable to your changes.
* Now you can modify Winutil to your liking using your preferred text editor.
### Testing your changes
* To test to see if your changes work as intended run following commands in a powershell teminal as admin:
* Change the directory where you are running the commands to the forked project.
* `cd {path to the folder with the compile.ps1}`
* Run the following command to compile and run Winutil:
* `.\Compile.ps1 -run`
{{< image src="images/Compile" alt="Compile" >}}
* After seeing that your changes work properly, feel free to commit the changes to the repository and make a PR. For help on that, follow the documentation below.
### Committing the changes
* Before committing your changes, please discard changes made to the `Winutil.ps1` file, like the following:
* To make a PR on your repo under a new branch linking to the main branch, a button will show and say Preview and Create pull request. Click that button and fill in all the information that is provided on the template. Once all the information is filled in correctly, check your PR to make sure there is not a Winutil.ps1 file attached to the PR. Once everything is good, make the PR and wait for Chris (the maintainer) to accept or deny your PR. Once it is accepted by Chris, you will be able to see your changes in the "/windev" build.
* If you do not see your feature in the main "/win" build, that is fine. All new changes go into the /windev build to make sure everything is working OK before going fully public.
* Congratulations! You just submitted your first PR. Thank you so much for contributing to Winutil.
If you are seeing errors referencing TLS or security, you may be running an older version of Windows where TLS 1.2 is not the default security protocol used for network connections. The following commands will force .NET to use TLS 1.2, and download the script directly using .NET instead of PowerShell:
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:
| Provider | Primary DNS | Secondary DNS |
|:------------:|:------------:|:-------------:|
| Cloudflare | `1.1.1.1` | `1.0.0.1` |
| Google | `8.8.8.8` | `8.8.4.4` |
### 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.
2. In the PowerShell window, type this to allow unsigned code to execute and run the installation script:
```
Set-ExecutionPolicy Unrestricted -Scope Process -Force
irm https://christitus.com/win | iex
```
## Runtime Issues
### 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.
### 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:
1. **Reboot Your Computer:**
Sometimes, a simple reboot can resolve temporary issues. Restart your computer and try mounting the ISO again.
3. **Check for System Corruption:**
Run the System File Checker (SFC) utility to scan and repair system files that may be corrupted.
```powershell
sfc /scannow
```
4. **Update Your System:**
Make sure your operating system is up-to-date. Check for Windows updates and install any pending updates.
5. **Check WMI Service:**
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".
6. **Check for Security Software Interference:**
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.
7. **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.
- Press `Win`+`X` and select *Event Viewer*.
- 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:**
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.
## Windows Issues
### Windows takes longer to shut down
This could be for a number of reasons:
- Turn on fast startup: Press `Windows key`+`R`, then type:
```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:
```bat
powercfg /H off
```
Related issue: [#69](https://github.com/ChrisTitusTech/Winutil/issues/69)
### 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)
### Xbox Game Bar Activation Broken
Set the Xbox Accessory Management Service to Automatic:
Related issue: [#198](https://github.com/ChrisTitusTech/Winutil/issues/198)
### Windows 11: Quick Settings no longer works
Launch the Script and click *Enable Action Center*.
### Explorer (file browser) no longer launches
- Press `Windows key`+`R` then type:
```bat
control /name Microsoft.FolderOptions
```
- Change the *Open File Explorer to* option to *This PC*.
### 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.
1. **Check Battery Health:**
- 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:
- 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:**
- Open the Settings app, and go to *System* > *Power & sleep*.
- Adjust power plan settings based on your preferences and usage patterns.
- Click on *Additional power settings* to access advanced power settings that may help.
3. **Identify Power-Hungry Apps:**
- Right-click on the taskbar and select *Task Manager*.
- 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.
4. **Update Drivers:**
- 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.
5. **Check for Windows Updates:**
- Open the Settings app, and go to *Update & Security* > *Windows Update*.
- Check for and install any available updates for your operating system.
6. **Reduce Screen Brightness:**
- Open the Settings app, and go to *System* > *Display*.
- Adjust screen brightness based on your preferences and lighting conditions.
7. **Enable Battery Saver:**
- Open the Settings app, and go to *System* > *Battery*.
- Turn on *Battery saver* to limit background activity and conserve power.
8. **Check Power Usage in Settings:**
- 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.
9. **Check Background Apps:**
- Open the Settings app, and go to *Privacy* > *Background apps*.
- Disable or uninstall unnecessary apps running in the background.
10. **Use `powercfg` for Analysis:**
- 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:
```powershell
powercfg /energy /output "C:\energy_report.html"
```
- Open the generated HTML report to identify energy consumption patterns.
11. **Review Event Logs:**
- Open Event Viewer by searching for it in the Start menu.
- 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.
12. **Check Wake-up Sources:**
- 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 /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.
13.**Advanced Identification of Power-Hungry Apps:**
- Open Resource Monitor from the Start menu.
- 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.
14.**Disable Activity History:**
- Open the Settings app, and go to *Privacy* > *Activity history*.
- Turn off *Let Windows collect my activities from this PC*.
15.**Prevent Network Adapters From Waking PC:**
- Open Device Manager by searching for it in the Start menu.
- 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.
16.**Review Installed Applications:**
- 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.
- Uninstall unnecessary or problematic software.
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.
- 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.
- Bad chargers, inconsistent power input, and high temperatures will cause batteries to degrade and discharge faster. Use trusted high-quality chargers, ensure input power is steady, clean any fans or airflow ports, and keep the battery/PC cool.
Welcome to the official documentation for Winutil, your go-to utility for optimizing and managing your Windows environment. Whether you’re an IT professional, power user, or regular user, Winutil provides a comprehensive set of tools to enhance your Windows experience.
## Running the latest release of Winutil
* You will first need to start a Powershell terminal **as Admin**.
* Now you can run the following command:
```
irm "https://christitus.com/win" | iex
```
> [!NOTE]
> Winutil is updated frequently as of the time of writing. Consequently, features and functionalities may evolve, and the documentation may not always reflect the most current images or information.
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.
"Description":"Windows Sandbox is a lightweight virtual machine that provides a temporary desktop environment to safely run applications and programs in isolation.",
"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":"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.",
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.