Image Customise Versions Save

Customise a Windows 10/11 or Windows Server image at deployment time, including the default user profile, AppX packages and OS features

v2309.04.164

8 months ago
  • Adds support for detecting XenServer / Citrix Hypervisor #23
  • Sets HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location\Value to Allow. See Can't set time zone automatically in Windows 10
  • Adds Install-enAU.ps1 - this script calls Install-Defaults.ps1 to set language to en-AU and the timezone to AUS Eastern Standard Time. Enables calling the solution in Intune etc. where passing a full command line can be problematic. Use the same approach for other time zones / locale settings

Files

This release includes several file assets:

  • image-customise.zip - a downloadable copy of the solution that can be used anywhere
  • image-customise.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

v2304.25.160

1 year ago
  • Updates -Language parameter to use System.Globalization.CultureInfo as input
  • Adds function Set-SystemLocale function to set region and locale settings using the International module and improve setting local language settings for Windows 11, Windows 10, and Windows Server
  • Adds -TimeZone parameter to Install-Defaults.ps1 which accepts a time zone name value and sets the local time zone. Adds function Set-TimeZoneUsingName to set a specified time zone
  • Updates returning a success or failure result as function exits by returning details about Warning events added to custom event log during execution
  • General code improvements and simplification
  • Update help details in Install-Defaults.ps1

Files

This release includes several file assets:

  • image-customise.zip - a downloadable copy of the solution that can be used anywhere
  • image-customise.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

v2301.19.147

1 year ago
  • Removes Intune Company Portal from the default Windows 10 Start menu. This was creating a blank pinned item on the Start menu under AVD etc.

v2301.19.141

1 year ago
  • Replace -Filter with -Include in Get-ChildItem to ensure files are enumerated correctly

v2212.13.135

1 year ago
  • Set Auto Time Zone Updater tzautoupdate service Start value to 3 and start service. This enables time zone detection - for Autopilot deployments, a reboot is still required after Autopilot completes
  • Changes the approach to re-running the solution during Windows feature updates. The entire solution will be copied into C:\Windows\System32\Update\Run\{GUID} to enable it to be run during feature updates. See: Run custom actions during feature update. This enables the Custom Defaults to be re-run during an in-place upgrade. Tested with Windows 10 21H2 -> Windows 1022H2 -> Windows 11 21H2 -> Windows 11 22H2

v2212.10.131

1 year ago
  • Add registry entries for automatic location and time zone detection
  • Changes the approach to re-running the solution during Windows feature updates. The entire solution will be copied into C:\Windows\System32\Update\Run\{GUID} to enable it to be run during feature updates. See: Run custom actions during feature update. This enables the Custom Defaults to be re-run during an in-place upgrade. Tested with Windows 10 21H2 -> Windows 1022H2 -> Windows 11 21H2 -> Windows 11 22H2

v2211.30.130

1 year ago
  • Changes the approach to re-running the solution during Windows feature updates. The entire solution will be copied into C:\Windows\System32\Update\Run\{GUID} to enable it to be run during feature updates. See: Run custom actions during feature update. This enables the Custom Defaults to be re-run during an in-place upgrade
  • Tested with Windows 10 21H2 -> Windows 1022H2 -> Windows 11 21H2 -> Windows 11 22H2

v2211.29.129

1 year ago
  • Updates Install-Defaults.ps1 to pass parameters correctly back to the the script when launched from 32-bit PowerShell (e.g. -Language). Using the script to install language pack support in Autopilot via Intune now works as intended
  • Return 1 if there's a failure in the script (it was previously passing 0 regardless of issues or not)
  • Remove unneeded try/catch and general code tidy/improvements

v2209.24.122

1 year ago
  • Updates the approach to implement SetupComplete.cmd for re-running Install-Defaults.ps1 during an in-place OS upgrade. See Add a Custom Script to Windows Setup
  • Updates code for better SupportsShouldProcess support - Install-Defaults.ps1 can now be run with -WhatIf to test/list changes
  • Implements Install-Defaults.psm1 to manage functions in an external file and enabling better testing with Pester
  • Update output verbose and error messages

v2209.22.116

1 year ago
  • Adds function Set-RegistryOwner to enable changing owner on specified registry keys
  • Enables change owner on registry key HKLM:Software\Microsoft\Windows\CurrentVersion\Communications
  • Sets value ConfigureChatAutoInstall in key HKLM:Software\Microsoft\Windows\CurrentVersion\Communications to prevent the install of the consumer version of Microsoft Teams on Windows 11 (in Machine-Windows11.All.json)
  • Adds support for Install-Language and Set-SystemPreferredUILanguage to install language packs and configure the default system language (requires minimum Windows 10 and 11 build). Use Install-Defaults.ps1 -Language "en-GB" to install language support for a specified language (Supports Skip to skip the install of language settings or the bcp47 tag of the language to install)
  • Adds a note property to registry entries to enable documentation of each key
  • Fixes missing "Type": "Direct" property for registry items in Machine.Client.json