Adds logic to normalize LTSC/LTSB release years (such as 2016, 2019, 2021, and 2024) to their corresponding base Windows client versions (10 or 11). This ensures correct model retrieval and driver downloading, as OEM catalogs typically evaluate against base Windows versions rather than LTSC-specific release years.
Improves the reliability of locating Windows ADK and WinPE add-on installations.
Updates registry searches to locate installer executables in the bundle cache path instead of relying on display names, avoiding potential mismatches.
Expands the registry queries to check both the WOW6432Node and standard uninstall paths to better support different installation contexts.
Validates the Windows Deployment Tools feature by verifying the existence of expected script files rather than checking the registry.
Adds missing descriptions for cleanup, file copying, and download priority parameters to ensure complete help documentation.
Expands the documented supported values for Windows architectures, releases, and SKUs to accurately reflect expanded capabilities for ARM64, Windows Server, and LTSC deployments.
Corrects minor typos, updates default values to match the current implementation, and reorders parameters alphabetically to improve readability.
Corrects internal markdown links by adding the proper directory path. Prevents broken navigation and ensures users are directed to the correct documentation pages.
Since Windows 10 is out of support and only allows ESU updates, LTSB/LTSC builds are impacted by this and are unable to be offline serviced.
This commit fixes that by installing the CU in the VM, staging the update in a LTSCUpdate folder in the Apps folder.
Always stores .NET MSUs under a dedicated NET folder to keep cache structure consistent across OS variants
Migrates expected legacy root-stored .NET MSUs into the NET folder and prunes stale files from both locations to prevent buildup and mismatches
Prevents update packages for different Windows targets from mixing in a single cache, improving reuse across builds while avoiding DISM picking up stale MSUs.
Keeps pruning, download destinations, and update discovery confined to the OS/version-specific cache, including shared-branch handling for Windows 11 25H2/24H2 and LTSC mappings.
Removes older update packages from the local update cache so servicing tools don’t pick up multiple stale MSUs as sources.
Keeps only the MSUs expected for the current run across Windows, .NET (including LTSC folder layout), and Microcode updates, while logging failures and continuing.
Improves first-time onboarding by pointing to the Quick Start Guide and the latest UI-based quickstart video.
Reorganizes video resources by moving legacy walkthroughs into an “Older” section and removes the outdated deep-dive chapter list.
Adds a brief note on UI maturity and upcoming consolidation toward the UI branch.
Improves navigation on narrow viewports by moving the TOC into the article and collapsing long lists with a show more/less toggle.
Prevents duplicate TOCs and reduces scroll “fighting” by disposing/reinitializing scrollspy on resize and keeping auto-scrolling behavior limited to the right-side desktop panel.
Keeps heading permalink icons visible by allowing horizontal overflow.
Prevents long code blocks and tables from overlapping the page TOC by enabling horizontal scrolling where needed.
Adds release notes highlighting improved Surface auto driver matching, more resilient USB driver injection with better logging, and correct Windows index selection for non-English media.
Notes build execution shift to separate PowerShell process for reliable console output, fixes USB selection for identical drive names, and announces new documentation site.
Prevents mobile scroll “fighting” by limiting scrollspy and the page TOC to desktop-sized viewports.
Removes any existing TOC markup and related layout class when below the desktop breakpoint to avoid interfering with touch scrolling.
Prevents long paths, links, and inline code from overflowing into the page TOC.
Stabilizes the two-column layout by defining grid areas, keeping breadcrumbs full-width, and forcing content to respect column width so wide elements don’t render under the TOC.
Improves TOC readability by adding a background and stacking context when content still overflows.
Preserves multiple selected drives that share the same model by storing an array of UniqueIds per model.
Updates drive discovery and UI restore logic to accept either a single UniqueId or a list, preventing missed selections and skipping duplicate additions.
Improves UI responsiveness and interactive behavior by running build/cleanup in a separate PowerShell process instead of background jobs.
Fixes cancellation reliability by terminating the full process tree (including child tools) and using process exit codes for success/failure reporting.
Reduces noisy output by suppressing type-add return values and standardizes cleanup argument passing to avoid switch/boolean binding issues.
Updates selection to match images by language-independent edition metadata instead of localized names, reducing failures across ISO/ESD sources and languages.
Adds server Desktop Experience vs Core handling via installation type and prefers the best match deterministically, falling back to a user prompt only when needed with better logging.
Enhances the driver installation process to be more resilient by allowing non-critical driver injection failures to not halt the entire deployment. Key improvements include:
- Adds `IgnoreExitCode` and `PassThruExitCode` parameters to the process invocation function, enabling callers to handle non-zero exit codes without throwing exceptions.
- Modifies driver injection logic (both WIM and folder-based) to capture exit codes and log warnings instead of failing the deployment when drivers fail to inject.
- Automatically collects and preserves diagnostic logs (dism.log and setupapi.offline.log) to the USB drive when driver installation encounters issues, aiding post-deployment troubleshooting.
- Wraps cleanup operations in try-catch blocks to ensure temporary resources are released even if unmounting or deletion fails.
- Fixes code formatting inconsistencies and indentation throughout the script for improved readability.
This approach prioritizes deployment completion while preserving critical diagnostic information when driver-related issues occur.
Treats driver index cache older than 7 days as stale to trigger re-downloads and avoid outdated metadata.
Improves resiliency by falling back to a refresh when the cache timestamp can’t be read, and adds clearer logging for cache age and refresh decisions.
Reduces unnecessary Download Center requests by preferring cached file details when available
Falls back to downloading/parsing the page only on cache miss, then backfills the cache for future runs
Adds error handling and logging around cache load/update to avoid download failures from cache issues
Adds best-effort Surface System SKU resolution and persists it into driver mappings to reduce model-name ambiguity during deployment.
Speeds up Microsoft model discovery by using a local cache and updates cached Download Center details during driver downloads to keep the UI responsive.
Prefers System SKU-based rule selection for Microsoft devices, falling back to legacy model-string matching when SKU data is unavailable.
Some apps (Camtasia) require dependency apps to be installed first. Winget will download said dependency apps. This commit will place those dependencies before the calling app in the WingetWin32Apps.json file.
Adds post-processing to reorder and re-prioritize winget app entries so install order stays consistent with the configured list, even when parallel downloads append results in completion order.
Serializes updates with a named mutex and writes changes atomically to avoid races and partial writes, with logging around failure cases.
Adds cross-process locking and atomic writes to avoid race conditions and partial writes when multiple runspaces update the app command metadata in parallel.
Improves resilience by backing up and rebuilding when existing JSON is malformed, ensuring the build continues safely.
Adds a SUBST-based DISM injection loop to avoid path-length failures when adding large driver sets.
Improves INI/INF parsing reliability with Unicode API settings, a larger auto-growing buffer, and normalization of GUID values.
Hardens driver copying by using long-path prefixes and literal paths, reducing copy errors on deeply nested driver folders.
Fixes buffer truncation in Get-PrivateProfileSection by dynamically
growing the buffer when large INF sections are encountered.
Enhances Copy-Drivers with comprehensive error handling, file existence
checks, and detailed logging for each operation. Adds support for
architecture-specific SourceDisksFiles sections (amd64/arm64) and
provides a summary of matched, skipped, and copied files.
Fixes key-value parsing to handle values containing equals signs.