From 76bd2f3d6c489c28b508b248382fcd116660c8b0 Mon Sep 17 00:00:00 2001 From: LuigiLink Date: Fri, 28 Aug 2026 18:43:39 +0200 Subject: [PATCH 1/3] refactor: drop the deprecated PSSnapin path, load the SharePointServer module only The CredSSP remoting base script used the deprecated Microsoft.SharePoint.PowerShell PSSnapin (Add-PSSnapin), which only exists on SharePoint Server 2013/2016/2019. Since 2016 and 2019 reached end of support on 14 July 2026, load the Subscription Edition SharePointServer module instead (idempotent), the only supported code path. Refs #13 --- src/Modules/SPSTrust.Common/Private/Invoke-SPSCommand.ps1 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/Modules/SPSTrust.Common/Private/Invoke-SPSCommand.ps1 b/src/Modules/SPSTrust.Common/Private/Invoke-SPSCommand.ps1 index ccbafb7..b3d5b3f 100644 --- a/src/Modules/SPSTrust.Common/Private/Invoke-SPSCommand.ps1 +++ b/src/Modules/SPSTrust.Common/Private/Invoke-SPSCommand.ps1 @@ -15,11 +15,11 @@ function Invoke-SPSCommand { $Server # Target server where the commands will be executed ) $VerbosePreference = 'Continue' - # Base script to ensure the SharePoint snap-in is loaded + # Base script to ensure the SharePoint Server module is loaded on the remote host $baseScript = @" - if (`$null -eq (Get-PSSnapin -Name Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue)) + if (`$null -eq (Get-Module -Name SharePointServer)) { - Add-PSSnapin Microsoft.SharePoint.PowerShell + Import-Module -Name SharePointServer -Verbose:`$false -WarningAction SilentlyContinue -DisableNameChecking } "@ From 8df65e0e26fe5d88d32da0dc0f977ec283e1e230 Mon Sep 17 00:00:00 2001 From: LuigiLink Date: Fri, 28 Aug 2026 18:43:54 +0200 Subject: [PATCH 2/3] docs: update documentation for Subscription Edition only State compatibility with SharePoint Server Subscription Edition and add a note directing SharePoint Server 2016/2019 users to the previous major release (v2.1.0), since both reached end of support on 14 July 2026. Refs #13 --- README.md | 7 +++++-- wiki/Home.md | 5 ++++- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 70f458f..e95e084 100644 --- a/README.md +++ b/README.md @@ -13,8 +13,11 @@ Topology and published service-application permissions, and connecting service a proxies across farms. It follows the Microsoft guidance [Share service applications across farms in SharePoint Server](https://learn.microsoft.com/en-us/sharepoint/administration/share-service-applications-across-farms) -and is compatible with all supported on-premises versions (SharePoint Server 2016 to -Subscription Edition). +and is compatible with **SharePoint Server Subscription Edition**. + +> [!NOTE] +> SharePoint Server 2016 and 2019 reached end of support on 14 July 2026. For those +> versions, use the previous major release ([v2.1.0](https://github.com/luigilink/SPSTrust/releases/tag/v2.1.0)). [Download the latest release here!](https://github.com/luigilink/SPSTrust/releases/latest) diff --git a/wiki/Home.md b/wiki/Home.md index 23a1545..6fd6787 100644 --- a/wiki/Home.md +++ b/wiki/Home.md @@ -2,7 +2,10 @@ SPSTrust is a PowerShell script tool to configure trust relationships between SharePoint Server farms — exchanging STS/ROOT certificates, publishing service applications, granting Topology and published service-application permissions, and connecting service application proxies across farms. -It follows the Microsoft guidance [Share service applications across farms in SharePoint Server](https://learn.microsoft.com/en-us/sharepoint/administration/share-service-applications-across-farms) and is compatible with all supported on-premises versions (SharePoint Server 2016 to Subscription Edition). +It follows the Microsoft guidance [Share service applications across farms in SharePoint Server](https://learn.microsoft.com/en-us/sharepoint/administration/share-service-applications-across-farms) and is compatible with **SharePoint Server Subscription Edition**. + +> [!NOTE] +> SharePoint Server 2016 and 2019 reached end of support on 14 July 2026. For those versions, use the previous major release (v2.1.0). ## Key Features From 06d195bb2ac47b2d82be6554bc234aec536dadb9 Mon Sep 17 00:00:00 2001 From: LuigiLink Date: Fri, 28 Aug 2026 18:44:34 +0200 Subject: [PATCH 3/3] chore: bump to 3.0.0 (breaking: SE-only) - Manifest ModuleVersion 2.1.0 -> 3.0.0. - Bump the version-guard test to 3.0.0. - CHANGELOG: add the 3.0.0 section (Removed/Changed/Migration). - RELEASE-NOTES: replace with the 3.0.0 block (GitHub Release body). Refs #13 --- CHANGELOG.md | 21 +++++++++ RELEASE-NOTES.md | 44 +++++++++---------- .../SPSTrust.Common/SPSTrust.Common.psd1 | 2 +- tests/Modules/SPSTrust.Common.Tests.ps1 | 4 +- 4 files changed, 44 insertions(+), 27 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a284577..81241d9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,27 @@ The format is based on and uses the types of changes according to [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [3.0.0] - 2026-08-28 + +### Removed + +- **BREAKING**: dropped support for SharePoint Server 2016 and 2019 (both reached end of + support on 14 July 2026). The deprecated `Microsoft.SharePoint.PowerShell` PSSnapin path + (`Add-PSSnapin`) has been removed from the CredSSP remoting base script. + +### Changed + +- **BREAKING**: the remoting base script now loads the Subscription Edition + `SharePointServer` module (`Import-Module SharePointServer`, idempotent) as the only + supported code path. +- Documentation (README, wiki) updated to state compatibility with SharePoint Server + Subscription Edition only. + +### Migration + +- Users still running SharePoint Server 2016 or 2019 must stay on the previous major + release (**v2.1.0**), which retains the PSSnapin code path. + ## [2.1.0] - 2026-07-10 ### Added diff --git a/RELEASE-NOTES.md b/RELEASE-NOTES.md index 0bacaf0..efd36d2 100644 --- a/RELEASE-NOTES.md +++ b/RELEASE-NOTES.md @@ -1,33 +1,29 @@ # SPSTrust - Release Notes -## [2.1.0] - 2026-07-10 - -This release adds a read-only **trust matrix** report, produced both at the end of a -normal run and in a new dedicated audit mode. It is fully backward compatible with 2.0.0. - -### Added - -- **`-ReportOnly`** — read-only audit mode: skips all configuration stages and only - collects the current trust state and writes the report (changes nothing). -- **Trust matrix report** — every run now writes a JSON snapshot - (`Results\-.json`) and a self-contained, offline HTML report - (`Reports\-.html`) showing, per publishing-farm / - consuming-farm / service, the state of each trust dimension (ROOT, STS, Published, - Topology permission, SA permission, Proxy) as Present / Absent / N/A / Error. -- New public functions in `SPSTrust.Common`: `Get-SPSTrustStatus` (read-only collector), - `Export-SPSTrustReport` (HTML renderer, also usable standalone via `-InputFile`) and - `Backup-SPSJsonFile`. -- **`-HistoryRetentionDays`** (default 30) — rotation of archived result snapshots in - `Results\history\`. -- Wiki: new **Reports & Audit** page. +## [3.0.0] - 2026-08-28 + +> [!IMPORTANT] +> This is a major release with a breaking change: support for SharePoint Server 2016 and +> 2019 has been removed. If you still run SharePoint Server 2016 or 2019, stay on the +> previous major release (v2.1.0). + +### Removed + +- **BREAKING**: dropped support for SharePoint Server 2016 and 2019 (both reached end of + support on 14 July 2026). The deprecated `Microsoft.SharePoint.PowerShell` PSSnapin path + (`Add-PSSnapin`) has been removed from the CredSSP remoting base script. ### Changed -- `.gitignore` excludes the runtime `Logs/`, `Results/` and `Reports/` folders. +- **BREAKING**: the remoting base script now loads the Subscription Edition + `SharePointServer` module (`Import-Module SharePointServer`, idempotent) as the only + supported code path. +- Documentation (README, wiki) updated to state compatibility with SharePoint Server + Subscription Edition only. -### Compatibility +### Migration -- No breaking changes. Existing `-ConfigFile` / `-FarmAccount` / `-CleanServices` usage is - unchanged; the reporting stage is additive and read-only. +- Users still running SharePoint Server 2016 or 2019 must stay on the previous major + release (**v2.1.0**), which retains the PSSnapin code path. A full list of changes in each version can be found in the [change log](CHANGELOG.md). diff --git a/src/Modules/SPSTrust.Common/SPSTrust.Common.psd1 b/src/Modules/SPSTrust.Common/SPSTrust.Common.psd1 index 57d7e05..4051beb 100644 --- a/src/Modules/SPSTrust.Common/SPSTrust.Common.psd1 +++ b/src/Modules/SPSTrust.Common/SPSTrust.Common.psd1 @@ -1,6 +1,6 @@ @{ RootModule = 'SPSTrust.Common.psm1' - ModuleVersion = '2.1.0' + ModuleVersion = '3.0.0' GUID = 'e1cce4f2-12de-4923-8e67-f37a081944aa' Author = 'Jean-Cyril DROUHIN' CompanyName = 'luigilink' diff --git a/tests/Modules/SPSTrust.Common.Tests.ps1 b/tests/Modules/SPSTrust.Common.Tests.ps1 index 99faa95..584b3ab 100644 --- a/tests/Modules/SPSTrust.Common.Tests.ps1 +++ b/tests/Modules/SPSTrust.Common.Tests.ps1 @@ -54,8 +54,8 @@ Describe 'SPSTrust.Common Module' { (Test-ModuleManifest -Path $script:moduleManifest).Version | Should -Not -BeNullOrEmpty } - It 'manifest ModuleVersion is 2.0.0 or higher' { - (Test-ModuleManifest -Path $script:moduleManifest).Version | Should -BeGreaterOrEqual ([version]'2.0.0') + It 'manifest ModuleVersion is 3.0.0 or higher' { + (Test-ModuleManifest -Path $script:moduleManifest).Version | Should -BeGreaterOrEqual ([version]'3.0.0') } It 'module loads successfully' {