github aaronparker/defaults v2606.06.247

pre-release4 hours ago

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 $schema references and a _Configuration.Template.json template 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.jsonUser.Windows11.json)
  • Introduced protected flag fields and normalised Targets / registry sections 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
  • Normalised all JSON Type keys to lowercase type
  • Update build numbers to 4 part version numbers [#72]

PowerShell module refactor (Install-Defaults.psm1, Install-Defaults.ps1)

  • Enabled Set-StrictMode -Version Latest throughout 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-Type reuse and registry cleanup logic
  • Refactored all try/catch blocks 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.Manager to 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
configviewer

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 anywhere
  • defaults.intunewin - a copy of the solution in Intune Win32 format for deployment to manage devices
  • Win32App.json - a definition file for the Win32 package and can be used with the IntuneWin32App PowerShell module to import into an Intune tenant

Don't miss a new defaults release

NewReleases is sending notifications on new releases.