All scripts
Governance 326

Get-SharePointExternalSharingReport

Reports every SharePoint site's external sharing setting alongside the tenant default, so sites that are more permissive than intended stand out immediately.

Get-SharePointExternalSharingReport.ps1
<#
.SYNOPSIS
    Reports external sharing settings across all SharePoint sites.

.DESCRIPTION
    Compares each site's external sharing capability against the tenant
    default and flags any site that is more permissive than the baseline,
    since site level overrides are easy to set and easy to forget about.

.EXAMPLE
    .\Get-SharePointExternalSharingReport.ps1

.NOTES
    Requires PnP.PowerShell connected to the SharePoint admin site.

.AUTHOR
    Shehryar Hassan
#>

$tenant = Get-PnPTenant
$sites = Get-PnPTenantSite

$report = $sites | ForEach-Object {
    [pscustomobject]@{
        Url               = $_.Url
        SharingCapability = $_.SharingCapability
        MoreOpenThanDefault = $_.SharingCapability -ne $tenant.SharingCapability
    }
}

Write-Host "Tenant default sharing: $($tenant.SharingCapability)" -ForegroundColor Cyan
$report | Where-Object MoreOpenThanDefault | Format-Table -AutoSize

Read it before you run it, and test in a safe tenant first.