#Parameters $SiteUrl = "https://landseacamps.sharepoint.com/sites/Landsea2" $ReportOutput = "SharedLinks.csv" $ListName = "Documents" #Connect to PnP Online #Connect-PnPOnline -Url $SiteURL -Interactive $Ctx = Get-PnPContext $Results = @() $global:counter = 0 #Get all list items in batches $ListItems = Get-PnPListItem -List $ListName -PageSize 2000 $ItemCount = $ListItems.Count #Iterate through each list item ForEach($Item in $ListItems) { Write-Progress -PercentComplete ($global:Counter / ($ItemCount) * 100) -Activity "Getting Shared Links from '$($Item.FieldValues["FileRef"])'" -Status "Processing Items $global:Counter to $($ItemCount)"; #Check if the Item has unique permissions $HasUniquePermissions = Get-PnPProperty -ClientObject $Item -Property "HasUniqueRoleAssignments" If($HasUniquePermissions) { #Get Shared Links $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) { If($ShareLink.IsEditLink) { $AccessType="Edit" } ElseIf($shareLink.IsReviewLink) { $AccessType="Review" } Else { $AccessType="ViewOnly" } #Collect the data $Results += New-Object PSObject -property $([ordered]@{ Name = $Item.FieldValues["FileLeafRef"] RelativeURL = $Item.FieldValues["FileRef"] FileType = $Item.FieldValues["File_x0020_Type"] ShareLink = $ShareLink.Url ShareLinkAccess = $AccessType ShareLinkType = $ShareLink.LinkKind AllowsAnonymousAccess = $ShareLink.AllowsAnonymousAccess IsActive = $ShareLink.IsActive Expiration = $ShareLink.Expiration }) } } } $global:counter++ } $Results | Export-CSV $ReportOutput -NoTypeInformation Write-host -f Green "Sharing Links Report Generated Successfully!"
Get shared links powershell script Print
Modified on: Mon, 10 Feb, 2025 at 12:00 PM
Did you find it helpful? Yes No
Send feedbackSorry we couldn't be helpful. Help us improve this article with your feedback.