Summary
This release introduces a major refactor of the configuration schema, a new WPF-based configuration viewer, a significant cleanup of the PowerShell module, and removal of legacy scripts. It also updates all documentation to reflect the new structure and bumps several CI/dependency versions.
What's changed
Configuration schema overhaul
- Added
$schemareferences and a_Configuration.Template.jsontemplate to all configs - Updated all configurations to include all properties for consistency
- Renamed and consolidated all JSON configuration files to a consistent
Machine.*/User.*naming convention (e.g.User-Windows11.All.json→User.Windows11.json) - Introduced
protectedflag fields and normalisedTargets/registrysections across all configs - Changed configuration named:
- Added new configs:
Machine.RDS.json,Machine.TeamsCopilot.json,User.Windows2022RDS.json,User.Windows2025Server.json - Removed obsolete configs:
Build.All.json,Machine.Server.json,Services.Client.json
- Added new configs:
- Normalised all JSON
Typekeys to lowercasetype - Update build numbers to 4 part version numbers [#72]
PowerShell module refactor (Install-Defaults.psm1, Install-Defaults.ps1)
- Enabled
Set-StrictMode -Version Latestthroughout for better code management to ensure the script execution is more robust - Refactored config loading to remove
Get-SettingsContent; config is now validated before applying - Improved
Add-Typereuse and registry cleanup logic - Refactored all
try/catchblocks for consistency - Added null checks for config properties before applying
- Always copy package files to the Windows feature update path [#73]
- Only writes log file when running as Administrator
AppX / package updates - Remove-AppxApps.ps1
- Added
WindowsWorkload.Managerto the safe package list (#80) - Moved Teams/Outlook entries and added Office shell entries (#81)
New WPF configuration viewer (Start-DefaultsViewer.ps1)
- New WPF-based GUI to browse and inspect configuration files interactively
Breaking changes
- Configuration file names have changed — any references to old filenames (
User-Windows11.All.json,Machine.Server.json, etc.) must be updated or custom changes ported to the new files - The solution no longer relies on the configuration file name to determine applicability. Target OS and platform is defined within each configuration file directly
Files
This release includes several file assets:
defaults.zip- a downloadable copy of the solution that can be used anywheredefaults.intunewin- a copy of the solution in Intune Win32 format for deployment to manage devicesWin32App.json- a definition file for the Win32 package and can be used with theIntuneWin32AppPowerShell module to import into an Intune tenant