* Add friendly explanations for common DISM exit codes
Invoke-WinUtilISODism threw only a raw exit code on DISM failure
(e.g. "DISM add-driver failed with exit code 112"), leaving users to
look up what the number means themselves.
Adds a $knownExitCode lookup table mapping common Windows/DISM exit
codes (disk full, access denied, file/path not found, file in use,
timeout, etc.) to plain-English explanations. When a failure's exit
code is recognized, the thrown message now includes the explanation
in parentheses; unrecognized codes fall back to the original
plain-number message.
Verified the script still parses correctly after the change.
* Add missing period to fallback DISM error message
* Add tests for DISM known/unknown exit code error messages
Adds a test verifying a known exit code (112) produces the friendly
explanation in the thrown message, alongside the existing test
verifying an unrecognized code still falls back to the plain
numeric message.
Verified: all 35 tests in win11creator.Tests.ps1 pass.
* Document DISM friendly error messages in Win11 Creator troubleshooting
Adds a Troubleshooting table row explaining the new DISM error
message format (exit code + explanation in parentheses), with
guidance for the most common cases and a link to Microsoft's full
error code reference for anything not explained.
* Fix duplicate DISM calls in unmapped exit code test
The unmapped-code test called Invoke-WinUtilISOScript twice — once
via Should -Throw, once to capture the message for the no-parens
check — causing $script:dismCalls to double-count. Consolidated to
a single call, checking both the exit code and the absence of a
parenthesized explanation against one captured exception message.
Verified: all 36 tests in win11creator.Tests.ps1 pass.
* Fix broken DISM error code reference link in docs
Replaced the dead windows-hardware/manufacture link with Microsoft's
actual System Error Codes reference page, which DISM exit codes
correspond to.
* Strengthen DISM fallback regression coverage
---------
Co-authored-by: Chris Titus <contact@christitus.com>