I’m trying to get the « copy link » url from sharing documents on my sharepoint online.
How can i get this parameter with powershell script?
Thanks for your answer
SharePoint Stack Exchange is a question and answer site for SharePoint enthusiasts. It only takes a minute to sign up.
Sign up to join this communityCall CSOM method CreateAnonymousLink
- link to Microsoft documentation.
Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll"
Add-Type -Path "c:\Program Files\Common Files\microsoft shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll"
$siteUrl = $null
$siteUrl = "https://contoso.sharepoint.com"
$username = "[email protected]"
$password = 'my awesome password' | ConvertTo-SecureString -asPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential ($username,$password)
Connect-PnPOnline –Url $siteUrl –Credentials $credential
$ctx = $null
$ctx = Get-PnPContext
$web = $null
$web = Get-PnPWeb
Write-Host "Web: " $web.Url
$list = $null
$list = Get-PnPList -Identity "Documents"
Write-host "List: " $list.Title
$item = Get-PnPListItem -List Documents -Id 18
$ctx.Load($item)
$ctx.ExecuteQuery()
Write-host "Item: " $item.Id " // " $item["FileLeafRef"]
$itemUrl = $web.Url + $list.RootFolder.ServerRelativeUrl + "/" + $item["FileLeafRef"]
$ctxClient = New-Object Microsoft.SharePoint.Client.ClientContext($siteUrl)
$ctxClient.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($username,$password)
$link = [Microsoft.SharePoint.Client.Web]::CreateAnonymousLink($ctxClient,$itemUrl,$false)
$ctxClient.ExecuteQuery()
Write-host "Link (view): "$link.Value
$link2 = [Microsoft.SharePoint.Client.Web]::CreateAnonymousLink($ctxClient,$itemUrl,$true)
$ctxClient.ExecuteQuery()
Write-host "Link (edit): "$link2.Value
$ctx = $null
Write-Host "End" -f Green -b DarkGreen
Write-host " "
Write-host " "
Great post. I'd also like to add that at least for what I'm doing, there's no need to create a new ClientContext object. I was able to use the context from the $web object by referencing its context as $web.Context.
$link = [Microsoft.SharePoint.Client.Web]::CreateAnonymousLink($web.Context,$itemUrl,$false)