← TenantTools365Blogone .sppkg · seven tools
WhoHasAccess365 · Audit

Offboarding: which SharePoint sites can this person still reach? (and the shares that outlive the account)

Disabling the account is the easy part. Site groups, direct grants, item-level shares and sharing links in their name keep working for guests and for the next person to get the URL. Here is how to list them per user.

Published 2026-09-03 · by HS Services

The account is disabled, the licence is reclaimed, the laptop is back. The person's access to SharePoint is, at that moment, exactly what it was yesterday: every group membership, every direct grant, every file someone shared with them, every link they made. Disabling stops the sign-in. It does not clean anything.

What actually persists

Per user, tenant-wide

With Advanced Management: SharePoint admin centre → Reports → Data access governance → Site permissions for users → enter the UPN. It lists every site and whether access is full-site or partial, direct or via group. This is the one DAG report that is hard to replace.

Without it, a loop over sites:

Connect-SPOService -Url https://contoso-admin.sharepoint.com
$upn = 'j.doe@contoso.com'
foreach ($s in Get-SPOSite -Limit All) {
  try {
    $u = Get-SPOUser -Site $s.Url -LoginName $upn -ErrorAction Stop
    [pscustomobject]@{ Site=$s.Url; Groups=($u.Groups -join ', '); IsSiteAdmin=$u.IsSiteAdmin }
  } catch { }
}

Get-SPOUser finds the user only if they are known to that site (in a group or directly granted). It does not see item-level shares or links; those need the per-site PnP walk from the full permissions report, filtered to that login.

Per site, properly

On the sites that matter (the ones the report above returns, plus any the manager names), a site collection admin should:

  1. Remove the user from every SharePoint group (Remove-PnPGroupMember).
  2. Remove direct grants on the web, lists and items (Remove-PnPListItemPermission / role assignment removal in the walk).
  3. List sharing links they created (audit log: SharingSet, AnonymousLinkCreated, SecureLinkCreated filtered by UserIds) and decide per link.
  4. If they were the only site owner, add another before you leave.

Reverse offboarding: what did they share out

The audit log is the record here. Ninety days of SharingSet / AnonymousLinkCreated / SecureLinkCreated by the departing user tells you which items now have links or grants that should be reviewed, especially external ones.

Connect-ExchangeOnline
Search-UnifiedAuditLog -StartDate (Get-Date).AddDays(-90) -EndDate (Get-Date) -UserIds j.doe@contoso.com `
  -Operations SharingSet, AnonymousLinkCreated, SecureLinkCreated, AddedToSecureLink -ResultSize 5000 |
  Select-Object CreationDate, Operations, ObjectId

The checklist to keep

For each leaver: DAG per-user report or the site loop → per-site removal on the hits → audit-log review of links they created → confirm a second owner on any site they owned. Ten minutes for most people; an afternoon for a departing site admin.

On each site, the "what does this person have here, and how" question is what WhoHasAccess365's report answers, with the access chain shown (direct / via group) and guests and broad grants flagged; the Pro sweep adds item-level shares and the links.

Questions people also ask

How do I see all SharePoint sites a user has access to?

The Data Access Governance "site permissions for users" report (Advanced Management) lists sites per user. Without it, PowerShell can check each site's role assignments and group memberships for the user, or Entra can show the M365 groups they belong to, which map to Teams-connected sites.

What happens to SharePoint permissions when a user is disabled?

Nothing. The permissions remain on the account. A disabled account cannot sign in, but if it is later re-enabled or the object is reused, the access is still there. Sharing links the user created keep working for everyone else.

Do sharing links stop working when the user who created them leaves?

No. A link belongs to the item, not the creator. Anyone-links and organisation-links created by a departed user keep working until they expire or are removed.