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.
- package/README.md +42 -0
- 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
|