psadt-deploy-skill 0.26.1 → 0.26.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +42 -0
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -369,6 +369,48 @@ pre-flight fails on non-ASCII without a BOM), and anything that lands in a packa
369
369
  Recent releases below; the complete history is in **[CHANGELOG.md](CHANGELOG.md)** (nothing is ever removed
370
370
  from either).
371
371
 
372
+ ### 0.26.5 - 08.09.2026
373
+ - **L.8, new: MSIX/AppX**, verified against Microsoft Learn and against the live cmdlets. MSIX is a two-step
374
+ model — machine-wide **staging**, then **per-user registration at logon** — and three traps follow from it:
375
+ **`Add-AppxPackage` as SYSTEM registers the app for the SYSTEM account and reports success** (nobody can launch
376
+ it), **`Get-AppxPackage` is the wrong detection cmdlet** (finds nothing right after provisioning, so Intune
377
+ reinstalls forever), and **de-provisioning does not remove the app from existing users** — a complete uninstall
378
+ needs `Remove-AppxProvisionedPackage` *and* `Remove-AppxPackage -AllUsers`. Plus signing: the certificate
379
+ Subject must equal the manifest Publisher (so a vendor MSIX cannot just be re-signed), self-signed certs belong
380
+ in `LocalMachine\TrustedPeople`, and missing timestamping is what makes an expired certificate break installs.
381
+ And the decision that comes first: **usually don't wrap MSIX in PSADT** — Intune takes it natively.
382
+ - **L.9, new: App-V is not end of life.** The client and sequencer are **no longer deprecated** (fixed extended
383
+ support, no end date, no extra cost); only the **server components** end in **April 2026**. Also: `-Global` is
384
+ the device-context switch, and a package in use goes *pending* — a global task applies only after a restart.
385
+ - **The MSIX row in L.2 was misleading and is rewritten**; L.2 gains an App-V row.
386
+ ### 0.26.4 - 08.09.2026
387
+ - **L.7, new: Inno Setup and NSIS**, verified against vendor documentation. `/VERYSILENT` **reboots the
388
+ machine by itself** when a restart is needed — so `/NORESTART` is mandatory, and `/RESTARTEXITCODE=3010`
389
+ turns the fact into the code Intune already understands. And `Uninstall.exe /S` in NSIS **returns before
390
+ the uninstall has finished** (it copies itself to temp and detaches), so any verification afterwards races
391
+ it — `_?=<installdir>` makes it synchronous, must be last, must not be quoted.
392
+ - **Advanced Installer wired into L.1 and L.2**, not just the new L.6 — with a measured fingerprint
393
+ (`AI_*` custom actions, `aicustact.dll`, `OLDPRODUCTS;AI_NEWERPRODUCTFOUND`).
394
+ ### 0.26.3 - 08.09.2026
395
+ - **Appendix L gains three sections**, researched against vendor documentation instead of written from
396
+ memory: **MSP patches** (the full `/p` matrix, why `/i` and `/p` never combine, and that exit 1642 means
397
+ *either* "not installed" *or* "wrong patch revision" — so it must not be treated as a blanket success),
398
+ **WiX Burn bundles** (BundleProviderKey rather than a ProductCode for detection; `/layout` is a Burn
399
+ action but the bootstrapper decides whether it can be narrowed — the ADK refuses, so an offline layout is
400
+ always the whole kit), and **Advanced Installer projects** (the `.aip` CLI, a fresh ProductCode per build
401
+ changing the package identity every time, and the undocumented behaviour that relative paths resolve
402
+ against the .aip's own location — moving a project between drives breaks it silently).
403
+ ### 0.26.2 - 08.09.2026
404
+ - **Fixed: a WHQL driver pack turned the pre-flight red.** `Get-DriverSignatureInfo.ps1` did not strip the
405
+ inline comment that WHQL packs write after `CatalogFile=` (`; for WHQL certified`), so the catalog never
406
+ resolved and validly signed drivers classified as `Unsigned` — 6 of 70 INF in a Dell WinPE set, all of
407
+ whose catalogs were Authenticode-valid and Microsoft-signed. An unquoted `;` now ends the value.
408
+ - **Fixed: `New-MsiPackage.ps1` was the sixth script with the `-File` binder trap.** `-ProcessesToClose
409
+ 'a','b'` arrived as one element, so the scaffold closed no processes at all — silently, while reporting
410
+ success. 0.25.1 had fixed the other five and missed the generator.
411
+ - **Documented: seven findings from a three-package dependency chain** (Appendix G) and four new
412
+ anti-patterns (Appendix B), including `msiexec /a` against bundled payload, the `-Include` trap, 8.3
413
+ short names in path comparisons, and what a service's `%TEMP%` really is on Windows 11.
372
414
  ### 0.26.1 - 06.09.2026
373
415
  - **Fixed: a syntax error in the template silently killed the whole dossier script.** A `
374
416
  ` inside a JS
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "psadt-deploy-skill",
3
- "version": "0.26.1",
3
+ "version": "0.26.5",
4
4
  "description": "Installer for the psadt-deploy Claude Code skill: build, test and deploy PSADT v4.x Intune Win32 packages.",
5
5
  "keywords": [
6
6
  "psadt",