SPSUpdate - Release Notes
[4.2.0] - 2026-06-30
This release adds a near real-time patching dashboard: while a cumulative update is rolled
out across the farm, SPSUpdate records the progress of every phase into a shared status
store and the master assembles a self-contained, auto-refreshing HTML dashboard.
Added
- Status store and dashboard functions:
Set-SPSUpdateStatus/Get-SPSUpdateStatus
(atomic per-scope JSON store, each writer owns its file),Get-SPSStatusCampaignPath
(resolves<root>\<App>-<Env>-<Farm>), andExport-SPSUpdateProgressReport(renders a
self-contained HTML dashboard with overall state, per-phase sections, colored state
badges, per-item exit codes and per-sequence percentage; meta-refresh while running). - New optional
StatusStorePathconfig key (UNC share) with a localResults\status
fallback. - New
-Action ResetStatusto clear a campaign before a fresh patching round. SPSUpdate.ps1is instrumented end-to-end: ProductUpdate per server (per-setup-file
items), the four mount/upgrade sequences (per-database items and a running percentage),
the Configuration Wizard per server (local and remote), and side-by-side. The master
regenerates the dashboard on every wait-loop iteration and writes a final completed
dashboard with auto-refresh off.- New
Test-SPSUpdateReadiness.ps1pre-flight check (module, config, DPAPI secret,
elevation, status store write access, per-server CredSSP reachability). The status store
check probes write access both as the current user and as the InstallAccount, since the
upgrade sequences run as the service account and only appear on the dashboard when it can
write to the share. - The dashboard collapses finished scopes (Done/Skipped) by default and keeps active ones
expanded (native<details>/<summary>, accessible, no JS); each collapsed line still
shows its badge, percentage and anN/M donecount. - Real process exit codes are surfaced: the ProductUpdate item's Exit column shows the
setup.exe code (0,17022= reboot required, ...), and the Configuration Wizard records
the psconfig.exe code in its detail (PSConfig completed (exit 0)).
How to use
- Set
StatusStorePathto a UNC share writable by the InstallAccount from every server
(grant it Modify on the SMB share and NTFS — the sequence tasks run as that account). - Run
Test-SPSUpdateReadiness.ps1to confirm the environment (both write probes green). SPSUpdate.ps1 -ConfigFile '<farm>.psd1' -Action ResetStatusto start a clean campaign.- Open
<StatusStorePath>\<App>-<Env>-<Farm>\_dashboard.htmlin a browser. - Run
-Action ProductUpdateon each server, then the default master run; watch the
dashboard update itself.
Changed
- Bumped the module manifest to
4.2.0and exported the new functions.
Notes
- Validated end-to-end on a real three-server Subscription Edition farm with an actual
cumulative update (binary install, parallel content-database upgrade, and the post-setup
Configuration Wizard, all reflected live on the dashboard).
A full list of changes in each version can be found in the change log