Como generar SiteMap.xml en SharePoint 2013 usando PowerShell.

Para poder generar el sitemap previamente debemos activar lo siguiente :

  1. Habilitar la opción de anónimo en la Web Application.




  2. Habilitar la colección de sitio como anónimo.




  3. Activar la caracterisitca Search Engine Sitemap




  4. 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 xmlns=""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.


Imagen 1. Ejecución de Script


Imagen 2. Archivo xml generado.


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

Entradas más populares de este blog

Extender el periodo de Evalución hasta 240 días en SQL Server y SharePoint Server

Ventajas de SharePoint Server 2016 - Infraestructura