* 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>
* [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>
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.
* 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
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
* 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
* Correct the Header Font Size naming and simplify the creation of the Selected Apps Button
* Adjust HeaderFontSize from 18 to 16 for improved readability
* 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>
* 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>