psadt-deploy-skill 0.29.0 → 0.30.0
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 +41 -35
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -93,6 +93,10 @@ control plane.
|
|
|
93
93
|
|
|
94
94
|
- **Guided intake** — the blocker questions up front as clickable options, pre-filled with researched
|
|
95
95
|
defaults (app, latest version, installer type, package type).
|
|
96
|
+
- **Switch catalog before the web** — identifies the installer engine from the *binary* (byte signatures in
|
|
97
|
+
the PE overlay, resources and section table, not a filename guess) and serves that engine's documented
|
|
98
|
+
silent / uninstall / log / no-reboot switches from a catalog that ships with the skill. Offline, and it
|
|
99
|
+
reports every stage it checked including the misses. A candidate is still a claim until a run proves it.
|
|
96
100
|
- **Autonomous research** — checks the installed PSADT version against the latest release *and* whether
|
|
97
101
|
commands changed; researches silent install / uninstall / repair switches and known Intune pitfalls.
|
|
98
102
|
- **All three deployment types from the start** — Install, Uninstall *and* Repair, acid-tested, so
|
|
@@ -172,7 +176,7 @@ The app's **native installer is always the default**. Everything else is opt-in
|
|
|
172
176
|
- **Self-update** — `scripts/Update-PsadtSkill.ps1` compares against GitHub, shows what changed, and
|
|
173
177
|
updates in place on your confirmation (`git pull --ff-only` for a clone, otherwise a branch-zip overwrite
|
|
174
178
|
of tracked files only). Machine-local state is never touched. Say *"psadt update"*.
|
|
175
|
-
- **
|
|
179
|
+
- **503 Pester tests** over the helper scripts, including drift guards that fail when the docs and the code
|
|
176
180
|
disagree.
|
|
177
181
|
|
|
178
182
|
## Requirements
|
|
@@ -345,9 +349,10 @@ psadt-deploy/
|
|
|
345
349
|
│ ├─ README.md the reference map (label -> file)
|
|
346
350
|
│ ├─ phases-0-6.md · phases-7-12.md the twelve phases
|
|
347
351
|
│ ├─ appendix-a-errors.md … -q-drivers.md one file per appendix
|
|
352
|
+
│ ├─ switch-catalog/ engine defaults + JSON schema (App. L.0)
|
|
348
353
|
│ ├─ Report-Template.html the fixed dossier template
|
|
349
354
|
│ └─ app-registration.md THE Graph permission matrix + manual portal route
|
|
350
|
-
└─ tests/ Pester suite,
|
|
355
|
+
└─ tests/ Pester suite, 551 tests
|
|
351
356
|
```
|
|
352
357
|
|
|
353
358
|
Machine-local state lives outside the skill folder:
|
|
@@ -368,7 +373,7 @@ psadt-package.json identity · gate decisions · research
|
|
|
368
373
|
## Status
|
|
369
374
|
|
|
370
375
|
In active use for the full build → package → test → dossier workflow, with the direct Graph upload
|
|
371
|
-
verified against a live tenant. The helper scripts are covered by
|
|
376
|
+
verified against a live tenant. The helper scripts are covered by 503 Pester tests.
|
|
372
377
|
|
|
373
378
|
One open point, honestly: **the driver `pnputil` exit-code semantics are documented, not verified here.**
|
|
374
379
|
`0` / `259` / `3010` and the two `0xE...` failures come from Microsoft's documentation; confirming them
|
|
@@ -429,35 +434,36 @@ The two most recent releases are below. **[CHANGELOG.md](CHANGELOG.md)** carries
|
|
|
429
434
|
every release since 0.1.0, and nothing is ever removed from it - this section is a window onto it, not a
|
|
430
435
|
second copy to keep in sync.
|
|
431
436
|
|
|
432
|
-
### 0.
|
|
433
|
-
- **Fixed: the
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
- **
|
|
462
|
-
|
|
463
|
-
|
|
437
|
+
### 0.30.0 - 2026-09-14
|
|
438
|
+
- **Fixed: the sandbox could not test a heavy package - and it was never the package.** Smart App Control
|
|
439
|
+
is enabled in the Windows Sandbox base image while Defender is disabled, so `wintrust` asks the disabled
|
|
440
|
+
Defender to rate every signed file and waits ~2 minutes per package. A bootstrapper chaining a dozen MSIs
|
|
441
|
+
took 30+ minutes and looked like a hang, three times. Two lines in the guest remove it: the same run then
|
|
442
|
+
finished in **5.7 minutes with exit 0**. This also corrects the ADK lesson in Appendix G, which blamed
|
|
443
|
+
Defender scanning - Defender was switched off the whole time.
|
|
444
|
+
- **Fixed: nothing was visible inside the sandbox.** On this Sandbox build the `LogonCommand` process gets
|
|
445
|
+
no console window, so the 0.29.0 heartbeat went to a file nobody could see. There is now a top-most
|
|
446
|
+
progress window in the guest, the host mirrors it, and the runner measures whether a console exists at
|
|
447
|
+
all. Runs are cancellable with `STOP.txt` (guest shuts itself down in 5 s, no orphaned VM worker), a
|
|
448
|
+
failed VM start is no longer reported as "the VM was closed", and a timed-out action captures the guest's
|
|
449
|
+
process table and vendor logs before the VM is discarded.
|
|
450
|
+
- **Added: `Get-PsadtInstallerEngine.ps1`** - identifies the installer engine from the binary. A definitive
|
|
451
|
+
marker always beats a hint, so an install4j installer carrying NSIS branding no longer gets `/S`, which
|
|
452
|
+
hangs on its language dialog forever. Reports marker, byte offset and region; an unrecognised file
|
|
453
|
+
returns `unknown`, never a guess.
|
|
454
|
+
- **Added: `Get-PsadtSwitchCandidates.ps1` + `references/switch-catalog/`** - ranked switch candidates from
|
|
455
|
+
19 engine defaults, offline, before the first web query, with a reason for every miss. It is an ENGINE
|
|
456
|
+
catalog, not an application catalog, and **winget stays opt-in** including as a research source.
|
|
457
|
+
- **Faster:** staging 481 MB into the guest via `robocopy /MT` (3.6 s to 0.6 s), `-Scenarios` for partial
|
|
458
|
+
iteration runs, per-action timeout default 900 s to 600 s. Suite 503 -> 551.
|
|
459
|
+
### 0.29.1 - 2026-09-14
|
|
460
|
+
- **Fixed: Phase 5.5 mapped `Remove-MSIApplications` to `Remove-ADTApplication`**, which v4 does not
|
|
461
|
+
have - the v4 name is `Uninstall-ADTApplication`. The table's right column is now checked against the
|
|
462
|
+
installed toolkit's `FunctionsToExport`.
|
|
463
|
+
- **Fixed: Appendix A named 60012 as the v4 deferral code.** 4.1.x exits a deferral with
|
|
464
|
+
`UI.DeferExitCode`, default 1602. Deliberately NOT added to the mandatory Intune table - every install
|
|
465
|
+
command this skill writes runs `-DeployMode Silent`, where a deferral cannot happen.
|
|
466
|
+
- **Fixed: the Phase 4.3 MSI sample** put the `.mst` in `SupportFiles\` and passed an `-ArgumentList`
|
|
467
|
+
identical to the config defaults. The `.mst` belongs in `Files\` next to the MSI (`TRANSFORMSSECURE=1`);
|
|
468
|
+
extra properties go into `-AdditionalArgumentList`, because `-ArgumentList` REPLACES the defaults.
|
|
469
|
+
- **Fixed: README claimed 441 Pester tests** in three places. Suite 501 -> 503.
|