Le Domain Driven Design (DDD) est une méthodologie qui se concentre sur le métier (Domain). Elle entend faire respecter un...
12 décembre 2013
PowerShell pour récupérer les URLS conviviales SharePoint 2013 ?

Comment récupérer les URL conviviales liées aux pages de publication de mon site SharePoint 2013 ?
Le but est de pouvoir sortir une liste des pages du site Sharepoint 2013 pour identifier les pages ayant plusieurs URL conviviales. PowerShell nous permet d’utiliser les objets SharePoint avec beaucoup d’aisance :
Dans le script :
on va parcourir toutes les pages de publications de notre site
[Microsoft.SharePoint.Publishing.PublishingWeb]::GetPagesListId($web)
Ensuite pour chaque term de notre termset on va récupérer son URL conviviale
[Microsoft.SharePoint.Publishing.Navigation.TaxonomyNavigation]:: GetFriendlyUrlsForListItem($page, $true)
et enfin on compare cette propriété à celle de notre Page :
$friendlyUrl = $_.GetWebRelativeFriendlyUrl()
Le résultat est lisible dans le fichier de sortie en format csv.
$url = "http://yourSite:8080" $sw = New-Object System.IO.StreamWriter("c:\temp\sample.csv") Add-PSSnapin Microsoft.SharePoint.PowerShell -erroraction SilentlyContinue function GetConvialUrl($w) { $pagesId = [Microsoft.SharePoint.Publishing.PublishingWeb]::GetPagesListId($web) $publishingPages = $web.Lists[$pagesId] foreach ($page in $publishingPages.Items) { $friendlyUrls = [Microsoft.SharePoint.Publishing.Navigation.TaxonomyNavigation]::GetFriendlyUrlsForListItem($page, $true) if ($friendlyUrls.Count -ne $zero) { $friendlyUrls | ForEach-Object{ $friendlyUrl = $_.GetWebRelativeFriendlyUrl() $sw.writeline($page.Name+ ";" +"Page URL: "+$web.Url+$page.Url + ";"+ $friendlyUrl) } } } } $site = Get-SPSite $url foreach ($web in $site.AllWebs ) { GetConvialUrl $web } $sw.close()