Como generar SiteMap.xml en SharePoint 2013 usando PowerShell. (es-ES)
Para poder generar el sitemap previamente debemos activar lo siguiente :
Habilitar la opción de anónimo en la Web Application.
https://1.bp.blogspot.com/-wqYT6MIFMUw/Vs6KOVrR41I/AAAAAAAAIik/GRLyzM306E0/s1600/Anonimo.png
Habilitar la colección de sitio como anónimo.
https://4.bp.blogspot.com/-Xz20YGhFOOI/Vs6KOedwS-I/AAAAAAAAIig/VCA0eXdENgo/s1600/sitioanonimo.png
Activar la caracterisitca Search Engine Sitemap
https://2.bp.blogspot.com/-Fe1Q-qK3ny8/Vs6KORYAl6I/AAAAAAAAIic/M7Dci25kRyo/s1600/sitemap%2BEngine.png
Activar el Search Service Application desde la administración central de SharePoint
Para generar sitemap.xml de un sitio de SharePoint 2013 usando PowerShell se puede usar este Script .
#funcion que genera el SiteMap
function New-SPSiteMap
{
param($SavePath="C:\inetpub\wwwroot\wss\VirtualDirectories\80\SiteMap.xml", $Url="http://srvsharepoint")
$web=Get-SPWeb $url
$list = $web.Lists | ForEach-Object -Process {$_.Items}| ForEach-Object -Process {$_.url.Replace(" ","%20")}
#puedes excluir directorios que no quieras que se incluyan en el sitemap, adiciona lineas:
$list= $list | ? {$_ -notmatch "_catalogs"}
$list= $list | ? {$_ -notmatch "Reporting%20Templates"}
$list= $list | ? {$_ -notmatch "Reporting%20Metadata"}
$list | New-Xml -RootTag urlset -ItemTag url -ChildItems loc -SavePath $SavePath
}
function New-Xml
{
param($RootTag="urlset",$ItemTag="url", $ChildItems="*", $SavePath="C:\SiteMap.xml")
Begin {
$xml="<?xml version=""1.0"" encoding=""UTF-8""?>
<urlset http://www.sitemaps.org/schemas/sitemap/0.9""\>"
}
Process {
$xml += " <$ItemTag>"
foreach ($child in $_){
$Name = $child
$xml += " <$ChildItems>$url/$child</$ChildItems>"
}
$xml += " </$ItemTag>"
}
End {
$xml += "</$RootTag>"
$xmltext=[xml]$xml
$xmltext.Save($SavePath)
}
}
#Desde acá se llama la función se adiciona la Url del Sitio y la ubicación donde se guardará el archivo xml.
New-SPSiteMap –Url http://srvsharepoint –SavePath C:\inetpub\wwwroot\wss\VirtualDirectories\80\sitemap.xml
Como se muestra la imagen a continuación se evidencia la ejecución del script.
https://1.bp.blogspot.com/-O16ZF-fkGT0/Vs6FYXMfyII/AAAAAAAAIiI/v2SY_6XS1VA/s320/scriptsitemap.png
Imagen 1. Ejecución de Script
https://1.bp.blogspot.com/-L_K1hxeWGPY/Vs6FYfPb16I/AAAAAAAAIiE/EJB84QWjwLc/s320/archivogenerado.png
Imagen 2. Archivo xml generado.
https://4.bp.blogspot.com/-cE5GyKjeezM/Vs6FYbn0IwI/AAAAAAAAIiM/Y5wwXXz_E54/s320/sitemap.png
Imagen 3. Información del archivo xml generado.
También se puede copiar el script y colocarlo en un archivo .ps1 y ejecutarlo desde PowerShell como sea mas fácil.
Espero que les sea de utilidad.
Atte.
Ademir