Public/SharePoint.ps1

<#
.SYNOPSIS
    Generates a report of external sharing in SharePoint Online.
.DESCRIPTION
    This function generates a detailed report of all externally shared files and folders within SharePoint Online.
.EXAMPLE
    Get-SPOExternalSharingReport
.NOTES
    You must be connected to SharePoint Online before running this function.
#>

function Get-SPOExternalSharingReport {
    [CmdletBinding()]
    param()

    Write-Verbose "Generating SharePoint Online external sharing report..."

    $Sites = Get-SPOAllSites
    $Report = [System.Collections.Generic.List[Object]]::new()

    foreach ($Site in $Sites) {
        Write-Verbose "Checking site: $($Site.Url)"
        $ExternallySharedItems = Get-SPOExternallySharedItems -SiteUrl $Site.Url
        $Report.AddRange($ExternallySharedItems)
    }

    Write-Verbose "Found $($Report.Count) externally shared items."
    return $Report
}