V5.3 - #17
Merged
Merged
Conversation
Fixed bugs in DeployWorkstation.ps1 related to package ID handling and reboot exit codes. Improved reliability of package ID resolution and added fallback mechanisms.
Added version information for v5.3 (Beta) to README.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
DeployWorkstation v5.3 — Package ID Auto-Resolution & Reboot-Aware Installs
This release is all about install reliability. Earlier versions could report false failures when winget package IDs drifted or when an installer just needed a reboot to finish. v5.3 fixes both, adds automatic recovery when a package ID has been renamed or retired, and rebuilds the exit-code handling against winget's official return codes.
Safe to run on bare-metal images, freshly cleaned PCs, and already-deployed machines.
✨ Highlights
winget searchby display name (adopted only when unambiguous), and logs candidate IDs when it can't decide for you. Results are cached per run (install + update share the cache), so this adds only a few seconds to a full deployment.RebootNeededflag, and surface a restart notice in the summary and at end of run — instead of being retried and logged as network failures.--exactmatching everywhere — All install/upgrade calls now use--exact(plus--disable-interactivity) so a substring ID can't quietly match the wrong package or fail as ambiguous.🐛 Bug Fixes
Microsoft.DotNet.Framework.4.8was never a valid winget ID, so every run failed that install with0x8A150014 NO_APPLICATIONS_FOUND. Corrected toMicrosoft.DotNet.Framework.Runtime(currently 4.8.1) withMicrosoft.DotNet.Framework.DeveloperPack_4as a fallback. On Win10 1903+ / Win11 the runtime ships in-box, so this typically resolves to a fast no-op.0x8A150109(restart to finish) and0x8A15010A(restart before install) were treated as transient network faults and retried twice before being logged as failures. Reboot-to-finish now counts as success; reboot-before-install fails with the correct reason.-1978335212labeled0x8A15002Cis actually0x8A150014;-1978334960labeled "blocked by policy" is actually a dependency failure). Exit-code tables were rebuilt against winget's officialreturnCodes.md, and unknown codes now log their hex form for easy lookup.0x8A150014fromwinget upgrade --idis now logged as SKIPPED and tracked separately.🔧 Other Reliability Improvements
--include-unknownon upgrades handles apps whose installed version winget can't read — common after Windows Update services the .NET runtimes out from under winget.winget source updatebefore retrying, since they're usually caused by a stale manifest.$script:ManagedAppsentries continue to work unchanged. To take advantage of auto-resolution, add an optionalFallbacks = @('Alternate.Id')list to any app entry (see the README for an example). TheNamefield doubles as thewinget searchterm of last resort, so keep it close to the app's actual display name in the winget catalog.🚀 Upgrading
Pull the latest and re-run — no config migration needed:
Full Changelog: v5.2...v5.3
Tested on Windows 10 (1909+) and Windows 11 — Pro & Home Editions.