Notes / SharePoint
SharePoint
Nineteen years of running, upgrading and migrating SharePoint, from on-premises farms to SharePoint Online. 5 guides to read in order, and 12 PowerShell scripts.
2005 to 2024
Every major release in between. The tips come from real farms and tenants, not lab notes.
- 2003SharePoint Portal Server 2003
- 2007MOSS 2007
- 2010SharePoint 2010
- 2013SharePoint 2013
- 2016SharePoint 2016
- 2019SharePoint 2019
- 2021Subscription Edition
- CloudSharePoint Online
Guides
Read in order if you're new; jump to troubleshooting if something is on fire.
- 01Getting startedWhich shell to use for what, installing the modules, and signing in to SharePoint Online.
- 02SharePoint Server (on-premises) tipsFarm administration from SharePoint 2010 to Subscription Edition: ULS, patching, recovery, performance.
- 03SharePoint Online tipsPnP.PowerShell and the SPO module in practice: paging, batching, sharing, recovery, storage.
- 04Migration tipsPlanning and running migrations from file shares, older farms and SharePoint Server to Online.
- 05TroubleshootingCommon error messages and what actually fixes them.
Scripts
Every script has built-in help (Get-Help .\Script.ps1 -Full). Reports are read-only; scripts that change data support -WhatIf.
SharePoint Server
Run on a farm server from the SharePoint Management Shell.
- Get-SPFarmInventory
Builds a CSV inventory of a SharePoint Server farm.
- Get-SPLargeLists
Finds lists and libraries that are approaching or over the list view threshold.
- Get-SPLogsByCorrelation
Collects ULS log entries for a correlation ID from the whole farm.
- Get-SPSiteStorageReport
Reports storage, quota use and staleness for every site collection.
- Test-SPUpgradeReadiness
Runs Test-SPContentDatabase and produces one readable report for upgrade planning.
SharePoint Online
Run from any workstation with the SPO module or PnP.PowerShell.
- Get-SPOExternalUsersReport
Lists guest (external) users on every SharePoint Online site that allows sharing.
- Get-SPOListsNearThreshold
Finds large lists and libraries in a SharePoint Online site and shows their indexes.
- Get-SPOSiteInventory
Tenant-wide SharePoint Online site inventory: storage, sharing, staleness, hubs.
- Get-SPOUniquePermissions
Reports where permission inheritance is broken in a SharePoint Online site.
- Remove-SPOOldFileVersions
Trims old file versions in a document library, keeping the newest N versions.
- Restore-SPORecycleBinByUser
Restores items that one user deleted in a time window (mass-deletion recovery).
Migration
Pre-migration checks that run anywhere PowerShell can read the source.
- Find-MigrationBlockers
Scans a file share (or any folder) for problems that block or complicate a move to SharePoint Online / OneDrive.
Test environments
Every example uses these URLs. Swap in your own.
| SharePoint Server test farm | https://sharepoint.ravindran.in |
|---|---|
| SharePoint Online test tenant | https://sharepointonline.ravindran.in |
| SharePoint Online admin center | https://sharepointonline-admin.ravindran.in |