Skip to content

Release 2.3.0 - no double-hop, rich report, history, -Action#41

Merged
luigilink merged 8 commits into
mainfrom
release/2.3.0
Jun 29, 2026
Merged

Release 2.3.0 - no double-hop, rich report, history, -Action#41
luigilink merged 8 commits into
mainfrom
release/2.3.0

Conversation

@luigilink

Copy link
Copy Markdown
Owner

This release fixes the following issues:

Added

  • Export-SPSWeatherReport (sticky banner, side nav, sticky thead, live filter, alert highlight).
  • Backup-SPSWeatherJsonFile + Compare-SPSWeatherSnapshots; Results\history\; trend in email + rich report.
  • Config setting JsonHistoryRetentionDays (default 30, 0 disables).

Changed (BREAKING)

  • -Install/-Uninstall-Action [Install|Uninstall|Default] (no back-compat alias).
  • Per-server SYS checks open one direct CredSSP session per server (no more 0x80090322 double-hop).
  • IIS App Pool 'Unreachable' rows now flagged red instead of an empty cell.

Pester 180/0 (1 skip Win-only), PSScriptAnalyzer 0.

SYS checks now loop the farm servers and open a direct single-hop CredSSP
session per server (Invoke-SPSCommand to each), instead of fanning out
Invoke-Command/Get-CimInstance from the entry session. This collects WFE1
(previously 0x80090322 double-hop) and is the base for multi-farm parallelism.
Falls back to -Server when -Servers is empty; unreachable nodes stay one WARN.

Fixes #37
Single -Action [Install|Uninstall|Default] entry parameter (default Default),
mirroring SPSUpdate/SPSWakeUp. No back-compat aliases. Adds AST tests.

Fixes #40
…rReport)

ConvertTo-SPSWeatherReport now returns Ok/Alert counters; Join-HtmlBodyFromPSo
takes an optional -Summary and renders an Outlook-safe banner at the top of
the email body. New Export-SPSWeatherReport produces a dependency-free
standalone HTML (sticky top banner, side nav, sticky table headers, live
filter, alert row highlight) written next to the email body as *-rich.html.
IIS app-pool 'Unreachable' rows are flagged red instead of an empty cell.

Fixes #38
Backup-SPSWeatherJsonFile archives the previous JSON snapshot to
Results/history/<file>-yyyyMMdd-HHmm.json with optional retention pruning.
Compare-SPSWeatherSnapshots computes Ok/Alert deltas between the current run
and the latest history file. The entry script wires both in: previous JSON is
archived before overwrite, the trend is computed and rendered in the email
banner (Alert N -> M) and as a trend KPI in the standalone rich report. New
config setting JsonHistoryRetentionDays (default 30 days, 0 disables).

Fixes #39
@github-actions

github-actions Bot commented Jun 29, 2026

Copy link
Copy Markdown

Pester Test Results

  1 files   15 suites   2s ⏱️
 59 tests  59 ✅ 0 💤 0 ❌
181 runs  181 ✅ 0 💤 0 ❌

Results for commit 427a8df.

♻️ This comment has been updated with latest results.

When [System.Net.Dns]::GetHostByName('WFE1').HostName returns a short name
(no dot), CredSSP/Kerberos targets 'HOST/wfe1' which does not exist (only the
FQDN SPN is registered), yielding 0x80090322. Append the DNS suffix derived
from the farm entry server when the resolved name has no dot, so each session
targets the FQDN that matches the Kerberos SPN.
…ine pollution

Export-SPSWeatherReport now filters PSComputerName/RunspaceId/PSShowComputerName
out of the rich-report column list. Get-SPSAPIHttpStatus stops emitting the
Write-Output info line and Invoke-WebRequest response into the pipeline (suffix
[void]), which was leaking 6 empty rows into the SharePoint Trust Farm Status
table of the email body and into the rich report's section.
When DNS returns a short name, build the FQDN from $spServer + suffix
(instead of the lowercase DNS result) so the verbose/logs show WFE1.zebes.chozo
consistently with APP1.zebes.chozo and SCH1.zebes.chozo coming from Get-SPServer.
@luigilink luigilink merged commit bed63ea into main Jun 29, 2026
3 checks passed
@luigilink luigilink deleted the release/2.3.0 branch June 29, 2026 10:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant