$Ctx = Get-PnPContext ForEach ($Item in $ListItems) { $HasUniquePermissions = Get-PnPProperty -ClientObject $Item -Property HasUniqueRoleAssignments If ($HasUniquePermissions) { $SharingInfo = [Microsoft.SharePoint.Client.ObjectSharingInformation]::GetObjectSharingInformation($Ctx, $Item, $false, $false, $false, $true, $true, $true, $true) $Ctx.Load($SharingInfo) $Ctx.ExecuteQuery() ForEach ($ShareLink in $SharingInfo.SharingLinks) { If ($ShareLink.Url -and $ShareLink.LinkKind -like "*Anonymous*") { $LinkStatus = $false $LinkCreated = ([DateTime]$ShareLink.Created).tolocalTime() $CurrentDateTime = Get-Date If($ShareLink.Expiration -ne ""){ $Expiration = ([DateTime]$ShareLink.Expiration).tolocalTime() If($Expiration -lt $CurrentDateTime){ $daysExpired = ($currentDateTime - $expiration).Days $LinkStatus = $true } } If($LinkStatus){ If($ShareLink.IsEditLink) { $AccessType="Write" } ElseIf($shareLink.IsViewLink) { $AccessType="Read" } Else { $AccessType="Review" } $Results = [PSCustomObject]@{ "Site Name" = $Site "Library" = $List.Title "File Name" = $Item.FieldValues.FileLeafRef "File URL" = $Item.FieldValues.FileRef "Access Type" = $AccessType "File Type" = $Item.FieldValues.File_x0020_Type "Last Modified On " = ([DateTime]$ShareLink.LastModified).tolocalTime() "Days Since Expired" = $daysExpired "Link Created Date " = $LinkCreated "Link Expired Date" = $Expiration "Shared Link" = $ShareLink.Url } $Results | Export-CSV -path $ReportOutput -NoTypeInformation -Append -Force } } } } }